diff options
3 files changed, 14 insertions, 13 deletions
diff --git a/services/core/java/com/android/server/location/LocationManagerService.java b/services/core/java/com/android/server/location/LocationManagerService.java index 45d9822205ec..fac510651878 100644 --- a/services/core/java/com/android/server/location/LocationManagerService.java +++ b/services/core/java/com/android/server/location/LocationManagerService.java @@ -1127,7 +1127,7 @@ public class LocationManagerService extends ILocationManager.Stub implements if (provider != null && !provider.equals(manager.getName())) { continue; } - CallerIdentity identity = manager.getIdentity(); + CallerIdentity identity = manager.getProviderIdentity(); if (identity == null) { continue; } @@ -1149,7 +1149,7 @@ public class LocationManagerService extends ILocationManager.Stub implements return Collections.emptyList(); } - CallerIdentity identity = manager.getIdentity(); + CallerIdentity identity = manager.getProviderIdentity(); if (identity == null) { return Collections.emptyList(); } @@ -1536,7 +1536,7 @@ public class LocationManagerService extends ILocationManager.Stub implements if (!enabled) { PackageTagsList.Builder builder = new PackageTagsList.Builder(); for (LocationProviderManager manager : mProviderManagers) { - CallerIdentity identity = manager.getIdentity(); + CallerIdentity identity = manager.getProviderIdentity(); if (identity != null) { builder.add(identity.getPackageName(), identity.getAttributionTag()); } @@ -1624,7 +1624,7 @@ public class LocationManagerService extends ILocationManager.Stub implements if (provider != null && !provider.equals(manager.getName())) { continue; } - if (identity.equals(manager.getIdentity())) { + if (identity.equals(manager.getProviderIdentity())) { return true; } } @@ -1665,7 +1665,7 @@ public class LocationManagerService extends ILocationManager.Stub implements if (listener != null) { ArraySet<Integer> uids = new ArraySet<>(mProviderManagers.size()); for (LocationProviderManager manager : mProviderManagers) { - CallerIdentity identity = manager.getIdentity(); + CallerIdentity identity = manager.getProviderIdentity(); if (identity != null) { uids.add(identity.getUid()); } diff --git a/services/core/java/com/android/server/location/provider/LocationProviderManager.java b/services/core/java/com/android/server/location/provider/LocationProviderManager.java index 0b8f94c574c6..acbee11f3b72 100644 --- a/services/core/java/com/android/server/location/provider/LocationProviderManager.java +++ b/services/core/java/com/android/server/location/provider/LocationProviderManager.java @@ -1468,7 +1468,7 @@ public class LocationProviderManager extends return mProvider.getState(); } - public @Nullable CallerIdentity getIdentity() { + public @Nullable CallerIdentity getProviderIdentity() { return mProvider.getState().identity; } @@ -1607,7 +1607,7 @@ public class LocationProviderManager extends public @Nullable Location getLastLocation(LastLocationRequest request, CallerIdentity identity, @PermissionLevel int permissionLevel) { - request = calculateLastLocationRequest(request); + request = calculateLastLocationRequest(request, identity); if (!isActive(request.isBypass(), identity)) { return null; @@ -1636,15 +1636,16 @@ public class LocationProviderManager extends return location; } - private LastLocationRequest calculateLastLocationRequest(LastLocationRequest baseRequest) { + private LastLocationRequest calculateLastLocationRequest(LastLocationRequest baseRequest, + CallerIdentity identity) { LastLocationRequest.Builder builder = new LastLocationRequest.Builder(baseRequest); boolean locationSettingsIgnored = baseRequest.isLocationSettingsIgnored(); if (locationSettingsIgnored) { // if we are not currently allowed use location settings ignored, disable it if (!mSettingsHelper.getIgnoreSettingsAllowlist().contains( - getIdentity().getPackageName(), getIdentity().getAttributionTag()) - && !mLocationManagerInternal.isProvider(null, getIdentity())) { + identity.getPackageName(), identity.getAttributionTag()) + && !mLocationManagerInternal.isProvider(null, identity)) { locationSettingsIgnored = false; } @@ -1658,7 +1659,7 @@ public class LocationProviderManager extends Log.e(TAG, "adas gnss bypass request received in non-gps provider"); adasGnssBypass = false; } else if (!mLocationSettings.getUserSettings( - getIdentity().getUserId()).isAdasGnssLocationEnabled()) { + identity.getUserId()).isAdasGnssLocationEnabled()) { adasGnssBypass = false; } diff --git a/services/tests/mockingservicestests/src/com/android/server/location/provider/LocationProviderManagerTest.java b/services/tests/mockingservicestests/src/com/android/server/location/provider/LocationProviderManagerTest.java index 4e4854c6688d..d8f409dfce66 100644 --- a/services/tests/mockingservicestests/src/com/android/server/location/provider/LocationProviderManagerTest.java +++ b/services/tests/mockingservicestests/src/com/android/server/location/provider/LocationProviderManagerTest.java @@ -213,7 +213,7 @@ public class LocationProviderManagerTest { public void testProperties() { assertThat(mManager.getName()).isEqualTo(NAME); assertThat(mManager.getProperties()).isEqualTo(PROPERTIES); - assertThat(mManager.getIdentity()).isEqualTo(IDENTITY); + assertThat(mManager.getProviderIdentity()).isEqualTo(IDENTITY); assertThat(mManager.hasProvider()).isTrue(); ProviderProperties newProperties = new ProviderProperties.Builder() @@ -230,7 +230,7 @@ public class LocationProviderManagerTest { CallerIdentity newIdentity = CallerIdentity.forTest(OTHER_USER, 1, "otherpackage", "otherattribution"); mProvider.setIdentity(newIdentity); - assertThat(mManager.getIdentity()).isEqualTo(newIdentity); + assertThat(mManager.getProviderIdentity()).isEqualTo(newIdentity); mManager.setRealProvider(null); assertThat(mManager.hasProvider()).isFalse(); |