Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 579dda6e authored by Grace Cheng's avatar Grace Cheng Committed by Android (Google) Code Review
Browse files

Merge "Changes getAdasAllowlist so that it is protected with the newly added...

Merge "Changes getAdasAllowlist so that it is protected with the newly added permission `ACCESS_LOCATION_BYPASS_ALLOWLIST` and becomes a system api." into main
parents fac5ad1f 0c8a17f2
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -391,6 +391,17 @@ java_aconfig_library {
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

java_aconfig_library {
    name: "android.location.flags-aconfig-java-export",
    aconfig_declarations: "android.location.flags-aconfig",
    mode: "exported",
    min_sdk_version: "30",
    apex_available: [
        "com.android.permission",
    ],
    defaults: ["framework-minus-apex-aconfig-java-defaults"],
}

// NFC
aconfig_declarations {
    name: "android.nfc.flags-aconfig",
+22 −0
Original line number Diff line number Diff line
@@ -11707,6 +11707,28 @@ package android.os {
    method public boolean isSuccessful();
  }
  @FlaggedApi("android.location.flags.change_get_adas_allowlist_from_hidden_to_system") public final class PackageTagsList implements android.os.Parcelable {
    method public boolean contains(@NonNull String, @Nullable String);
    method public boolean containsAll(@NonNull android.os.PackageTagsList);
    method public boolean containsPackage(@NonNull String);
    method public boolean containsPackageWithAllTags(@NonNull String);
    method public int describeContents();
    method @NonNull public java.util.Set<java.lang.String> getPackages();
    method public boolean isEmpty();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.os.PackageTagsList> CREATOR;
  }
  public static final class PackageTagsList.Builder {
    ctor public PackageTagsList.Builder();
    ctor public PackageTagsList.Builder(int);
    method @NonNull public android.os.PackageTagsList.Builder add(@NonNull String);
    method @NonNull public android.os.PackageTagsList.Builder add(@NonNull String, @Nullable String);
    method @NonNull public android.os.PackageTagsList.Builder addAll(@NonNull android.os.PackageTagsList);
    method @NonNull public android.os.PackageTagsList.Builder addAll(@NonNull java.util.Map<java.lang.String,? extends java.util.Set<java.lang.String>>);
    method @NonNull public android.os.PackageTagsList build();
  }
  public interface Parcelable {
    method public default int getStability();
    field public static final int PARCELABLE_STABILITY_LOCAL = 0; // 0x0
+0 −22
Original line number Diff line number Diff line
@@ -2555,28 +2555,6 @@ package android.os {
    ctor public NewUserResponse(@Nullable android.os.UserHandle, int);
  }

  public final class PackageTagsList implements android.os.Parcelable {
    method public boolean contains(@NonNull String, @Nullable String);
    method public boolean containsAll(@NonNull android.os.PackageTagsList);
    method public boolean containsPackage(@NonNull String);
    method public boolean containsPackageWithAllTags(@NonNull String);
    method public int describeContents();
    method @NonNull public java.util.Set<java.lang.String> getPackages();
    method public boolean isEmpty();
    method public void writeToParcel(@NonNull android.os.Parcel, int);
    field @NonNull public static final android.os.Parcelable.Creator<android.os.PackageTagsList> CREATOR;
  }

  public static final class PackageTagsList.Builder {
    ctor public PackageTagsList.Builder();
    ctor public PackageTagsList.Builder(int);
    method @NonNull public android.os.PackageTagsList.Builder add(@NonNull String);
    method @NonNull public android.os.PackageTagsList.Builder add(@NonNull String, @Nullable String);
    method @NonNull public android.os.PackageTagsList.Builder addAll(@NonNull android.os.PackageTagsList);
    method @NonNull public android.os.PackageTagsList.Builder addAll(@NonNull java.util.Map<java.lang.String,? extends java.util.Set<java.lang.String>>);
    method @NonNull public android.os.PackageTagsList build();
  }

  @FlaggedApi("android.location.flags.change_get_adas_allowlist_from_hidden_to_system") public final class PackageTagsMap implements android.os.Parcelable {
    method public boolean contains(@NonNull String, @Nullable String);
    method public boolean containsAll(@NonNull android.os.PackageTagsMap);
+7 −9
Original line number Diff line number Diff line
@@ -16,10 +16,12 @@

package android.os;

import android.annotation.FlaggedApi;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.SuppressLint;
import android.annotation.TestApi;
import android.annotation.SystemApi;
import android.location.flags.Flags;
import android.util.ArrayMap;
import android.util.ArraySet;

@@ -40,8 +42,8 @@ import java.util.stream.Collectors;
 *
 * @hide
 */
@SuppressLint("UnflaggedApi") // TestApi
@TestApi
@FlaggedApi(Flags.FLAG_CHANGE_GET_ADAS_ALLOWLIST_FROM_HIDDEN_TO_SYSTEM)
@SystemApi
@Immutable
@android.ravenwood.annotation.RavenwoodKeepWholeClass
public final class PackageTagsList implements Parcelable {
@@ -65,7 +67,6 @@ public final class PackageTagsList implements Parcelable {
     * does not imply anything about whether any given attribution tag under the given package name
     * is present.
     */
    @SuppressLint("UnflaggedApi") // TestApi
    public boolean containsPackage(@NonNull String packageName) {
        return mPackageTags.containsKey(packageName);
    }
@@ -93,7 +94,6 @@ public final class PackageTagsList implements Parcelable {
     * Returns true if all attribution tags under the given package are contained within this
     * instance.
     */
    @SuppressLint("UnflaggedApi") // TestApi
    public boolean containsPackageWithAllTags(@NonNull String packageName) {
        Set<String> tags = mPackageTags.get(packageName);
        return tags != null && tags.isEmpty();
@@ -115,7 +115,6 @@ public final class PackageTagsList implements Parcelable {
    }

    /** Returns true if the given PackageTagsList is a subset of this instance. */
    @SuppressLint("UnflaggedApi") // TestApi
    public boolean containsAll(@NonNull PackageTagsList packageTagsList) {
        int otherSize = packageTagsList.mPackageTags.size();
        if (otherSize > mPackageTags.size()) {
@@ -146,7 +145,6 @@ public final class PackageTagsList implements Parcelable {
    }

    /** Returns all packages that possess at least one attribution tag. */
    @SuppressLint("UnflaggedApi") // TestApi
    public @NonNull Set<String> getPackages() {
        return Set.copyOf(mPackageTags.keySet());
    }
@@ -312,7 +310,7 @@ public final class PackageTagsList implements Parcelable {
        }

        /** Adds the specified {@link PackageTagsList} to the builder. */
        @SuppressLint({"MissingGetterMatchingBuilder", "UnflaggedApi"}) // TestApi
        @SuppressLint("MissingGetterMatchingBuilder")
        public @NonNull Builder addAll(@NonNull PackageTagsList packageTagsList) {
            return addAll(packageTagsList.mPackageTags);
        }
@@ -321,7 +319,7 @@ public final class PackageTagsList implements Parcelable {
         * Adds the given map of package to attribution tags to the builder. An empty set of
         * attribution tags is interpreted to imply all attribution tags under that package.
         */
        @SuppressLint({"MissingGetterMatchingBuilder", "UnflaggedApi"}) // TestApi
        @SuppressLint("MissingGetterMatchingBuilder")
        public @NonNull Builder addAll(@NonNull Map<String, ? extends Set<String>> packageTagsMap) {
            mPackageTags.ensureCapacity(packageTagsMap.size());
            for (Map.Entry<String, ? extends Set<String>> entry : packageTagsMap.entrySet()) {
+2 −0
Original line number Diff line number Diff line
@@ -271,6 +271,8 @@ applications that come with the platform
        <permission name="android.permission.GET_DEVICE_LOCK_ENROLLMENT_TYPE"/>
        <!-- Needed for GMSCore Location API test only -->
        <permission name="android.permission.LOCATION_BYPASS"/>
        <!-- Needed for XTS tests only. -->
        <permission name="android.permission.ACCESS_LOCATION_BYPASS_ALLOWLIST"/>
        <!-- Needed for test only -->
        <permission name="android.permission.BATTERY_PREDICTION"/>
        <permission name="android.permission.BATTERY_STATS"/>
Loading