diff options
4 files changed, 32 insertions, 1 deletions
diff --git a/core/java/android/os/PackageTagsList.java b/core/java/android/os/PackageTagsList.java index 4a81dc6f592e..df99074a851f 100644 --- a/core/java/android/os/PackageTagsList.java +++ b/core/java/android/os/PackageTagsList.java @@ -26,6 +26,7 @@ import android.util.ArraySet; import com.android.internal.annotations.Immutable; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Collection; import java.util.Map; import java.util.Objects; @@ -140,6 +141,17 @@ public final class PackageTagsList implements Parcelable { return true; } + /** + * Returns a list of packages. + * + * @deprecated Do not use. + * @hide + */ + @Deprecated + public @NonNull Collection<String> getPackages() { + return new ArrayList<>(mPackageTags.keySet()); + } + public static final @NonNull Parcelable.Creator<PackageTagsList> CREATOR = new Parcelable.Creator<PackageTagsList>() { @SuppressWarnings("unchecked") @@ -217,7 +229,7 @@ public final class PackageTagsList implements Parcelable { if (j > 0) { pw.print(", "); } - if (attributionTag.startsWith(packageName)) { + if (attributionTag != null && attributionTag.startsWith(packageName)) { pw.print(attributionTag.substring(packageName.length())); } else { pw.print(attributionTag); diff --git a/location/java/android/location/ILocationManager.aidl b/location/java/android/location/ILocationManager.aidl index f4e965f422c0..3114be0e9c65 100644 --- a/location/java/android/location/ILocationManager.aidl +++ b/location/java/android/location/ILocationManager.aidl @@ -141,4 +141,5 @@ interface ILocationManager // used by gts tests to verify whitelists String[] getBackgroundThrottlingWhitelist(); PackageTagsList getIgnoreSettingsAllowlist(); + PackageTagsList getAdasAllowlist(); } diff --git a/location/java/android/location/LocationManager.java b/location/java/android/location/LocationManager.java index 371f5ed4f346..5fe4ffd869ce 100644 --- a/location/java/android/location/LocationManager.java +++ b/location/java/android/location/LocationManager.java @@ -504,6 +504,19 @@ public class LocationManager { } /** + * Returns ADAS packages and their associated attribution tags. + * + * @hide + */ + public @NonNull PackageTagsList getAdasAllowlist() { + try { + return mService.getAdasAllowlist(); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } + + /** * Returns the extra location controller package on the device. * * @hide diff --git a/services/core/java/com/android/server/location/LocationManagerService.java b/services/core/java/com/android/server/location/LocationManagerService.java index e5eed9928411..3ff879661bda 100644 --- a/services/core/java/com/android/server/location/LocationManagerService.java +++ b/services/core/java/com/android/server/location/LocationManagerService.java @@ -675,6 +675,11 @@ public class LocationManagerService extends ILocationManager.Stub implements return mInjector.getSettingsHelper().getIgnoreSettingsAllowlist(); } + @Override + public PackageTagsList getAdasAllowlist() { + return mInjector.getSettingsHelper().getAdasAllowlist(); + } + @Nullable @Override public ICancellationSignal getCurrentLocation(String provider, LocationRequest request, |