diff --git a/commons/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java b/commons/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java index ef97963eb..21419a020 100644 --- a/commons/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java +++ b/commons/src/main/java/fr/free/nrw/commons/upload/GPSExtractor.java @@ -39,14 +39,17 @@ public class GPSExtractor { } protected void registerLocationManager() { - locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); criteria = new Criteria(); provider = locationManager.getBestProvider(criteria, true); myLocationListener = new MyLocationListener(); - + locationManager = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE); locationManager.requestLocationUpdates(provider, 400, 1, myLocationListener); } + protected void unregisterLocationManager() { + locationManager.removeUpdates(myLocationListener); + } + //Extract GPS coords of image public String getCoords() { diff --git a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java index 27f4ec091..82c5889eb 100644 --- a/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java +++ b/commons/src/main/java/fr/free/nrw/commons/upload/ShareActivity.java @@ -244,6 +244,12 @@ public class ShareActivity imageObj.registerLocationManager(); } + @Override + public void onPause() { + super.onPause(); + imageObj.unregisterLocationManager(); + } + @Override protected void onDestroy() { super.onDestroy();