Saturday, April 13, 2024

LocationUtils

 


 


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