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:
@@ -271,6 +271,7 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
||||
|
||||
initHeader();
|
||||
if (mEnableTriState) {
|
||||
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
|
||||
initPreferenceForTriState(getContext());
|
||||
final String packageName = mBatteryOptimizeUtils.getPackageName();
|
||||
FeatureFactory.getFactory(getContext()).getMetricsFeatureProvider()
|
||||
@@ -287,8 +288,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);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -461,26 +465,6 @@ 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(SelectorWithWidgetPreference preference,
|
||||
@@ -488,6 +472,36 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
||||
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);
|
||||
@@ -499,7 +513,6 @@ public class AdvancedPowerUsageDetail extends DashboardFragment implements
|
||||
|
||||
mBatteryOptimizeUtils = new BatteryOptimizeUtils(
|
||||
getContext(), getArguments().getInt(EXTRA_UID), packageName);
|
||||
mOptimizationMode = mBatteryOptimizeUtils.getAppOptimizationMode();
|
||||
}
|
||||
|
||||
private int getSelectedPreference() {
|
||||
|
@@ -792,14 +792,39 @@ public class AdvancedPowerUsageDetailTest {
|
||||
assertThat(mOptimizePreference.isChecked()).isTrue();
|
||||
assertThat(mRestrictedPreference.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)
|
||||
.action(
|
||||
mContext,
|
||||
SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
|
||||
(Pair<Integer, Object>[]) new Pair[] {
|
||||
new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
|
||||
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, "app label")
|
||||
});
|
||||
.action(
|
||||
mContext,
|
||||
SettingsEnums.ACTION_APP_BATTERY_USAGE_OPTIMIZED,
|
||||
(Pair<Integer, Object>[]) new Pair[] {
|
||||
new Pair(ConvertUtils.METRIC_KEY_PACKAGE, null),
|
||||
new Pair(ConvertUtils.METRIC_KEY_BATTERY_USAGE, "app label")
|
||||
});
|
||||
}
|
||||
|
||||
@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
|
||||
|
Reference in New Issue
Block a user