From f27394ee70bca1a3848793497cc826db7aaa82a5 Mon Sep 17 00:00:00 2001 From: Winson Date: Fri, 7 Jun 2019 14:44:40 -0700 Subject: [PATCH] Expose PermissionManager as TestApi and fix SplitPermissionInfo equality Bug: 129200416 Bug: 129200610 Test: atest SplitPermissionsTest Change-Id: I98795944e6440e5b7ebba134bd7735a6f78ebc4f --- api/test-current.txt | 13 +++++++++++++ core/java/android/content/Context.java | 1 + core/java/android/permission/PermissionManager.java | 6 ++++-- 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/api/test-current.txt b/api/test-current.txt index 1a912a1c69b1a..be92106e119e5 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -646,6 +646,7 @@ package android.content { method public void setContentCaptureOptions(@Nullable android.content.ContentCaptureOptions); field public static final String BUGREPORT_SERVICE = "bugreport"; field public static final String CONTENT_CAPTURE_MANAGER_SERVICE = "content_capture"; + field public static final String PERMISSION_SERVICE = "permission"; field public static final String ROLLBACK_SERVICE = "rollback"; field public static final String STATUS_BAR_SERVICE = "statusbar"; field public static final String TEST_NETWORK_SERVICE = "test_network"; @@ -2214,6 +2215,18 @@ package android.permission { method public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map>); } + public final class PermissionManager { + method @IntRange(from=0) @RequiresPermission("android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY") public int getRuntimePermissionsVersion(); + method @NonNull public java.util.List getSplitPermissions(); + method @RequiresPermission("android.permission.ADJUST_RUNTIME_PERMISSIONS_POLICY") public void setRuntimePermissionsVersion(@IntRange(from=0) int); + } + + public static final class PermissionManager.SplitPermissionInfo { + method @NonNull public java.util.List getNewPermissions(); + method @NonNull public String getSplitPermission(); + method public int getTargetSdk(); + } + public final class RuntimePermissionPresentationInfo implements android.os.Parcelable { ctor public RuntimePermissionPresentationInfo(@NonNull CharSequence, boolean, boolean); method public int describeContents(); diff --git a/core/java/android/content/Context.java b/core/java/android/content/Context.java index 941eda8bcf1f7..529677aea6539 100644 --- a/core/java/android/content/Context.java +++ b/core/java/android/content/Context.java @@ -4126,6 +4126,7 @@ public abstract class Context { * @see #getSystemService(String) * @hide */ + @TestApi @SystemApi public static final String PERMISSION_SERVICE = "permission"; diff --git a/core/java/android/permission/PermissionManager.java b/core/java/android/permission/PermissionManager.java index e15659db90a88..182a2ffa52216 100644 --- a/core/java/android/permission/PermissionManager.java +++ b/core/java/android/permission/PermissionManager.java @@ -39,6 +39,7 @@ import java.util.Objects; * * @hide */ +@TestApi @SystemApi @SystemService(Context.PERMISSION_SERVICE) public final class PermissionManager { @@ -140,12 +141,13 @@ public final class PermissionManager { if (o == null || getClass() != o.getClass()) return false; SplitPermissionInfo that = (SplitPermissionInfo) o; return mTargetSdk == that.mTargetSdk - && Objects.equals(mSplitPerm, that.mSplitPerm); + && mSplitPerm.equals(that.mSplitPerm) + && mNewPerms.equals(that.mNewPerms); } @Override public int hashCode() { - return Objects.hash(mSplitPerm, mTargetSdk); + return Objects.hash(mSplitPerm, mNewPerms, mTargetSdk); } /**