Loading api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -8892,6 +8892,7 @@ package android.permission { method @BinderThread public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull String, @NonNull java.util.function.Consumer<java.util.Map<java.lang.String,java.util.List<java.lang.String>>>); method @BinderThread public abstract void onSetRuntimePermissionGrantStateByDeviceAdmin(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @BinderThread public void onStageAndApplyRuntimePermissionsBackup(@NonNull android.os.UserHandle, @NonNull java.io.InputStream, @NonNull Runnable); method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull java.util.concurrent.Executor, @NonNull Runnable); method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull Runnable); field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; } core/java/android/permission/PermissionControllerService.java +15 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.function.Consumer; import java.util.function.IntConsumer; Loading Loading @@ -214,6 +215,7 @@ public abstract class PermissionControllerService extends Service { @BinderThread public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); /** * Called by system to update the * {@link PackageManager}{@code .FLAG_PERMISSION_USER_SENSITIVE_WHEN_*} flags for permissions. Loading @@ -223,12 +225,24 @@ public abstract class PermissionControllerService extends Service { * * Typically called by the system when a new app is installed or updated or when creating a * new user or upgrading either system or permission controller package. * * The callback will be executed by the provided Executor. */ @BinderThread public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Runnable callback) { public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Executor executor, @NonNull Runnable callback) { throw new AbstractMethodError("Must be overridden in implementing class"); } /** * Runs {@link #onUpdateUserSensitivePermissionFlags(int, Executor, Runnable)} with the main * executor. */ @BinderThread public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Runnable callback) { onUpdateUserSensitivePermissionFlags(uid, getMainExecutor(), callback); } /** * Set the runtime permission state from a device admin. * Loading Loading
api/system-current.txt +1 −0 Original line number Diff line number Diff line Loading @@ -8892,6 +8892,7 @@ package android.permission { method @BinderThread public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map<java.lang.String,java.util.List<java.lang.String>>, boolean, int, @NonNull String, @NonNull java.util.function.Consumer<java.util.Map<java.lang.String,java.util.List<java.lang.String>>>); method @BinderThread public abstract void onSetRuntimePermissionGrantStateByDeviceAdmin(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.function.Consumer<java.lang.Boolean>); method @BinderThread public void onStageAndApplyRuntimePermissionsBackup(@NonNull android.os.UserHandle, @NonNull java.io.InputStream, @NonNull Runnable); method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull java.util.concurrent.Executor, @NonNull Runnable); method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull Runnable); field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; }
core/java/android/permission/PermissionControllerService.java +15 −1 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ import java.util.Arrays; import java.util.List; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.function.Consumer; import java.util.function.IntConsumer; Loading Loading @@ -214,6 +215,7 @@ public abstract class PermissionControllerService extends Service { @BinderThread public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); /** * Called by system to update the * {@link PackageManager}{@code .FLAG_PERMISSION_USER_SENSITIVE_WHEN_*} flags for permissions. Loading @@ -223,12 +225,24 @@ public abstract class PermissionControllerService extends Service { * * Typically called by the system when a new app is installed or updated or when creating a * new user or upgrading either system or permission controller package. * * The callback will be executed by the provided Executor. */ @BinderThread public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Runnable callback) { public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Executor executor, @NonNull Runnable callback) { throw new AbstractMethodError("Must be overridden in implementing class"); } /** * Runs {@link #onUpdateUserSensitivePermissionFlags(int, Executor, Runnable)} with the main * executor. */ @BinderThread public void onUpdateUserSensitivePermissionFlags(int uid, @NonNull Runnable callback) { onUpdateUserSensitivePermissionFlags(uid, getMainExecutor(), callback); } /** * Set the runtime permission state from a device admin. * Loading