Develop an application to display Google map with user's current location.

Develop an application to display Google map with user's current location.In java file all imports are not expected. Different relevant logic/code can be considered.)

act ivity_main.xml MainActivity.Java package com.example.location; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import androidx.fragment.app.FragmentActivity; import android.Manifest; import android.content.pm.PackageManager; import android.location.Location; import android.os.Bundle; import android.widget.Toast; import com.google.android.gms.location.FusedLocationProviderClient; import com.google.android.gms.location.LocationServices; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; import com.google.android.gms.tasks.OnSuccessListener; import com.google.android.gms.tasks.Task; public class MainActiv
ity extends FragmentActivity implements OnMapReadyCallback { Location currentlocation;
FusedLocationProviderClient fusedLocationProviderClient; private static final int REQUEST_CODE = 101; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); fusedLocationProviderClient = LocationServices.getFusedLocationProviderClient(this); fetchLastLocation(); } private void fetchLastLocation() { if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.ACCESS_FINE_LOCATION},REQUEST_CODE); return; } Task task = fusedLocationProviderClient.getLastLocation(); task.addOnSuccessListener(new OnSuccessListener() { @Override public void onSuccess(Location location) { if(location!=null) { currentlocation=location; Toast.makeText(getApplicationContext(),currentlocation.getLatitude()+""+current location.getLongitude(), Toast.LENGTH_SHORT).show(); SupportMapFragment supportMapFragment = (SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.go ogle_map); supportMapFragment.getMapAsync(MainActivity.this); } } }
@Override public void onMapReady(@NonNull GoogleMap googleMap) { LatLng latLng=new LatLng(currentlocation.getLatitude(),currentlocation.getLongitude()); MarkerOptions markerOptions=new MarkerOptions().position(latLng) .title("I am Here"); googleMap.animateCamera(CameraUpdateFactory.newLatLng(latLng)); googleMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng,5)); googleMap.addMarker(markerOptions); } @Override public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { super.onRequestPermissionsResult(requestCode, permissions, grantResults); switch (requestCode) { case REQUEST_CODE: if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { fetchLastLocation(); } break; } } }