diff options
| -rw-r--r-- | services/core/java/com/android/server/LocationManagerService.java | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index 6ef5b547a353..083d8da653bb 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -1824,12 +1824,7 @@ public class LocationManagerService extends ILocationManager.Stub { @GuardedBy("mLock") private void removeProviderLocked(LocationProvider provider) { if (mProviders.remove(provider)) { - long identity = Binder.clearCallingIdentity(); - try { - provider.onUseableChangedLocked(false); - } finally { - Binder.restoreCallingIdentity(identity); - } + provider.onUseableChangedLocked(false); } } @@ -2108,7 +2103,9 @@ public class LocationManagerService extends ILocationManager.Stub { WorkSource worksource = new WorkSource(); ProviderRequest providerRequest = new ProviderRequest(); - if (records != null && !records.isEmpty()) { + // if provider is not active, it should not respond to requests + + if (mProviders.contains(provider) && records != null && !records.isEmpty()) { long backgroundThrottleInterval; long identity = Binder.clearCallingIdentity(); |