Merge "Use bg appop ALLOWED, not DEFAULT" into oc-dev

This commit is contained in:
Chris Tate
2017-04-12 18:58:26 +00:00
committed by Android (Google) Code Review
2 changed files with 12 additions and 8 deletions

View File

@@ -90,12 +90,16 @@ public class BackgroundActivityPreferenceController extends PreferenceController
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
boolean switchOn = (Boolean) newValue;
mAppOpsManager.setUidMode(AppOpsManager.OP_RUN_IN_BACKGROUND, mUid,
switchOn ? AppOpsManager.MODE_DEFAULT : AppOpsManager.MODE_IGNORED);
mAppOpsManager.setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, mUid, mTargetPackage,
switchOn ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);
return true;
}
@VisibleForTesting
String getTargetPackage() {
return mTargetPackage;
}
@VisibleForTesting
boolean isLegacyApp(final String packageName) {
try {

View File

@@ -85,16 +85,16 @@ public class BackgroundActivityPreferenceControllerTest {
public void testOnPreferenceChange_TurnOnCheck_MethodInvoked() {
mController.onPreferenceChange(mPreference, true);
verify(mAppOpsManager).setUidMode(AppOpsManager.OP_RUN_IN_BACKGROUND,
UID_NORMAL, AppOpsManager.MODE_DEFAULT);
verify(mAppOpsManager).setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, UID_NORMAL,
mController.getTargetPackage(), AppOpsManager.MODE_ALLOWED);
}
@Test
public void testOnPreferenceChange_TurnOffCheck_MethodInvoked() {
mController.onPreferenceChange(null, false);
verify(mAppOpsManager).setUidMode(AppOpsManager.OP_RUN_IN_BACKGROUND,
UID_NORMAL, AppOpsManager.MODE_IGNORED);
verify(mAppOpsManager).setMode(AppOpsManager.OP_RUN_IN_BACKGROUND, UID_NORMAL,
mController.getTargetPackage(), AppOpsManager.MODE_IGNORED);
}
@Test
@@ -134,7 +134,7 @@ public class BackgroundActivityPreferenceControllerTest {
mController = new BackgroundActivityPreferenceController(mContext, UID_SPECIAL);
when(mAppOpsManager
.checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, UID_SPECIAL, LOW_SDK_PACKAGE))
.thenReturn(AppOpsManager.MODE_DEFAULT);
.thenReturn(AppOpsManager.MODE_ALLOWED);
when(mAppOpsManager
.checkOpNoThrow(AppOpsManager.OP_RUN_IN_BACKGROUND, UID_SPECIAL, HIGH_SDK_PACKAGE))
.thenReturn(AppOpsManager.MODE_IGNORED);