Loading core/java/android/permission/PermissionManager.java +25 −6 Original line number Diff line number Diff line Loading @@ -180,8 +180,6 @@ public final class PermissionManager { mPermissionManager = IPermissionManager.Stub.asInterface(ServiceManager.getServiceOrThrow( "permissionmgr")); mLegacyPermissionManager = context.getSystemService(LegacyPermissionManager.class); //TODO ntmyren: there should be a way to only enable the watcher when requested mUsageHelper = new PermissionUsageHelper(context); } /** Loading Loading @@ -988,6 +986,29 @@ public final class PermissionManager { return mSplitPermissionInfos; } /** * Initialize the PermissionUsageHelper, which will register active app op listeners * * @hide */ public void initializeUsageHelper() { if (mUsageHelper == null) { mUsageHelper = new PermissionUsageHelper(mContext); } } /** * Teardown the PermissionUsageHelper, removing listeners * * @hide */ public void tearDownUsageHelper() { if (mUsageHelper != null) { mUsageHelper.tearDown(); mUsageHelper = null; } } /** * @return A list of permission groups currently or recently used by all apps by all users in * the current profile group. Loading @@ -998,7 +1019,7 @@ public final class PermissionManager { @NonNull @RequiresPermission(Manifest.permission.GET_APP_OPS_STATS) public List<PermGroupUsage> getIndicatorAppOpUsageData() { return mUsageHelper.getOpUsageData(new AudioManager().isMicrophoneMute()); return getIndicatorAppOpUsageData(new AudioManager().isMicrophoneMute()); } /** Loading @@ -1013,9 +1034,7 @@ public final class PermissionManager { @RequiresPermission(Manifest.permission.GET_APP_OPS_STATS) public List<PermGroupUsage> getIndicatorAppOpUsageData(boolean micMuted) { // Lazily initialize the usage helper if (mUsageHelper == null) { mUsageHelper = new PermissionUsageHelper(mContext); } initializeUsageHelper(); return mUsageHelper.getOpUsageData(micMuted); } Loading core/java/android/permission/PermissionUsageHelper.java +5 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,11 @@ public class PermissionUsageHelper implements AppOpsManager.OnOpActiveChangedLis return mUserContexts.get(user); } public void tearDown() { mAppOpsManager.stopWatchingActive(this); mAppOpsManager.stopWatchingStarted(this); } @Override public void onOpActiveChanged(@NonNull String op, int uid, @NonNull String packageName, boolean active) { Loading packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +5 −1 Original line number Diff line number Diff line Loading @@ -442,7 +442,11 @@ public class FrameworkServicesModule { @Provides @Singleton static PermissionManager providePermissionManager(Context context) { return context.getSystemService(PermissionManager.class); PermissionManager pm = context.getSystemService(PermissionManager.class); if (pm != null) { pm.initializeUsageHelper(); } return pm; } @Provides Loading Loading
core/java/android/permission/PermissionManager.java +25 −6 Original line number Diff line number Diff line Loading @@ -180,8 +180,6 @@ public final class PermissionManager { mPermissionManager = IPermissionManager.Stub.asInterface(ServiceManager.getServiceOrThrow( "permissionmgr")); mLegacyPermissionManager = context.getSystemService(LegacyPermissionManager.class); //TODO ntmyren: there should be a way to only enable the watcher when requested mUsageHelper = new PermissionUsageHelper(context); } /** Loading Loading @@ -988,6 +986,29 @@ public final class PermissionManager { return mSplitPermissionInfos; } /** * Initialize the PermissionUsageHelper, which will register active app op listeners * * @hide */ public void initializeUsageHelper() { if (mUsageHelper == null) { mUsageHelper = new PermissionUsageHelper(mContext); } } /** * Teardown the PermissionUsageHelper, removing listeners * * @hide */ public void tearDownUsageHelper() { if (mUsageHelper != null) { mUsageHelper.tearDown(); mUsageHelper = null; } } /** * @return A list of permission groups currently or recently used by all apps by all users in * the current profile group. Loading @@ -998,7 +1019,7 @@ public final class PermissionManager { @NonNull @RequiresPermission(Manifest.permission.GET_APP_OPS_STATS) public List<PermGroupUsage> getIndicatorAppOpUsageData() { return mUsageHelper.getOpUsageData(new AudioManager().isMicrophoneMute()); return getIndicatorAppOpUsageData(new AudioManager().isMicrophoneMute()); } /** Loading @@ -1013,9 +1034,7 @@ public final class PermissionManager { @RequiresPermission(Manifest.permission.GET_APP_OPS_STATS) public List<PermGroupUsage> getIndicatorAppOpUsageData(boolean micMuted) { // Lazily initialize the usage helper if (mUsageHelper == null) { mUsageHelper = new PermissionUsageHelper(mContext); } initializeUsageHelper(); return mUsageHelper.getOpUsageData(micMuted); } Loading
core/java/android/permission/PermissionUsageHelper.java +5 −0 Original line number Diff line number Diff line Loading @@ -176,6 +176,11 @@ public class PermissionUsageHelper implements AppOpsManager.OnOpActiveChangedLis return mUserContexts.get(user); } public void tearDown() { mAppOpsManager.stopWatchingActive(this); mAppOpsManager.stopWatchingStarted(this); } @Override public void onOpActiveChanged(@NonNull String op, int uid, @NonNull String packageName, boolean active) { Loading
packages/SystemUI/src/com/android/systemui/dagger/FrameworkServicesModule.java +5 −1 Original line number Diff line number Diff line Loading @@ -442,7 +442,11 @@ public class FrameworkServicesModule { @Provides @Singleton static PermissionManager providePermissionManager(Context context) { return context.getSystemService(PermissionManager.class); PermissionManager pm = context.getSystemService(PermissionManager.class); if (pm != null) { pm.initializeUsageHelper(); } return pm; } @Provides Loading