Loading core/java/android/app/AppOpsManager.java +58 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ public class AppOpsManager { // when adding one of these: // - increment _NUM_OP // - add rows to sOpToSwitch, sOpNames, sOpPerms // - add rows to sOpToSwitch, sOpNames, sOpPerms, sOpDefaultMode // - add descriptive strings to Settings/res/values/arrays.xml // - add the op to the appropriate template in AppOpsState.OpsTemplate (settings app) Loading Loading @@ -314,6 +314,55 @@ public class AppOpsManager { null, // no permission for high power location monitoring }; /** * This specifies the default mode for each operation. */ private static int[] sOpDefaultMode = new int[] { AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_IGNORED, // OP_WRITE_SMS AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, }; /** * Retrieve the op switch that controls the given operation. * @hide Loading @@ -338,6 +387,14 @@ public class AppOpsManager { return sOpPerms[op]; } /** * Retrieve the default mode for the operation. * @hide */ public static int opToDefaultMode(int op) { return sOpDefaultMode[op]; } /** * Class holding all of the operation information associated with an app. * @hide Loading core/java/android/provider/Settings.java +6 −0 Original line number Diff line number Diff line Loading @@ -4354,6 +4354,12 @@ public final class Settings { */ public static final String NFC_PAYMENT_DEFAULT_COMPONENT = "nfc_payment_default_component"; /** * Specifies the package name currently configured to be the primary sms application * @hide */ public static final String SMS_DEFAULT_APPLICATION = "sms_default_application"; /** * Name of a package that the current user has explicitly allowed to see all of that * user's notifications. Loading services/java/com/android/server/AppOpsService.java +7 −7 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ public class AppOpsService extends IAppOpsService.Stub { uid = _uid; packageName = _packageName; op = _op; mode = AppOpsManager.MODE_ALLOWED; mode = AppOpsManager.opToDefaultMode(op); } } Loading Loading @@ -379,7 +379,7 @@ public class AppOpsService extends IAppOpsService.Stub { } repCbs.addAll(cbs); } if (mode == AppOpsManager.MODE_ALLOWED) { if (mode == AppOpsManager.opToDefaultMode(op.op)) { // If going into the default mode, prune this op // if there is nothing else interesting in it. pruneOp(op, uid, packageName); Loading Loading @@ -435,8 +435,8 @@ public class AppOpsService extends IAppOpsService.Stub { Ops pkgOps = ent.getValue(); for (int j=pkgOps.size()-1; j>=0; j--) { Op curOp = pkgOps.valueAt(j); if (curOp.mode != AppOpsManager.MODE_ALLOWED) { curOp.mode = AppOpsManager.MODE_ALLOWED; if (curOp.mode != AppOpsManager.opToDefaultMode(curOp.op)) { curOp.mode = AppOpsManager.opToDefaultMode(curOp.op); changed = true; callbacks = addCallbacks(callbacks, packageName, curOp.op, mOpModeWatchers.get(curOp.op)); Loading Loading @@ -545,7 +545,7 @@ public class AppOpsService extends IAppOpsService.Stub { synchronized (this) { Op op = getOpLocked(AppOpsManager.opToSwitch(code), uid, packageName, false); if (op == null) { return AppOpsManager.MODE_ALLOWED; return AppOpsManager.opToDefaultMode(code); } return op.mode; } Loading Loading @@ -947,7 +947,7 @@ public class AppOpsService extends IAppOpsService.Stub { AppOpsManager.OpEntry op = ops.get(j); out.startTag(null, "op"); out.attribute(null, "n", Integer.toString(op.getOp())); if (op.getMode() != AppOpsManager.MODE_ALLOWED) { if (op.getMode() != AppOpsManager.opToDefaultMode(op.getOp())) { out.attribute(null, "m", Integer.toString(op.getMode())); } long time = op.getTime(); Loading Loading
core/java/android/app/AppOpsManager.java +58 −1 Original line number Diff line number Diff line Loading @@ -65,7 +65,7 @@ public class AppOpsManager { // when adding one of these: // - increment _NUM_OP // - add rows to sOpToSwitch, sOpNames, sOpPerms // - add rows to sOpToSwitch, sOpNames, sOpPerms, sOpDefaultMode // - add descriptive strings to Settings/res/values/arrays.xml // - add the op to the appropriate template in AppOpsState.OpsTemplate (settings app) Loading Loading @@ -314,6 +314,55 @@ public class AppOpsManager { null, // no permission for high power location monitoring }; /** * This specifies the default mode for each operation. */ private static int[] sOpDefaultMode = new int[] { AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_IGNORED, // OP_WRITE_SMS AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, AppOpsManager.MODE_ALLOWED, }; /** * Retrieve the op switch that controls the given operation. * @hide Loading @@ -338,6 +387,14 @@ public class AppOpsManager { return sOpPerms[op]; } /** * Retrieve the default mode for the operation. * @hide */ public static int opToDefaultMode(int op) { return sOpDefaultMode[op]; } /** * Class holding all of the operation information associated with an app. * @hide Loading
core/java/android/provider/Settings.java +6 −0 Original line number Diff line number Diff line Loading @@ -4354,6 +4354,12 @@ public final class Settings { */ public static final String NFC_PAYMENT_DEFAULT_COMPONENT = "nfc_payment_default_component"; /** * Specifies the package name currently configured to be the primary sms application * @hide */ public static final String SMS_DEFAULT_APPLICATION = "sms_default_application"; /** * Name of a package that the current user has explicitly allowed to see all of that * user's notifications. Loading
services/java/com/android/server/AppOpsService.java +7 −7 Original line number Diff line number Diff line Loading @@ -113,7 +113,7 @@ public class AppOpsService extends IAppOpsService.Stub { uid = _uid; packageName = _packageName; op = _op; mode = AppOpsManager.MODE_ALLOWED; mode = AppOpsManager.opToDefaultMode(op); } } Loading Loading @@ -379,7 +379,7 @@ public class AppOpsService extends IAppOpsService.Stub { } repCbs.addAll(cbs); } if (mode == AppOpsManager.MODE_ALLOWED) { if (mode == AppOpsManager.opToDefaultMode(op.op)) { // If going into the default mode, prune this op // if there is nothing else interesting in it. pruneOp(op, uid, packageName); Loading Loading @@ -435,8 +435,8 @@ public class AppOpsService extends IAppOpsService.Stub { Ops pkgOps = ent.getValue(); for (int j=pkgOps.size()-1; j>=0; j--) { Op curOp = pkgOps.valueAt(j); if (curOp.mode != AppOpsManager.MODE_ALLOWED) { curOp.mode = AppOpsManager.MODE_ALLOWED; if (curOp.mode != AppOpsManager.opToDefaultMode(curOp.op)) { curOp.mode = AppOpsManager.opToDefaultMode(curOp.op); changed = true; callbacks = addCallbacks(callbacks, packageName, curOp.op, mOpModeWatchers.get(curOp.op)); Loading Loading @@ -545,7 +545,7 @@ public class AppOpsService extends IAppOpsService.Stub { synchronized (this) { Op op = getOpLocked(AppOpsManager.opToSwitch(code), uid, packageName, false); if (op == null) { return AppOpsManager.MODE_ALLOWED; return AppOpsManager.opToDefaultMode(code); } return op.mode; } Loading Loading @@ -947,7 +947,7 @@ public class AppOpsService extends IAppOpsService.Stub { AppOpsManager.OpEntry op = ops.get(j); out.startTag(null, "op"); out.attribute(null, "n", Integer.toString(op.getOp())); if (op.getMode() != AppOpsManager.MODE_ALLOWED) { if (op.getMode() != AppOpsManager.opToDefaultMode(op.getOp())) { out.attribute(null, "m", Integer.toString(op.getMode())); } long time = op.getTime(); Loading