Merge "Reset app preferences does not trigger backup for App battery usages" into main

This commit is contained in:
Jacky Wang
2024-03-11 09:11:12 +00:00
committed by Android (Google) Code Review
5 changed files with 27 additions and 49 deletions

View File

@@ -52,7 +52,6 @@ import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.core.instrumentation.Instrumentable;
import com.android.settingslib.datastore.ChangeReason;
import com.android.settingslib.widget.LayoutPreference;
import java.util.ArrayList;
@@ -272,7 +271,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment
public void onPause() {
super.onPause();
notifyBackupManager();
final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode();
mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode);
logMetricCategory(currentOptimizeMode);
@@ -289,13 +287,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment
Log.d(TAG, "Leave with mode: " + currentOptimizeMode);
}
@VisibleForTesting
void notifyBackupManager() {
if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) {
BatterySettingsStorage.get(getContext()).notifyChange(ChangeReason.UPDATE);
}
}
@VisibleForTesting
void initHeader() {
final View appSnippet = mHeaderPreference.findViewById(R.id.entity_header);

View File

@@ -33,6 +33,7 @@ import androidx.annotation.VisibleForTesting;
import com.android.settings.R;
import com.android.settings.fuelgauge.BatteryOptimizeHistoricalLogEntry.Action;
import com.android.settingslib.datastore.ChangeReason;
import com.android.settingslib.fuelgauge.PowerAllowlistBackend;
import java.lang.annotation.Retention;
@@ -222,6 +223,10 @@ public class BatteryOptimizeUtils {
return;
}
// App preferences are already clear when code reach here, and there may be no
// setAppUsageStateInternal call to notifyChange. So always trigger notifyChange here.
BatterySettingsStorage.get(context).notifyChange(ChangeReason.DELETE);
allowlistBackend.refreshList();
// Resets optimization mode for each application.
for (ApplicationInfo info : applications) {
@@ -351,6 +356,9 @@ public class BatteryOptimizeUtils {
}
BatteryOptimizeLogUtils.writeLog(
context, action, packageNameKey, createLogEvent(appStandbyMode, allowListed));
if (action != Action.RESET) { // reset has been notified in resetAppOptimizationMode
BatterySettingsStorage.get(context).notifyChange(toChangeReason(action));
}
}
private static String createLogEvent(int appStandbyMode, boolean allowListed) {
@@ -362,4 +370,8 @@ public class BatteryOptimizeUtils {
allowListed,
getAppOptimizationMode(appStandbyMode, allowListed));
}
private static @ChangeReason int toChangeReason(Action action) {
return action == Action.RESTORE ? ChangeReason.RESTORE : ChangeReason.UPDATE;
}
}

View File

@@ -41,7 +41,6 @@ import com.android.settingslib.HelpUtils;
import com.android.settingslib.applications.AppUtils;
import com.android.settingslib.applications.ApplicationsState;
import com.android.settingslib.core.AbstractPreferenceController;
import com.android.settingslib.datastore.ChangeReason;
import com.android.settingslib.widget.FooterPreference;
import com.android.settingslib.widget.LayoutPreference;
import com.android.settingslib.widget.MainSwitchPreference;
@@ -116,7 +115,6 @@ public class PowerBackgroundUsageDetail extends DashboardFragment
public void onPause() {
super.onPause();
notifyBackupManager();
final int currentOptimizeMode = mBatteryOptimizeUtils.getAppOptimizationMode();
mLogStringBuilder.append(", onPause mode = ").append(currentOptimizeMode);
logMetricCategory(currentOptimizeMode);
@@ -183,13 +181,6 @@ public class PowerBackgroundUsageDetail extends DashboardFragment
onRadioButtonClicked(isEnabled ? mOptimizePreference : null);
}
@VisibleForTesting
void notifyBackupManager() {
if (mOptimizationMode != mBatteryOptimizeUtils.getAppOptimizationMode()) {
BatterySettingsStorage.get(getContext()).notifyChange(ChangeReason.UPDATE);
}
}
@VisibleForTesting
int getSelectedPreference() {
if (!mMainSwitchPreference.isChecked()) {