Loading res/values/config.xml +2 −2 Original line number Diff line number Diff line Loading @@ -529,8 +529,8 @@ <item>content://com.android.settings.slices/intent/media_output_indicator</item> </string-array> <!-- List containing the apps cannot be changed the battery optimize modes --> <string-array name="config_disable_optimization_mode_apps" translatable="false"> <!-- List containing the apps keep in battery mode = "Optimize" --> <string-array name="config_force_battery_optimize_mode_apps" translatable="false"> </string-array> <!-- Uri to query non-public Slice Uris. --> Loading src/com/android/settings/fuelgauge/BatteryBackupHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -268,7 +268,7 @@ public final class BatteryBackupHelper implements BackupHelper { // Start to restore the app optimization mode data. final int restoreCount = restoreOptimizationMode(mOptimizationModeBytes); if (restoreCount > 0) { BatterySettingsMigrateChecker.verifyOptimizationModes(mContext); BatterySettingsMigrateChecker.verifyBatteryOptimizeModes(mContext); } mOptimizationModeBytes = null; // clear data } Loading src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +3 −3 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ public class BatteryOptimizeUtils { /** Return {@code true} if it is disabled for default optimized mode only. */ public boolean isDisabledForOptimizeModeOnly() { return getAllowList(mContext).contains(mPackageName) return getForceBatteryOptimizeModeList(mContext).contains(mPackageName) || mBatteryUtils.getPackageUid(mPackageName) == BatteryUtils.UID_NULL; } Loading Loading @@ -216,9 +216,9 @@ public class BatteryOptimizeUtils { || powerAllowlistBackend.isDefaultActiveApp(packageName, uid); } static List<String> getAllowList(Context context) { static List<String> getForceBatteryOptimizeModeList(Context context) { return Arrays.asList(context.getResources().getStringArray( R.array.config_disable_optimization_mode_apps)); R.array.config_force_battery_optimize_mode_apps)); } private static void setAppUsageStateInternal( Loading src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java +5 −4 Original line number Diff line number Diff line Loading @@ -50,17 +50,18 @@ public final class BatterySettingsMigrateChecker extends BroadcastReceiver { static void verifyConfiguration(Context context) { context = context.getApplicationContext(); verifySaverConfiguration(context); verifyOptimizationModes(context); verifyBatteryOptimizeModes(context); } /** Avoid users set important apps into the unexpected battery optimize modes */ static void verifyOptimizationModes(Context context) { static void verifyBatteryOptimizeModes(Context context) { Log.d(TAG, "invoke verifyOptimizationModes()"); verifyOptimizationModes(context, BatteryOptimizeUtils.getAllowList(context)); verifyBatteryOptimizeModes(context, BatteryOptimizeUtils.getForceBatteryOptimizeModeList(context)); } @VisibleForTesting static void verifyOptimizationModes(Context context, List<String> allowList) { static void verifyBatteryOptimizeModes(Context context, List<String> allowList) { allowList.forEach(packageName -> { final BatteryOptimizeUtils batteryOptimizeUtils = BatteryBackupHelper.newBatteryOptimizeUtils(context, packageName, Loading tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsMigrateCheckerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -151,11 +151,11 @@ public final class BatterySettingsMigrateCheckerTest { } @Test public void verifyOptimizationModes_inAllowList_resetOptimizationMode() throws Exception { public void verifyBatteryOptimizeModes_inAllowList_resetOptimizationMode() throws Exception { doReturn(BatteryOptimizeUtils.MODE_RESTRICTED).when(mBatteryOptimizeUtils) .getAppOptimizationMode(); mBatterySettingsMigrateChecker.verifyOptimizationModes( mBatterySettingsMigrateChecker.verifyBatteryOptimizeModes( mContext, Arrays.asList(PACKAGE_NAME)); final InOrder inOrder = inOrder(mBatteryOptimizeUtils); Loading @@ -166,22 +166,22 @@ public final class BatterySettingsMigrateCheckerTest { } @Test public void verifyOptimizationModes_optimizedMode_noAction() throws Exception { public void verifyBatteryOptimizeModes_optimizedMode_noAction() throws Exception { doReturn(BatteryOptimizeUtils.MODE_OPTIMIZED).when(mBatteryOptimizeUtils) .getAppOptimizationMode(); mBatterySettingsMigrateChecker.verifyOptimizationModes( mBatterySettingsMigrateChecker.verifyBatteryOptimizeModes( mContext, Arrays.asList(PACKAGE_NAME)); verify(mBatteryOptimizeUtils, never()).setAppUsageState(anyInt(), any()); } @Test public void verifyOptimizationModes_notInAllowList_noAction() throws Exception { public void verifyBatteryOptimizeModes_notInAllowList_noAction() throws Exception { doReturn(BatteryOptimizeUtils.MODE_RESTRICTED).when(mBatteryOptimizeUtils) .getAppOptimizationMode(); mBatterySettingsMigrateChecker.verifyOptimizationModes( mBatterySettingsMigrateChecker.verifyBatteryOptimizeModes( mContext, new ArrayList<String>()); verifyNoInteractions(mBatteryOptimizeUtils); Loading Loading
res/values/config.xml +2 −2 Original line number Diff line number Diff line Loading @@ -529,8 +529,8 @@ <item>content://com.android.settings.slices/intent/media_output_indicator</item> </string-array> <!-- List containing the apps cannot be changed the battery optimize modes --> <string-array name="config_disable_optimization_mode_apps" translatable="false"> <!-- List containing the apps keep in battery mode = "Optimize" --> <string-array name="config_force_battery_optimize_mode_apps" translatable="false"> </string-array> <!-- Uri to query non-public Slice Uris. --> Loading
src/com/android/settings/fuelgauge/BatteryBackupHelper.java +1 −1 Original line number Diff line number Diff line Loading @@ -268,7 +268,7 @@ public final class BatteryBackupHelper implements BackupHelper { // Start to restore the app optimization mode data. final int restoreCount = restoreOptimizationMode(mOptimizationModeBytes); if (restoreCount > 0) { BatterySettingsMigrateChecker.verifyOptimizationModes(mContext); BatterySettingsMigrateChecker.verifyBatteryOptimizeModes(mContext); } mOptimizationModeBytes = null; // clear data } Loading
src/com/android/settings/fuelgauge/BatteryOptimizeUtils.java +3 −3 Original line number Diff line number Diff line Loading @@ -130,7 +130,7 @@ public class BatteryOptimizeUtils { /** Return {@code true} if it is disabled for default optimized mode only. */ public boolean isDisabledForOptimizeModeOnly() { return getAllowList(mContext).contains(mPackageName) return getForceBatteryOptimizeModeList(mContext).contains(mPackageName) || mBatteryUtils.getPackageUid(mPackageName) == BatteryUtils.UID_NULL; } Loading Loading @@ -216,9 +216,9 @@ public class BatteryOptimizeUtils { || powerAllowlistBackend.isDefaultActiveApp(packageName, uid); } static List<String> getAllowList(Context context) { static List<String> getForceBatteryOptimizeModeList(Context context) { return Arrays.asList(context.getResources().getStringArray( R.array.config_disable_optimization_mode_apps)); R.array.config_force_battery_optimize_mode_apps)); } private static void setAppUsageStateInternal( Loading
src/com/android/settings/fuelgauge/BatterySettingsMigrateChecker.java +5 −4 Original line number Diff line number Diff line Loading @@ -50,17 +50,18 @@ public final class BatterySettingsMigrateChecker extends BroadcastReceiver { static void verifyConfiguration(Context context) { context = context.getApplicationContext(); verifySaverConfiguration(context); verifyOptimizationModes(context); verifyBatteryOptimizeModes(context); } /** Avoid users set important apps into the unexpected battery optimize modes */ static void verifyOptimizationModes(Context context) { static void verifyBatteryOptimizeModes(Context context) { Log.d(TAG, "invoke verifyOptimizationModes()"); verifyOptimizationModes(context, BatteryOptimizeUtils.getAllowList(context)); verifyBatteryOptimizeModes(context, BatteryOptimizeUtils.getForceBatteryOptimizeModeList(context)); } @VisibleForTesting static void verifyOptimizationModes(Context context, List<String> allowList) { static void verifyBatteryOptimizeModes(Context context, List<String> allowList) { allowList.forEach(packageName -> { final BatteryOptimizeUtils batteryOptimizeUtils = BatteryBackupHelper.newBatteryOptimizeUtils(context, packageName, Loading
tests/robotests/src/com/android/settings/fuelgauge/BatterySettingsMigrateCheckerTest.java +6 −6 Original line number Diff line number Diff line Loading @@ -151,11 +151,11 @@ public final class BatterySettingsMigrateCheckerTest { } @Test public void verifyOptimizationModes_inAllowList_resetOptimizationMode() throws Exception { public void verifyBatteryOptimizeModes_inAllowList_resetOptimizationMode() throws Exception { doReturn(BatteryOptimizeUtils.MODE_RESTRICTED).when(mBatteryOptimizeUtils) .getAppOptimizationMode(); mBatterySettingsMigrateChecker.verifyOptimizationModes( mBatterySettingsMigrateChecker.verifyBatteryOptimizeModes( mContext, Arrays.asList(PACKAGE_NAME)); final InOrder inOrder = inOrder(mBatteryOptimizeUtils); Loading @@ -166,22 +166,22 @@ public final class BatterySettingsMigrateCheckerTest { } @Test public void verifyOptimizationModes_optimizedMode_noAction() throws Exception { public void verifyBatteryOptimizeModes_optimizedMode_noAction() throws Exception { doReturn(BatteryOptimizeUtils.MODE_OPTIMIZED).when(mBatteryOptimizeUtils) .getAppOptimizationMode(); mBatterySettingsMigrateChecker.verifyOptimizationModes( mBatterySettingsMigrateChecker.verifyBatteryOptimizeModes( mContext, Arrays.asList(PACKAGE_NAME)); verify(mBatteryOptimizeUtils, never()).setAppUsageState(anyInt(), any()); } @Test public void verifyOptimizationModes_notInAllowList_noAction() throws Exception { public void verifyBatteryOptimizeModes_notInAllowList_noAction() throws Exception { doReturn(BatteryOptimizeUtils.MODE_RESTRICTED).when(mBatteryOptimizeUtils) .getAppOptimizationMode(); mBatterySettingsMigrateChecker.verifyOptimizationModes( mBatterySettingsMigrateChecker.verifyBatteryOptimizeModes( mContext, new ArrayList<String>()); verifyNoInteractions(mBatteryOptimizeUtils); Loading