diff options
| -rwxr-xr-x | api/system-current.txt | 4 | ||||
| -rw-r--r-- | core/java/android/app/compat/CompatChanges.java | 11 |
2 files changed, 7 insertions, 8 deletions
diff --git a/api/system-current.txt b/api/system-current.txt index ae893b58ee3d..5e63144bf493 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -1170,8 +1170,8 @@ package android.app.compat { public final class CompatChanges { method public static boolean isChangeEnabled(long); - method public static boolean isChangeEnabled(long, @NonNull String, @NonNull android.os.UserHandle); - method public static boolean isChangeEnabled(long, int); + method @RequiresPermission(allOf={"android.permission.READ_COMPAT_CHANGE_CONFIG", "android.permission.LOG_COMPAT_CHANGE"}) public static boolean isChangeEnabled(long, @NonNull String, @NonNull android.os.UserHandle); + method @RequiresPermission(allOf={"android.permission.READ_COMPAT_CHANGE_CONFIG", "android.permission.LOG_COMPAT_CHANGE"}) public static boolean isChangeEnabled(long, int); } } diff --git a/core/java/android/app/compat/CompatChanges.java b/core/java/android/app/compat/CompatChanges.java index 0d5e45f9e5d4..28b73406b877 100644 --- a/core/java/android/app/compat/CompatChanges.java +++ b/core/java/android/app/compat/CompatChanges.java @@ -17,6 +17,7 @@ package android.app.compat; import android.annotation.NonNull; +import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.compat.Compatibility; import android.os.UserHandle; @@ -54,14 +55,13 @@ public final class CompatChanges { * <p> Note that this involves a binder call to the system server (unless running in the system * server). If the binder call fails, a {@code RuntimeException} will be thrown. * - * <p> Caller must have android.permission.READ_COMPAT_CHANGE_CONFIG permission. If it - * doesn't, a {@code RuntimeException} will be thrown. - * * @param changeId The ID of the compatibility change in question. * @param packageName The package name of the app in question. * @param user The user that the operation is done for. * @return {@code true} if the change is enabled for the current app. */ + @RequiresPermission(allOf = {android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG, + android.Manifest.permission.LOG_COMPAT_CHANGE}) public static boolean isChangeEnabled(long changeId, @NonNull String packageName, @NonNull UserHandle user) { return QUERY_CACHE.query(ChangeIdStateQuery.byPackageName(changeId, packageName, @@ -75,9 +75,6 @@ public final class CompatChanges { * <p> Note that this involves a binder call to the system server (unless running in the system * server). If the binder call fails, {@code RuntimeException} will be thrown. * - * <p> Caller must have android.permission.READ_COMPAT_CHANGE_CONFIG permission. If it - * doesn't, a {@code RuntimeException} will be thrown. - * * <p> Returns {@code true} if there are no installed packages for the required UID, or if the * change is enabled for ALL of the installed packages associated with the provided UID. Please * use a more specific API if you want a different behaviour for multi-package UIDs. @@ -86,6 +83,8 @@ public final class CompatChanges { * @param uid The UID of the app in question. * @return {@code true} if the change is enabled for the current app. */ + @RequiresPermission(allOf = {android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG, + android.Manifest.permission.LOG_COMPAT_CHANGE}) public static boolean isChangeEnabled(long changeId, int uid) { return QUERY_CACHE.query(ChangeIdStateQuery.byUid(changeId, uid)); } |