From 24e88d55691169e65f6f8fcac9ccce592a2325ee Mon Sep 17 00:00:00 2001 From: Nate Myren Date: Mon, 16 Mar 2020 11:10:14 -0700 Subject: [PATCH] Add executor to onUpdateUserSensitiveFlags Added an executor to the onUpdateUserSensitiveFlags api Test: None Fixes: 141311767 Change-Id: I90ac4e6f61e461147fc2059680976d05e715ad29 --- api/system-current.txt | 1 + .../permission/PermissionControllerService.java | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/api/system-current.txt b/api/system-current.txt index 843fef9eca0b8..ff60e479aec99 100755 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -8915,6 +8915,7 @@ package android.permission { method @BinderThread public abstract void onRevokeRuntimePermissions(@NonNull java.util.Map>, boolean, int, @NonNull String, @NonNull java.util.function.Consumer>>); method @BinderThread public abstract void onSetRuntimePermissionGrantStateByDeviceAdmin(@NonNull String, @NonNull String, @NonNull String, int, @NonNull java.util.function.Consumer); 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"; } diff --git a/core/java/android/permission/PermissionControllerService.java b/core/java/android/permission/PermissionControllerService.java index 4a42230ad15af..82a7d788100d7 100644 --- a/core/java/android/permission/PermissionControllerService.java +++ b/core/java/android/permission/PermissionControllerService.java @@ -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; @@ -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. @@ -223,10 +225,22 @@ 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 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) { - throw new AbstractMethodError("Must be overridden in implementing class"); + onUpdateUserSensitivePermissionFlags(uid, getMainExecutor(), callback); } /**