From 07ee5d1f1db4d6df4bdb52af2eb4ab7b167df0b4 Mon Sep 17 00:00:00 2001 From: Tom O'Neill Date: Mon, 3 Mar 2014 17:48:35 -0800 Subject: [PATCH] Removing a test provider clears its enabled state - Bug: 11446702 Change-Id: I56ad9235a99772079193553c0f28bd8d74b3d8e3 --- .../java/com/android/server/LocationManagerService.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/services/core/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java index 1eedaae328bc3..473aa341bbb78 100644 --- a/services/core/java/com/android/server/LocationManagerService.java +++ b/services/core/java/com/android/server/LocationManagerService.java @@ -2227,6 +2227,13 @@ public class LocationManagerService extends ILocationManager.Stub { public void removeTestProvider(String provider) { checkMockPermissionsSafe(); synchronized (mLock) { + + // These methods can't be called after removing the test provider, so first make sure + // we don't leave anything dangling (cf b/11446702). + clearTestProviderEnabled(provider); + clearTestProviderLocation(provider); + clearTestProviderStatus(provider); + MockProvider mockProvider = mMockProviders.remove(provider); if (mockProvider == null) { throw new IllegalArgumentException("Provider \"" + provider + "\" unknown");