Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1b2bc3e5 authored by YK Hung's avatar YK Hung Committed by Android (Google) Code Review
Browse files

Merge "Rename for: force app stay in the battery optimize mode" into main

parents 864ea107 d3684f7d
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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. -->
+1 −1
Original line number Diff line number Diff line
@@ -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
    }
+3 −3
Original line number Diff line number Diff line
@@ -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;
    }

@@ -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(
+5 −4
Original line number Diff line number Diff line
@@ -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,
+6 −6
Original line number Diff line number Diff line
@@ -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);
@@ -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);