Don't update the header when toggle menu

If we only toggle the app type in battery settings, don't update
the header. Then it won't have flicker in battery header.

Bug: 64065456
Test: RunSettingsRoboTest
Change-Id: If1cfa745f723f808ad9c5fd921be797acd3199ba
This commit is contained in:
jackqdyulei
2017-07-26 13:50:43 -07:00
parent 402abcc9df
commit bc86e4747f
2 changed files with 21 additions and 3 deletions

View File

@@ -136,7 +136,8 @@ public class PowerUsageSummary extends PowerUsageBase implements
SparseArray<List<Anomaly>> mAnomalySparseArray; SparseArray<List<Anomaly>> mAnomalySparseArray;
@VisibleForTesting @VisibleForTesting
PreferenceGroup mAppListGroup; PreferenceGroup mAppListGroup;
private BatteryHeaderPreferenceController mBatteryHeaderPreferenceController; @VisibleForTesting
BatteryHeaderPreferenceController mBatteryHeaderPreferenceController;
private AnomalySummaryPreferenceController mAnomalySummaryPreferenceController; private AnomalySummaryPreferenceController mAnomalySummaryPreferenceController;
private int mStatsType = BatteryStats.STATS_SINCE_CHARGED; private int mStatsType = BatteryStats.STATS_SINCE_CHARGED;
@@ -381,7 +382,7 @@ public class PowerUsageSummary extends PowerUsageBase implements
item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps); item.setTitle(mShowAllApps ? R.string.hide_extra_apps : R.string.show_all_apps);
metricsFeatureProvider.action(context, metricsFeatureProvider.action(context,
MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, mShowAllApps); MetricsEvent.ACTION_SETTINGS_MENU_BATTERY_APPS_TOGGLE, mShowAllApps);
restartBatteryStatsLoader(); restartBatteryStatsLoader(false /* clearHeader */);
return true; return true;
default: default:
return super.onOptionsItemSelected(item); return super.onOptionsItemSelected(item);
@@ -861,8 +862,14 @@ public class PowerUsageSummary extends PowerUsageBase implements
@Override @Override
protected void restartBatteryStatsLoader() { protected void restartBatteryStatsLoader() {
restartBatteryStatsLoader(true /* clearHeader */);
}
void restartBatteryStatsLoader(boolean clearHeader) {
super.restartBatteryStatsLoader(); super.restartBatteryStatsLoader();
mBatteryHeaderPreferenceController.quickUpdateHeaderPreference(); if (clearHeader) {
mBatteryHeaderPreferenceController.quickUpdateHeaderPreference();
}
} }
private static class SummaryProvider implements SummaryLoader.SummaryProvider { private static class SummaryProvider implements SummaryLoader.SummaryProvider {

View File

@@ -157,6 +157,8 @@ public class PowerUsageSummaryTest {
private PreferenceGroup mAppListGroup; private PreferenceGroup mAppListGroup;
@Mock @Mock
private AnomalyDetectionPolicy mAnomalyDetectionPolicy; private AnomalyDetectionPolicy mAnomalyDetectionPolicy;
@Mock
private BatteryHeaderPreferenceController mBatteryHeaderPreferenceController;
private List<BatterySipper> mUsageList; private List<BatterySipper> mUsageList;
private Context mRealContext; private Context mRealContext;
@@ -566,6 +568,15 @@ public class PowerUsageSummaryTest {
verify(mSummary1, times(2)).setOnLongClickListener(any(View.OnLongClickListener.class)); verify(mSummary1, times(2)).setOnLongClickListener(any(View.OnLongClickListener.class));
} }
@Test
public void testRestartBatteryStatsLoader_notClearHeader_quickUpdateNotInvoked() {
mFragment.mBatteryHeaderPreferenceController = mBatteryHeaderPreferenceController;
mFragment.restartBatteryStatsLoader(false /* clearHeader */);
verify(mBatteryHeaderPreferenceController, never()).quickUpdateHeaderPreference();
}
public static class TestFragment extends PowerUsageSummary { public static class TestFragment extends PowerUsageSummary {
private Context mContext; private Context mContext;