Merge "Adjust optimize page logging timing" into sc-v2-dev am: b4e13a7af0 am: 3be2b733f2

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/16170324

Change-Id: I66ecbb8213e9fb6301d75cacb493813180df1e18
This commit is contained in:
TreeHugger Robot
2021-11-03 05:41:03 +00:00
committed by Automerger Merge Worker
2 changed files with 68 additions and 30 deletions

View File

@@ -271,6 +271,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
initHeader(); initHeader();
if (mEnableTriState) { if (mEnableTriState) {
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
initPreferenceForTriState(getContext()); initPreferenceForTriState(getContext());
final String packageName = mBatteryOptimizeUtils.getPackageName(); final String packageName = mBatteryOptimizeUtils.getPackageName();
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider() FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
@@ -287,8 +288,11 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
public void onPause() { public void onPause() {
super.onPause(); super.onPause();
if (mEnableTriState) { if (mEnableTriState) {
Log.d(TAG, "Leave with mode: " + getSelectedPreference()); final int selectedPreference = getSelectedPreference();
mBatteryOptimizeUtils.setAppUsageState(getSelectedPreference());
logMetricCategory(selectedPreference);
mBatteryOptimizeUtils.setAppUsageState(selectedPreference);
Log.d(TAG, "Leave with mode: " + selectedPreference);
} }
} }
@@ -461,16 +465,31 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
updatePreferenceState(mUnrestrictedPreference, selectedKey); updatePreferenceState(mUnrestrictedPreference, selectedKey);
updatePreferenceState(mOptimizePreference, selectedKey); updatePreferenceState(mOptimizePreference, selectedKey);
updatePreferenceState(mRestrictedPreference, 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;
} }
private void updatePreferenceState(SelectorWithWidgetPreference 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) { if (metricCategory != 0) {
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider() FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
.action( .action(
@@ -483,11 +502,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
} }
} }
private void updatePreferenceState(SelectorWithWidgetPreference preference,
String selectedKey) {
preference.setChecked(selectedKey.equals(preference.getKey()));
}
private void onCreateForTriState(String packageName) { private void onCreateForTriState(String packageName) {
mUnrestrictedPreference = findPreference(KEY_PREF_UNRESTRICTED); mUnrestrictedPreference = findPreference(KEY_PREF_UNRESTRICTED);
mOptimizePreference = findPreference(KEY_PREF_OPTIMIZED); mOptimizePreference = findPreference(KEY_PREF_OPTIMIZED);
@@ -499,7 +513,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
mBatteryOptimizeUtils = new BatteryOptimizeUtils( mBatteryOptimizeUtils = new BatteryOptimizeUtils(
getContext(), getArguments().getInt(EXTRA_UID), packageName); getContext(), getArguments().getInt(EXTRA_UID), packageName);
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
} }
private int getSelectedPreference() { private int getSelectedPreference() {

View File

@@ -792,6 +792,18 @@ public class AdvancedPowerUsageDetailTest {
assertThat(mOptimizePreference.isChecked()).isTrue(); assertThat(mOptimizePreference.isChecked()).isTrue();
assertThat(mRestrictedPreference.isChecked()).isFalse(); assertThat(mRestrictedPreference.isChecked()).isFalse();
assertThat(mUnrestrictedPreference.isChecked()).isFalse(); assertThat(mUnrestrictedPreference.isChecked()).isFalse();
}
@Test
public void testOnPause_optimizationModeChanged_logPreference() {
final int mode = BatteryOptimizeUtils.MODE_RESTRICTED;
mFragment.mOptimizationMode = mode;
when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
mFragment.onRadioButtonClicked(mOptimizePreference);
mFragment.onPause();
verify(mMetricsFeatureProvider) verify(mMetricsFeatureProvider)
.action( .action(
mContext, mContext,
@@ -802,6 +814,19 @@ public class AdvancedPowerUsageDetailTest {
}); });
} }
@Test
public void testOnPause_optimizationModeIsNotChanged_notInvokeLogging() {
final int mode = BatteryOptimizeUtils.MODE_OPTIMIZED;
mFragment.mOptimizationMode = mode;
when(mBatteryOptimizeUtils.getAppOptimizationMode()).thenReturn(mode);
mOptimizePreference.setKey(KEY_PREF_OPTIMIZED);
mFragment.onRadioButtonClicked(mOptimizePreference);
mFragment.onPause();
verifyZeroInteractions(mMetricsFeatureProvider);
}
@Test @Test
public void notifyBackupManager_optimizationModeIsNotChanged_notInvokeDataChanged() { public void notifyBackupManager_optimizationModeIsNotChanged_notInvokeDataChanged() {
final int mode = BatteryOptimizeUtils.MODE_RESTRICTED; final int mode = BatteryOptimizeUtils.MODE_RESTRICTED;