summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/os/PackageTagsList.java14
-rw-r--r--location/java/android/location/ILocationManager.aidl1
-rw-r--r--location/java/android/location/LocationManager.java13
-rw-r--r--services/core/java/com/android/server/location/LocationManagerService.java5
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,