From d6a9e089ef97237276947d01ee483ad862ced7db Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Tue, 12 Apr 2022 18:27:47 -0700 Subject: [PATCH] Init the role holder package names in the app restriction controller Bug: 228484169 Test: dumpsys activity -a Change-Id: I8d20398b13ca146e73715fffb3ba1e988c2fa47d --- .../server/am/AppRestrictionController.java | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/services/core/java/com/android/server/am/AppRestrictionController.java b/services/core/java/com/android/server/am/AppRestrictionController.java index 798647e043257..635d86c699855 100644 --- a/services/core/java/com/android/server/am/AppRestrictionController.java +++ b/services/core/java/com/android/server/am/AppRestrictionController.java @@ -223,6 +223,11 @@ public final class AppRestrictionController { private static final String ATTR_LEVEL_TS = "levelts"; private static final String ATTR_REASON = "reason"; + private static final String[] ROLES_IN_INTEREST = { + RoleManager.ROLE_DIALER, + RoleManager.ROLE_EMERGENCY, + }; + private final Context mContext; private final HandlerThread mBgHandlerThread; private final BgHandler mBgHandler; @@ -1386,6 +1391,7 @@ public final class AppRestrictionController { initBgRestrictionExemptioFromSysConfig(); initRestrictionStates(); initSystemModuleNames(); + initRolesInInterest(); registerForUidObservers(); registerForSystemBroadcasts(); mNotificationHelper.onSystemReady(); @@ -2666,6 +2672,18 @@ public final class AppRestrictionController { } } + private void initRolesInInterest() { + final int[] allUsers = mInjector.getUserManagerInternal().getUserIds(); + for (String role : ROLES_IN_INTEREST) { + if (mInjector.getRoleManager().isRoleAvailable(role)) { + for (int userId : allUsers) { + final UserHandle user = UserHandle.of(userId); + onRoleHoldersChanged(role, user); + } + } + } + } + private void onRoleHoldersChanged(@NonNull String roleName, @NonNull UserHandle user) { final List rolePkgs = mInjector.getRoleManager().getRoleHoldersAsUser( roleName, user);