diff --git a/api/test-current.txt b/api/test-current.txt index d74526b72150f..fcbd1b519268b 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -9790,6 +9790,7 @@ package android.content.pm { method public abstract android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public abstract boolean hasSystemFeature(java.lang.String); method public abstract boolean hasSystemFeature(java.lang.String, int); + method public abstract boolean isPermissionReviewModeEnabled(); method public abstract boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public abstract boolean isSafeMode(); method public abstract java.util.List queryBroadcastReceivers(android.content.Intent, int); @@ -38217,6 +38218,7 @@ package android.test.mock { method public android.content.res.XmlResourceParser getXml(java.lang.String, int, android.content.pm.ApplicationInfo); method public boolean hasSystemFeature(java.lang.String); method public boolean hasSystemFeature(java.lang.String, int); + method public boolean isPermissionReviewModeEnabled(); method public boolean isPermissionRevokedByPolicy(java.lang.String, java.lang.String); method public boolean isSafeMode(); method public java.util.List queryBroadcastReceivers(android.content.Intent, int); diff --git a/core/java/android/app/ApplicationPackageManager.java b/core/java/android/app/ApplicationPackageManager.java index 37faa2e23dbf7..c44cdb290de6e 100644 --- a/core/java/android/app/ApplicationPackageManager.java +++ b/core/java/android/app/ApplicationPackageManager.java @@ -291,6 +291,12 @@ public class ApplicationPackageManager extends PackageManager { throw new NameNotFoundException(group); } + @Override + public boolean isPermissionReviewModeEnabled() { + return mContext.getResources().getBoolean( + com.android.internal.R.bool.config_permissionReviewRequired); + } + @Override public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) throws NameNotFoundException { diff --git a/core/java/android/content/pm/PackageManager.java b/core/java/android/content/pm/PackageManager.java index 39133b829d36f..349684397557c 100644 --- a/core/java/android/content/pm/PackageManager.java +++ b/core/java/android/content/pm/PackageManager.java @@ -2825,6 +2825,14 @@ public abstract class PackageManager { public abstract List queryPermissionsByGroup(String group, @PermissionInfoFlags int flags) throws NameNotFoundException; + /** + * Returns true if Permission Review Mode is enabled, false otherwise. + * + * @hide + */ + @TestApi + public abstract boolean isPermissionReviewModeEnabled(); + /** * Retrieve all of the information we know about a particular group of * permissions. diff --git a/test-runner/src/android/test/mock/MockPackageManager.java b/test-runner/src/android/test/mock/MockPackageManager.java index 330dbab5bab33..e3dabc83d6fea 100644 --- a/test-runner/src/android/test/mock/MockPackageManager.java +++ b/test-runner/src/android/test/mock/MockPackageManager.java @@ -140,6 +140,12 @@ public class MockPackageManager extends PackageManager { throw new UnsupportedOperationException(); } + /** @hide */ + @Override + public boolean isPermissionReviewModeEnabled() { + return false; + } + @Override public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) throws NameNotFoundException { diff --git a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePackageManager.java b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePackageManager.java index b3ed9e1a01649..8dbbd076982f9 100644 --- a/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePackageManager.java +++ b/tools/layoutlib/bridge/src/com/android/layoutlib/bridge/android/BridgePackageManager.java @@ -126,6 +126,11 @@ public class BridgePackageManager extends PackageManager { return null; } + @Override + public boolean isPermissionReviewModeEnabled() { + return false; + } + @Override public PermissionGroupInfo getPermissionGroupInfo(String name, int flags) throws NameNotFoundException {