Adjust optimize page logging timing

- Log the optimize mode only when leave this page and mode changed
 - Update mOptimizationMode at onResume to make sure the state is sync
 with framework

Bug: 195306545
Test: make SettingsRoboTests
Change-Id: Iab116220cd7d2b1bdb1c170c4b47016c763bf4fe
This commit is contained in:
Wesley.CW Wang
2021-11-02 17:21:06 +08:00
parent 151b88f76f
commit 7fb4cbf005
2 changed files with 68 additions and 30 deletions

View File

@@ -270,6 +270,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
initHeader();
if (mEnableTriState) {
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
initPreferenceForTriState(getContext());
final String packageName = mBatteryOptimizeUtils.getPackageName();
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
@@ -286,8 +287,11 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
public void onPause() {
super.onPause();
if (mEnableTriState) {
Log.d(TAG, "Leave with mode: " + getSelectedPreference());
mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference());
final int selectedPreference = getSelectedPreference();
logMetricCategory(selectedPreference);
mBatteryOptimizeUtils.setAppUsageState(selectedPreference);
Log.d(TAG, "Leave with mode: " + selectedPreference);
}
}
@@ -459,32 +463,42 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
updatePreferenceState(mUnrestrictedPreference, selectedKey);
updatePreferenceState(mOptimizePreference, selectedKey);
updatePreferenceState(mRestrictedPreference, selectedKey);
// Logs metric.
int metricCategory = 0;
if (selectedKey.equals(mUnrestrictedPreference.getKey())) {
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_UNRESTRICTED;
} else if (selectedKey.equals(mOptimizePreference.getKey())) {
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED;
} else if (selectedKey.equals(mRestrictedPreference.getKey())) {
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_RESTRICTED;
}
if (metricCategory != 0) {
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
.action(
getContext(),
metricCategory,
new Pair(ConvertUtils.METRIC_KEY_PACKAGE,
mBatteryOptimizeUtils.getPackageName()),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE,
getArguments().getString(EXTRA_POWER_USAGE_PERCENT)));
}
}
private void updatePreferenceState(RadioButtonPreference preference, String selectedKey) {
preference.setChecked(selectedKey.equals(preference.getKey()));
}
private void logMetricCategory(int selectedKey) {
if (selectedKey == mOptimizationMode) {
return;
}
int metricCategory = 0;
switch (selectedKey) {
case BatteryOptimizeUtils.MODE_UNRESTRICTED:
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_UNRESTRICTED;
break;
case BatteryOptimizeUtils.MODE_OPTIMIZED:
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED;
break;
case BatteryOptimizeUtils.MODE_RESTRICTED:
metricCategory = SettingsEnums.ACTION_APP_BATTERY_USAGE_RESTRICTED;
break;
}
if (metricCategory != 0) {
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
.action(
getContext(),
metricCategory,
new Pair(ConvertUtils.METRIC_KEY_PACKAGE,
mBatteryOptimizeUtils.getPackageName()),
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE,
getArguments().getString(EXTRA_POWER_USAGE_PERCENT)));
}
}
private void onCreateForTriState(String packageName) {
mUnrestrictedPreference = findPreference(KEY_PREF_UNRESTRICTED);
mOptimizePreference = findPreference(KEY_PREF_OPTIMIZED);
@@ -496,7 +510,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
mBatteryOptimizeUtils = new BatteryOptimizeUtils(
getContext(), getArguments().getInt(EXTRA_UID), packageName);
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
}
private int getSelectedPreference() {