99import android .location .LocationListener ;
1010import android .location .LocationManager ;
1111import android .os .Bundle ;
12+
13+ import androidx .annotation .NonNull ;
1214import androidx .core .app .ActivityCompat ;
1315import androidx .core .content .ContextCompat ;
1416
@@ -26,21 +28,19 @@ public class LocationServiceManager implements LocationListener {
2628 private static final long MIN_LOCATION_UPDATE_REQUEST_TIME_IN_MILLIS = 2 * 60 * 100 ;
2729 private static final long MIN_LOCATION_UPDATE_REQUEST_DISTANCE_IN_METERS = 10 ;
2830
29- public Context context ;
3031 private LocationManager locationManager ;
3132 private Location lastLocation ;
3233 //private Location lastLocationDuplicate; // Will be used for nearby card view on contributions activity
3334 private final List <LocationUpdateListener > locationListeners = new CopyOnWriteArrayList <>();
3435 private boolean isLocationManagerRegistered = false ;
35- public Set <Activity > locationExplanationDisplayed = new HashSet <>();
36+ private Set <Activity > locationExplanationDisplayed = new HashSet <>();
3637
3738 /**
3839 * Constructs a new instance of LocationServiceManager.
3940 *
4041 * @param context the context
4142 */
4243 public LocationServiceManager (Context context ) {
43- this .context = context ;
4444 this .locationManager = (LocationManager ) context .getSystemService (Context .LOCATION_SERVICE );
4545 }
4646
@@ -57,7 +57,7 @@ public boolean isProviderEnabled() {
5757 * Returns whether the location permission is granted.
5858 * @return true if the location permission is granted
5959 */
60- public boolean isLocationPermissionGranted () {
60+ public boolean isLocationPermissionGranted (@ NonNull Context context ) {
6161 return ContextCompat .checkSelfPermission (context ,
6262 Manifest .permission .ACCESS_FINE_LOCATION ) == PackageManager .PERMISSION_GRANTED ;
6363 }
@@ -101,8 +101,8 @@ public boolean isPermissionExplanationRequired(Activity activity) {
101101 * @return last known LatLng
102102 */
103103 @ SuppressLint ("MissingPermission" )
104- public LatLng getLKL () {
105- if (isLocationPermissionGranted ()) {
104+ public LatLng getLKL (@ NonNull Context context ) {
105+ if (isLocationPermissionGranted (context )) {
106106 Location lastKL = locationManager .getLastKnownLocation (LocationManager .GPS_PROVIDER );
107107 if (lastKL == null ) {
108108 lastKL = locationManager .getLastKnownLocation (LocationManager .NETWORK_PROVIDER );
@@ -225,6 +225,7 @@ private boolean isSameProvider(String provider1, String provider2) {
225225 */
226226 public void unregisterLocationManager () {
227227 isLocationManagerRegistered = false ;
228+ locationExplanationDisplayed .clear ();
228229 try {
229230 locationManager .removeUpdates (this );
230231 } catch (SecurityException e ) {
0 commit comments