public class LocationUtils {
private static final int LOCATION_PERMISSION_REQUEST_CODE = 101;
private FusedLocationProviderClient fusedLocationClient;
private LocationUpdateListener listener;
private Activity activity;
public interface LocationUpdateListener {
void onLocationReceived(Location location);
void onLocationPermissionDenied();
}
public LocationUtils(Activity activity, LocationUpdateListener listener) {
this.activity = activity;
this.listener = listener;
this.fusedLocationClient = LocationServices.getFusedLocationProviderClient(activity);
}
public void checkPermissionsAndGetLocation() {
if (ContextCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(activity, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_PERMISSION_REQUEST_CODE);
} else {
getLastLocation();
}
}
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
if (requestCode == LOCATION_PERMISSION_REQUEST_CODE) {
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
getLastLocation();
} else {
if (listener != null) {
listener.onLocationPermissionDenied();
}
}
}
}
private void getLastLocation() {
if (ActivityCompat.checkSelfPermission(activity, Manifest.permission.ACCESS_FINE_LOCATION) == PackageManager.PERMISSION_GRANTED) {
fusedLocationClient.getLastLocation().addOnSuccessListener(activity, new OnSuccessListener<Location>() {
@Override
public void onSuccess(Location location) {
if (location != null && listener != null) {
listener.onLocationReceived(location);
}
}
});
}
}
}
step-(2) use in Activity
globally declair-> LocationUtils locationUtils;
in declaire oncreate->
locationUtils = new LocationUtils(OtpLoginActivity.this,this);
locationUtils.checkPermissionsAndGetLocation();
step(3)outer of oncreate->
@Override
public void onLocationReceived(Location location) {
latitude = location.getLatitude();
longitude = location.getLongitude();
// Toast.makeText(this, "Latitude: " + latitude + "\nLongitude: " + longitude, Toast.LENGTH_SHORT).show();
}
@Override
public void onLocationPermissionDenied() {
locationText.setText("Location permission denied.");
}
@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
locationUtils.onRequestPermissionsResult(requestCode, permissions, grantResults);
}
public class OtpHandler {
public OtpHandler() {
}
this is first step->>
class ko implement krna hoga implement keyword se upprr
implements LocationUtils.LocationUpdateListener
isss type se example k torr p->
@AndroidEntryPoint
public class OtpLoginActivity extends BaseActivity<LoginViewModel, ActivityOtpLoginBinding> implements LocationUtils.LocationUpdateListener{
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home