Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d6a9e089 authored by Jing Ji's avatar Jing Ji
Browse files

Init the role holder package names in the app restriction controller

Bug: 228484169
Test: dumpsys activity -a
Change-Id: I8d20398b13ca146e73715fffb3ba1e988c2fa47d
parent f1f03b8f
Loading
Loading
Loading
Loading
+18 −0
Original line number Original line Diff line number Diff line
@@ -223,6 +223,11 @@ public final class AppRestrictionController {
    private static final String ATTR_LEVEL_TS = "levelts";
    private static final String ATTR_LEVEL_TS = "levelts";
    private static final String ATTR_REASON = "reason";
    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 Context mContext;
    private final HandlerThread mBgHandlerThread;
    private final HandlerThread mBgHandlerThread;
    private final BgHandler mBgHandler;
    private final BgHandler mBgHandler;
@@ -1386,6 +1391,7 @@ public final class AppRestrictionController {
        initBgRestrictionExemptioFromSysConfig();
        initBgRestrictionExemptioFromSysConfig();
        initRestrictionStates();
        initRestrictionStates();
        initSystemModuleNames();
        initSystemModuleNames();
        initRolesInInterest();
        registerForUidObservers();
        registerForUidObservers();
        registerForSystemBroadcasts();
        registerForSystemBroadcasts();
        mNotificationHelper.onSystemReady();
        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) {
    private void onRoleHoldersChanged(@NonNull String roleName, @NonNull UserHandle user) {
        final List<String> rolePkgs = mInjector.getRoleManager().getRoleHoldersAsUser(
        final List<String> rolePkgs = mInjector.getRoleManager().getRoleHoldersAsUser(
                roleName, user);
                roleName, user);