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

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

Merge "Fetch the original battery optimization mode in backup & restore process." into main

parents d76f5b82 1767a6eb
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
@@ -38,6 +38,8 @@ import android.util.Log;
import androidx.annotation.VisibleForTesting;

import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
import com.android.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils;
import com.android.settings.fuelgauge.batteryusage.AppOptimizationModeEvent;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;

@@ -47,6 +49,8 @@ import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/** An implementation to backup and restore battery configurations. */
public final class BatteryBackupHelper implements BackupHelper {
@@ -181,12 +185,17 @@ public final class BatteryBackupHelper implements BackupHelper {
        final StringBuilder builder = new StringBuilder();
        final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
        final SharedPreferences sharedPreferences = getSharedPreferences(mContext);
        final Map<Integer, AppOptimizationModeEvent> appOptModeMap =
                AppOptModeSharedPreferencesUtils.getAllEvents(mContext).stream()
                        .collect(Collectors.toMap(AppOptimizationModeEvent::getUid, e -> e));
        // Converts application into the AppUsageState.
        for (ApplicationInfo info : applications) {
            final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
            @BatteryOptimizeUtils.OptimizationMode
            final int optimizationMode =
                    BatteryOptimizeUtils.getAppOptimizationMode(
                    appOptModeMap.containsKey(info.uid)
                            ? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
                            : BatteryOptimizeUtils.getAppOptimizationMode(
                                    mode, allowlistedApps.contains(info.packageName));
            // Ignores default optimized/unknown state or system/default apps.
            if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
+11 −2
Original line number Diff line number Diff line
@@ -37,6 +37,8 @@ import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
import com.android.settings.fuelgauge.batteryusage.AppOptModeSharedPreferencesUtils;
import com.android.settings.fuelgauge.batteryusage.AppOptimizationModeEvent;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.datastore.BackupCodec;
import com.android.settingslib.datastore.BackupContext;
@@ -54,6 +56,8 @@ import java.util.Arrays;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

/** An implementation to backup and restore battery configurations. */
public final class BatterySettingsStorage extends ObservableBackupRestoreStorage {
@@ -332,12 +336,17 @@ public final class BatterySettingsStorage extends ObservableBackupRestoreStorage
            final StringBuilder builder = new StringBuilder();
            final AppOpsManager appOps = mApplication.getSystemService(AppOpsManager.class);
            final SharedPreferences sharedPreferences = getSharedPreferences(mApplication);
            final Map<Integer, AppOptimizationModeEvent> appOptModeMap =
                    AppOptModeSharedPreferencesUtils.getAllEvents(mApplication).stream()
                            .collect(Collectors.toMap(AppOptimizationModeEvent::getUid, e -> e));
            // Converts application into the AppUsageState.
            for (ApplicationInfo info : applications) {
                final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
                @BatteryOptimizeUtils.OptimizationMode
                final int optimizationMode =
                        BatteryOptimizeUtils.getAppOptimizationMode(
                        appOptModeMap.containsKey(info.uid)
                                ? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
                                : BatteryOptimizeUtils.getAppOptimizationMode(
                                        mode, mAllowlistedApps.contains(info.packageName));
                // Ignores default optimized/unknown state or system/default apps.
                if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED