diff --git a/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java b/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java index e1156daa3..946b8ff7e 100644 --- a/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java +++ b/app/src/main/java/fr/free/nrw/commons/location/LocationServiceManager.java @@ -7,6 +7,7 @@ import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; +import fr.free.nrw.commons.CommonsApplication; import timber.log.Timber; public class LocationServiceManager implements LocationListener { @@ -16,11 +17,21 @@ public class LocationServiceManager implements LocationListener { private LatLng latestLocation; private Float latestLocationAccuracy; - public LocationServiceManager(Context context) { - this.locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); + private static LocationServiceManager locationServiceManager; + + private LocationServiceManager() { + Context applicationContext = CommonsApplication.getInstance().getApplicationContext(); + this.locationManager = (LocationManager) applicationContext.getSystemService(Context.LOCATION_SERVICE); provider = locationManager.getBestProvider(new Criteria(), true); } + public static LocationServiceManager getInstance() { + if (locationServiceManager == null) { + locationServiceManager = new LocationServiceManager(); + } + return locationServiceManager; + } + public boolean isProviderEnabled() { return locationManager.isProviderEnabled(LocationManager.GPS_PROVIDER); } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java index 2d0d16286..31a684f56 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/NearbyActivity.java @@ -60,7 +60,7 @@ public class NearbyActivity extends NavigationBaseActivity { sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); setContentView(R.layout.activity_nearby); ButterKnife.bind(this); - locationManager = new LocationServiceManager(this); + locationManager = LocationServiceManager.getInstance(); checkLocationPermission(); bundle = new Bundle(); initDrawer();