diff --git a/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java b/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java index c249676084a..463d4dc0a6e 100644 --- a/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceController.java @@ -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 { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java index 6d3607fdd87..081347873a2 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BackgroundActivityPreferenceControllerTest.java @@ -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);