Merge "Fetch the original battery optimization mode in backup & restore process." into main
This commit is contained in:
@@ -38,6 +38,8 @@ import android.util.Log;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
|
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.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
|
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
|
||||||
|
|
||||||
@@ -47,6 +49,8 @@ import java.nio.charset.StandardCharsets;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/** An implementation to backup and restore battery configurations. */
|
/** An implementation to backup and restore battery configurations. */
|
||||||
public final class BatteryBackupHelper implements BackupHelper {
|
public final class BatteryBackupHelper implements BackupHelper {
|
||||||
@@ -181,13 +185,18 @@ public final class BatteryBackupHelper implements BackupHelper {
|
|||||||
final StringBuilder builder = new StringBuilder();
|
final StringBuilder builder = new StringBuilder();
|
||||||
final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
|
final AppOpsManager appOps = mContext.getSystemService(AppOpsManager.class);
|
||||||
final SharedPreferences sharedPreferences = getSharedPreferences(mContext);
|
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.
|
// Converts application into the AppUsageState.
|
||||||
for (ApplicationInfo info : applications) {
|
for (ApplicationInfo info : applications) {
|
||||||
final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
|
final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
|
||||||
@BatteryOptimizeUtils.OptimizationMode
|
@BatteryOptimizeUtils.OptimizationMode
|
||||||
final int optimizationMode =
|
final int optimizationMode =
|
||||||
BatteryOptimizeUtils.getAppOptimizationMode(
|
appOptModeMap.containsKey(info.uid)
|
||||||
mode, allowlistedApps.contains(info.packageName));
|
? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
|
||||||
|
: BatteryOptimizeUtils.getAppOptimizationMode(
|
||||||
|
mode, allowlistedApps.contains(info.packageName));
|
||||||
// Ignores default optimized/unknown state or system/default apps.
|
// Ignores default optimized/unknown state or system/default apps.
|
||||||
if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
|
if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
|
||||||
|| optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
|
|| optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
|
||||||
|
@@ -37,6 +37,8 @@ import androidx.annotation.NonNull;
|
|||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
|
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.settings.overlay.FeatureFactory;
|
||||||
import com.android.settingslib.datastore.BackupCodec;
|
import com.android.settingslib.datastore.BackupCodec;
|
||||||
import com.android.settingslib.datastore.BackupContext;
|
import com.android.settingslib.datastore.BackupContext;
|
||||||
@@ -54,6 +56,8 @@ import java.util.Arrays;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/** An implementation to backup and restore battery configurations. */
|
/** An implementation to backup and restore battery configurations. */
|
||||||
public final class BatterySettingsStorage extends ObservableBackupRestoreStorage {
|
public final class BatterySettingsStorage extends ObservableBackupRestoreStorage {
|
||||||
@@ -332,13 +336,18 @@ public final class BatterySettingsStorage extends ObservableBackupRestoreStorage
|
|||||||
final StringBuilder builder = new StringBuilder();
|
final StringBuilder builder = new StringBuilder();
|
||||||
final AppOpsManager appOps = mApplication.getSystemService(AppOpsManager.class);
|
final AppOpsManager appOps = mApplication.getSystemService(AppOpsManager.class);
|
||||||
final SharedPreferences sharedPreferences = getSharedPreferences(mApplication);
|
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.
|
// Converts application into the AppUsageState.
|
||||||
for (ApplicationInfo info : applications) {
|
for (ApplicationInfo info : applications) {
|
||||||
final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
|
final int mode = BatteryOptimizeUtils.getMode(appOps, info.uid, info.packageName);
|
||||||
@BatteryOptimizeUtils.OptimizationMode
|
@BatteryOptimizeUtils.OptimizationMode
|
||||||
final int optimizationMode =
|
final int optimizationMode =
|
||||||
BatteryOptimizeUtils.getAppOptimizationMode(
|
appOptModeMap.containsKey(info.uid)
|
||||||
mode, mAllowlistedApps.contains(info.packageName));
|
? (int) appOptModeMap.get(info.uid).getResetOptimizationMode()
|
||||||
|
: BatteryOptimizeUtils.getAppOptimizationMode(
|
||||||
|
mode, mAllowlistedApps.contains(info.packageName));
|
||||||
// Ignores default optimized/unknown state or system/default apps.
|
// Ignores default optimized/unknown state or system/default apps.
|
||||||
if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
|
if (optimizationMode == BatteryOptimizeUtils.MODE_OPTIMIZED
|
||||||
|| optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
|
|| optimizationMode == BatteryOptimizeUtils.MODE_UNKNOWN
|
||||||
|
Reference in New Issue
Block a user