Loading api/system-current.txt +1 −0 Original line number Original line 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 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 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 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); method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull Runnable); field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; } } core/java/android/permission/PermissionControllerService.java +15 −1 Original line number Original line Diff line number Diff line Loading @@ -58,6 +58,7 @@ import java.util.Arrays; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.function.Consumer; import java.util.function.Consumer; import java.util.function.IntConsumer; import java.util.function.IntConsumer; Loading Loading @@ -214,6 +215,7 @@ public abstract class PermissionControllerService extends Service { @BinderThread @BinderThread public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); /** /** * Called by system to update the * Called by system to update the * {@link PackageManager}{@code .FLAG_PERMISSION_USER_SENSITIVE_WHEN_*} flags for permissions. * {@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 * 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. * new user or upgrading either system or permission controller package. * * The callback will be executed by the provided Executor. */ */ @BinderThread @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"); 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. * Set the runtime permission state from a device admin. * * Loading Loading
api/system-current.txt +1 −0 Original line number Original line 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 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 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 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); method @BinderThread public void onUpdateUserSensitivePermissionFlags(int, @NonNull Runnable); field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; field public static final String SERVICE_INTERFACE = "android.permission.PermissionControllerService"; } }
core/java/android/permission/PermissionControllerService.java +15 −1 Original line number Original line Diff line number Diff line Loading @@ -58,6 +58,7 @@ import java.util.Arrays; import java.util.List; import java.util.List; import java.util.Map; import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch; import java.util.concurrent.Executor; import java.util.function.Consumer; import java.util.function.Consumer; import java.util.function.IntConsumer; import java.util.function.IntConsumer; Loading Loading @@ -214,6 +215,7 @@ public abstract class PermissionControllerService extends Service { @BinderThread @BinderThread public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); public abstract void onGrantOrUpgradeDefaultRuntimePermissions(@NonNull Runnable callback); /** /** * Called by system to update the * Called by system to update the * {@link PackageManager}{@code .FLAG_PERMISSION_USER_SENSITIVE_WHEN_*} flags for permissions. * {@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 * 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. * new user or upgrading either system or permission controller package. * * The callback will be executed by the provided Executor. */ */ @BinderThread @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"); 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. * Set the runtime permission state from a device admin. * * Loading