diff --git a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java index af16edbe018..24080fe9809 100644 --- a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java +++ b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java @@ -263,7 +263,9 @@ public final class BatteryBackupHelper implements BackupHelper { private boolean isSystemOrDefaultApp(String packageName) { final PowerAllowlistBackend powerAllowlistBackend = getPowerAllowlistBackend(); return powerAllowlistBackend.isSysAllowlisted(packageName) - || powerAllowlistBackend.isDefaultActiveApp(packageName); + || powerAllowlistBackend.isDefaultActiveApp(packageName) + // Optimize mode only for app which is in the allow list not idle app. + || powerAllowlistBackend.isAllowlistedExceptIdle(packageName); } private List getInstalledApplications() { diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java index 5ac8553b91c..aa1caf98d29 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java @@ -114,6 +114,9 @@ public final class BatteryBackupHelperTest { mockUid(1001 /*fake uid*/, PACKAGE_NAME1); mockUid(1002 /*fake uid*/, PACKAGE_NAME2); mockUid(BatteryUtils.UID_NULL, PACKAGE_NAME3); + doReturn(false).when(mPowerAllowlistBackend).isDefaultActiveApp(anyString()); + doReturn(false).when(mPowerAllowlistBackend).isDefaultActiveApp(anyString()); + doReturn(false).when(mPowerAllowlistBackend).isAllowlistedExceptIdle(anyString()); } @After @@ -218,7 +221,6 @@ public final class BatteryBackupHelperTest { createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3); // Sets "com.android.testing.1" as system app. doReturn(true).when(mPowerAllowlistBackend).isSysAllowlisted(PACKAGE_NAME1); - doReturn(false).when(mPowerAllowlistBackend).isDefaultActiveApp(anyString()); mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps); @@ -234,7 +236,21 @@ public final class BatteryBackupHelperTest { createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3); // Sets "com.android.testing.1" as device default app. doReturn(true).when(mPowerAllowlistBackend).isDefaultActiveApp(PACKAGE_NAME1); - doReturn(false).when(mPowerAllowlistBackend).isSysAllowlisted(anyString()); + + mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps); + + // "com.android.testing.2" for RESTRICTED mode. + final String expectedResult = PACKAGE_NAME2 + ":1,"; + verifyBackupData(expectedResult); + } + + @Test + public void backupOptimizationMode_backupOptimizationAndIgnoreAppInTheAllowlist() + throws Exception { + final List allowlistedApps = Arrays.asList(PACKAGE_NAME1); + createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3); + // Sets "com.android.testing.1" in the allowlist. + doReturn(true).when(mPowerAllowlistBackend).isAllowlistedExceptIdle(PACKAGE_NAME1); mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);