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

Commit 700f7e9a authored by Xinyi Mao's avatar Xinyi Mao Committed by Android (Google) Code Review
Browse files

Merge "Take as Unrestricted Mode in the UI if current Mode is Unknown." into main

parents a876deec 7bfa060c
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -196,7 +196,9 @@ public final class BatteryBackupHelper implements BackupHelper {
                    appOptModeMap.containsKey(info.uid)
                            ? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
                            : BatteryOptimizeUtils.getAppOptimizationMode(
                                    mode, allowlistedApps.contains(info.packageName));
                                    mode,
                                    allowlistedApps.contains(info.packageName),
                                    /* ignoreUnknownMode= */ false);
            // Ignores default optimized/unknown state or system/default apps.
            if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
                    || optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
+14 −9
Original line number Diff line number Diff line
@@ -100,7 +100,8 @@ public class BatteryOptimizeUtils {

    /** Gets the {@link OptimizationMode} based on mode and allowed list. */
    @OptimizationMode
    public static int getAppOptimizationMode(int mode, boolean isAllowListed) {
    public static int getAppOptimizationMode(
            int mode, boolean isAllowListed, boolean ignoreUnknownMode) {
        if (!isAllowListed && mode == AppOpsManager.MODE_IGNORED) {
            return MODE_RESTRICTED;
        } else if (isAllowListed && mode == AppOpsManager.MODE_ALLOWED) {
@@ -108,13 +109,15 @@ public class BatteryOptimizeUtils {
        } else if (!isAllowListed && mode == AppOpsManager.MODE_ALLOWED) {
            return MODE_OPTIMIZED;
        } else {
            return MODE_UNKNOWN;
            // MODE_UNKNOWN = isAllowListed + AppOpsManager.MODE_IGNORED
            // Return Unrestricted mode for Unknown mode since it is in allowlist.
            return ignoreUnknownMode ? MODE_UNRESTRICTED : MODE_UNKNOWN;
        }
    }

    /** Gets the {@link OptimizationMode} for associated app. */
    @OptimizationMode
    public int getAppOptimizationMode(boolean refreshList) {
    public int getAppOptimizationMode(boolean refreshList, boolean ignoreUnknownMode) {
        if (refreshList) {
            mPowerAllowListBackend.refreshList();
        }
@@ -127,13 +130,13 @@ public class BatteryOptimizeUtils {
                String.format(
                        "refresh %s state, allowlisted = %s, mode = %d",
                        mPackageName, mAllowListed, mMode));
        return getAppOptimizationMode(mMode, mAllowListed);
        return getAppOptimizationMode(mMode, mAllowListed, ignoreUnknownMode);
    }

    /** Gets the {@link OptimizationMode} for associated app. */
    @OptimizationMode
    public int getAppOptimizationMode() {
        return getAppOptimizationMode(true);
        return getAppOptimizationMode(/* refreshList= */ true, /* ignoreUnknownMode= */ true);
    }

    /** Resets optimization mode for all applications. */
@@ -246,10 +249,11 @@ public class BatteryOptimizeUtils {
            @OptimizationMode
            final int optimizationMode =
                    getAppOptimizationMode(
                            mode, allowlistBackend.isAllowlisted(info.packageName, info.uid));
            // Ignores default optimized/unknown state or system/default apps.
                            mode,
                            allowlistBackend.isAllowlisted(info.packageName, info.uid),
                            /* ignoreUnknownMode= */ false);
            // Ignores default optimized state or system/default apps.
            if (optimizationMode == MODE_OPTIMIZED
                    || optimizationMode == MODE_UNKNOWN
                    || isSystemOrDefaultApp(
                            context, allowlistBackend, info.packageName, info.uid)) {
                continue;
@@ -374,7 +378,8 @@ public class BatteryOptimizeUtils {
                        "\tStandbyMode: %s, allowListed: %s, mode: %s",
                        appStandbyMode,
                        allowListed,
                        getAppOptimizationMode(appStandbyMode, allowListed));
                        getAppOptimizationMode(
                                appStandbyMode, allowListed, /* ignoreUnknownMode= */ false));
    }

    private static @DataChangeReason int toChangeReason(Action action) {
+3 −1
Original line number Diff line number Diff line
@@ -347,7 +347,9 @@ public final class BatterySettingsStorage extends ObservableBackupRestoreStorage
                        appOptModeMap.containsKey(info.uid)
                                ? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
                                : BatteryOptimizeUtils.getAppOptimizationMode(
                                        mode, mAllowlistedApps.contains(info.packageName));
                                        mode,
                                        mAllowlistedApps.contains(info.packageName),
                                        /* ignoreUnknownMode= */ false);
                // Ignores default optimized/unknown state or system/default apps.
                if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
                        || optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
+2 −1
Original line number Diff line number Diff line
@@ -51,7 +51,8 @@ final class BatteryOptimizationModeCache {
                    Pair.create(
                            BatteryOptimizationMode.forNumber(
                                    batteryOptimizeUtils.getAppOptimizationMode(
                                            /* refreshList= */ false)),
                                            /* refreshList= */ false,
                                            /* ignoreUnknownMode= */ false)),
                            batteryOptimizeUtils.isOptimizeModeMutable()));
        }
        final Pair<BatteryOptimizationMode, Boolean> batteryOptimizeModeInfo =
+1 −1
Original line number Diff line number Diff line
@@ -107,7 +107,7 @@ class BatteryOptimizationModeAppListModel(
        PowerAllowlistBackend.getInstance(context).refreshList()
        return recordListFlow.filterItem {
            val appOptimizationMode = BatteryOptimizeUtils(context, it.app.uid, it.app.packageName)
                .getAppOptimizationMode(/* refreshList */ false);
                .getAppOptimizationMode(/* refreshList */ false, /* ignoreUnknownMode */ true);
            when (OptimizationModeSpinnerItem.entries.getOrNull(option)) {
                OptimizationModeSpinnerItem.Restricted ->
                    appOptimizationMode == BatteryOptimizeUtils.MODE_RESTRICTED
Loading