Loading src/com/android/settings/applications/AppStateAppOpsBridge.java +11 −1 Original line number Diff line number Diff line Loading @@ -61,17 +61,27 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { this(context, appState, callback, appOpsOpCode, permissions, AppGlobals.getPackageManager()); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions) { this(context, appState, callback, appOpsOpCodes, permissions, AppGlobals.getPackageManager()); } @VisibleForTesting AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int appOpsOpCode, String[] permissions, IPackageManager packageManager) { this(context, appState, callback, new int[] {appOpsOpCode}, permissions, packageManager); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions, IPackageManager packageManager) { super(appState, callback); mContext = context; mIPackageManager = packageManager; mUserManager = UserManager.get(context); mProfiles = mUserManager.getUserProfiles(); mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); mAppOpsOpCodes = new int[] {appOpsOpCode}; mAppOpsOpCodes = appOpsOpCodes; mPermissions = permissions; } Loading src/com/android/settings/applications/AppStateUsageBridge.java +11 −4 Original line number Diff line number Diff line Loading @@ -33,13 +33,20 @@ public class AppStateUsageBridge extends AppStateAppOpsBridge { private static final String TAG = "AppStateUsageBridge"; private static final String PM_USAGE_STATS = Manifest.permission.PACKAGE_USAGE_STATS; private static final int APP_OPS_OP_CODE = AppOpsManager.OP_GET_USAGE_STATS; private static final String[] PM_PERMISSION = { PM_USAGE_STATS private static final String PM_LOADER_STATS = Manifest.permission.LOADER_USAGE_STATS; private static final int APP_OPS_USAGE_STATS = AppOpsManager.OP_GET_USAGE_STATS; private static final int APP_OPS_LOADER_STATS = AppOpsManager.OP_LOADER_USAGE_STATS; private static final int[] APP_OPS_OP_CODES = { APP_OPS_USAGE_STATS, APP_OPS_LOADER_STATS, }; private static final String[] PM_PERMISSIONS = { PM_USAGE_STATS, PM_LOADER_STATS, }; public AppStateUsageBridge(Context context, ApplicationsState appState, Callback callback) { super(context, appState, callback, APP_OPS_OP_CODE, PM_PERMISSION); super(context, appState, callback, APP_OPS_OP_CODES, PM_PERMISSIONS); } @Override Loading src/com/android/settings/applications/UsageAccessDetails.java +24 −2 Original line number Diff line number Diff line Loading @@ -15,6 +15,10 @@ */ package com.android.settings.applications; import static android.app.AppOpsManager.OP_GET_USAGE_STATS; import static android.app.AppOpsManager.OP_LOADER_USAGE_STATS; import android.Manifest; import android.app.AppOpsManager; import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; Loading Loading @@ -104,10 +108,28 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc return false; } private static boolean doesAnyPermissionMatch(String permissionToMatch, String[] permissions) { for (String permission : permissions) { if (permissionToMatch.equals(permission)) { return true; } } return false; } private void setHasAccess(boolean newState) { logSpecialPermissionChange(newState, mPackageName); mAppOpsManager.setMode(AppOpsManager.OP_GET_USAGE_STATS, mPackageInfo.applicationInfo.uid, mPackageName, newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED); final int newAppOpMode = newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED; final int uid = mPackageInfo.applicationInfo.uid; if (doesAnyPermissionMatch(Manifest.permission.PACKAGE_USAGE_STATS, mUsageState.packageInfo.requestedPermissions)) { mAppOpsManager.setMode(OP_GET_USAGE_STATS, uid, mPackageName, newAppOpMode); } if (doesAnyPermissionMatch(Manifest.permission.LOADER_USAGE_STATS, mUsageState.packageInfo.requestedPermissions)) { mAppOpsManager.setMode(OP_LOADER_USAGE_STATS, uid, mPackageName, newAppOpMode); } } @VisibleForTesting Loading Loading
src/com/android/settings/applications/AppStateAppOpsBridge.java +11 −1 Original line number Diff line number Diff line Loading @@ -61,17 +61,27 @@ public abstract class AppStateAppOpsBridge extends AppStateBaseBridge { this(context, appState, callback, appOpsOpCode, permissions, AppGlobals.getPackageManager()); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions) { this(context, appState, callback, appOpsOpCodes, permissions, AppGlobals.getPackageManager()); } @VisibleForTesting AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int appOpsOpCode, String[] permissions, IPackageManager packageManager) { this(context, appState, callback, new int[] {appOpsOpCode}, permissions, packageManager); } AppStateAppOpsBridge(Context context, ApplicationsState appState, Callback callback, int[] appOpsOpCodes, String[] permissions, IPackageManager packageManager) { super(appState, callback); mContext = context; mIPackageManager = packageManager; mUserManager = UserManager.get(context); mProfiles = mUserManager.getUserProfiles(); mAppOpsManager = (AppOpsManager) context.getSystemService(Context.APP_OPS_SERVICE); mAppOpsOpCodes = new int[] {appOpsOpCode}; mAppOpsOpCodes = appOpsOpCodes; mPermissions = permissions; } Loading
src/com/android/settings/applications/AppStateUsageBridge.java +11 −4 Original line number Diff line number Diff line Loading @@ -33,13 +33,20 @@ public class AppStateUsageBridge extends AppStateAppOpsBridge { private static final String TAG = "AppStateUsageBridge"; private static final String PM_USAGE_STATS = Manifest.permission.PACKAGE_USAGE_STATS; private static final int APP_OPS_OP_CODE = AppOpsManager.OP_GET_USAGE_STATS; private static final String[] PM_PERMISSION = { PM_USAGE_STATS private static final String PM_LOADER_STATS = Manifest.permission.LOADER_USAGE_STATS; private static final int APP_OPS_USAGE_STATS = AppOpsManager.OP_GET_USAGE_STATS; private static final int APP_OPS_LOADER_STATS = AppOpsManager.OP_LOADER_USAGE_STATS; private static final int[] APP_OPS_OP_CODES = { APP_OPS_USAGE_STATS, APP_OPS_LOADER_STATS, }; private static final String[] PM_PERMISSIONS = { PM_USAGE_STATS, PM_LOADER_STATS, }; public AppStateUsageBridge(Context context, ApplicationsState appState, Callback callback) { super(context, appState, callback, APP_OPS_OP_CODE, PM_PERMISSION); super(context, appState, callback, APP_OPS_OP_CODES, PM_PERMISSIONS); } @Override Loading
src/com/android/settings/applications/UsageAccessDetails.java +24 −2 Original line number Diff line number Diff line Loading @@ -15,6 +15,10 @@ */ package com.android.settings.applications; import static android.app.AppOpsManager.OP_GET_USAGE_STATS; import static android.app.AppOpsManager.OP_LOADER_USAGE_STATS; import android.Manifest; import android.app.AppOpsManager; import android.app.admin.DevicePolicyManager; import android.app.settings.SettingsEnums; Loading Loading @@ -104,10 +108,28 @@ public class UsageAccessDetails extends AppInfoWithHeader implements OnPreferenc return false; } private static boolean doesAnyPermissionMatch(String permissionToMatch, String[] permissions) { for (String permission : permissions) { if (permissionToMatch.equals(permission)) { return true; } } return false; } private void setHasAccess(boolean newState) { logSpecialPermissionChange(newState, mPackageName); mAppOpsManager.setMode(AppOpsManager.OP_GET_USAGE_STATS, mPackageInfo.applicationInfo.uid, mPackageName, newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED); final int newAppOpMode = newState ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED; final int uid = mPackageInfo.applicationInfo.uid; if (doesAnyPermissionMatch(Manifest.permission.PACKAGE_USAGE_STATS, mUsageState.packageInfo.requestedPermissions)) { mAppOpsManager.setMode(OP_GET_USAGE_STATS, uid, mPackageName, newAppOpMode); } if (doesAnyPermissionMatch(Manifest.permission.LOADER_USAGE_STATS, mUsageState.packageInfo.requestedPermissions)) { mAppOpsManager.setMode(OP_LOADER_USAGE_STATS, uid, mPackageName, newAppOpMode); } } @VisibleForTesting Loading