Optimize battery optimize page control flow

- Post the setup logic into background and setup once only when leaving
 this page, this can improve the performance since we won't setup
 every time when switching preference

Bug: 195306545
Bug: 199892006
Test: make SettingsRoboTests
Change-Id: I1c3ee4673cf5cdba0abe39f208dfb1412082c579
This commit is contained in:
Wesley.CW Wang
2021-10-28 16:20:55 +08:00
parent 9b325cd54f
commit 151b88f76f
11 changed files with 89 additions and 86 deletions

View File

@@ -282,6 +282,15 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
}
}
@Override
public void onPause() {
super.onPause();
if (mEnableTriState) {
Log.d(TAG, "Leave with mode: " + getSelectedPreference());
mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference());
}
}
@Override
public void onDestroy() {
super.onDestroy();
@@ -490,6 +499,18 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
}
private int getSelectedPreference() {
if (mRestrictedPreference.isChecked()) {
return BatteryOptimizeUtils.MODE_RESTRICTED;
} else if (mUnrestrictedPreference.isChecked()) {
return BatteryOptimizeUtils.MODE_UNRESTRICTED;
} else if (mOptimizePreference.isChecked()) {
return BatteryOptimizeUtils.MODE_OPTIMIZED;
} else {
return BatteryOptimizeUtils.MODE_UNKNOWN;
}
}
private CharSequence getAppActiveTime(Bundle bundle) {
final long foregroundTimeMs = bundle.getLong(EXTRA_FOREGROUND_TIME);
final long backgroundTimeMs = bundle.getLong(EXTRA_BACKGROUND_TIME);