From f9a5c39c4c3bdf42dc89565e53feac018d430953 Mon Sep 17 00:00:00 2001 From: jackqdyulei Date: Thu, 8 Jun 2017 14:26:39 -0700 Subject: [PATCH] Make flag "showAllapps" persistent in PowerUsageSummary This flag is used to decide whether to show all the apps (including system app, service..) in battery settings Handle it in onCreate() and onSaveInstanceState() Bug: 62422948 Test: RunSettingsRoboTests Change-Id: I30c0d6e1e25902f1192fc2564aa09d635b5e0f4f --- .../settings/fuelgauge/PowerUsageSummary.java | 15 +++++++++++++++ .../settings/fuelgauge/PowerUsageSummaryTest.java | 15 +++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index 808a4896c4c..0b52d03d1f6 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageSummary.java +++ b/src/com/android/settings/fuelgauge/PowerUsageSummary.java @@ -85,6 +85,7 @@ public class PowerUsageSummary extends PowerUsageBase implements private static final boolean USE_FAKE_DATA = false; private static final String KEY_APP_LIST = "app_list"; private static final String KEY_BATTERY_HEADER = "battery_header"; + private static final String KEY_SHOW_ALL_APPS = "show_all_apps"; private static final int MAX_ITEMS_TO_LIST = USE_FAKE_DATA ? 30 : 10; private static final int MIN_AVERAGE_POWER_THRESHOLD_MILLI_AMP = 10; @@ -242,6 +243,7 @@ public class PowerUsageSummary extends PowerUsageBase implements mAnomalySparseArray = new SparseArray<>(); restartBatteryInfoLoader(); + restoreSavedInstance(icicle); } @Override @@ -264,6 +266,12 @@ public class PowerUsageSummary extends PowerUsageBase implements } } + @Override + public void onSaveInstanceState(Bundle outState) { + super.onSaveInstanceState(outState); + outState.putBoolean(KEY_SHOW_ALL_APPS, mShowAllApps); + } + @Override public boolean onPreferenceTreeClick(Preference preference) { if (mAnomalySummaryPreferenceController.onPreferenceTreeClick(preference)) { @@ -375,6 +383,13 @@ public class PowerUsageSummary extends PowerUsageBase implements } } + @VisibleForTesting + void restoreSavedInstance(Bundle savedInstance) { + if (savedInstance != null) { + mShowAllApps = savedInstance.getBoolean(KEY_SHOW_ALL_APPS, false); + } + } + private void addNotAvailableMessage() { final String NOT_AVAILABLE = "not_available"; Preference notAvailable = getCachedPreference(NOT_AVAILABLE); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java index daee1822dfd..c1c5cd42238 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/PowerUsageSummaryTest.java @@ -25,6 +25,7 @@ import android.content.Intent; import android.os.Bundle; import android.content.ContentResolver; import android.os.PowerManager; +import android.support.v7.preference.PreferenceScreen; import android.text.TextUtils; import android.text.format.DateUtils; import android.util.SparseArray; @@ -145,6 +146,8 @@ public class PowerUsageSummaryTest { private LoaderManager mLoaderManager; @Mock private ContentResolver mContentResolver; + @Mock + private PreferenceScreen mPreferenceScreen; private List mUsageList; private Context mRealContext; @@ -466,6 +469,18 @@ public class PowerUsageSummaryTest { assertThat(summary1.getText().toString().contains(OLD_EST_SUFFIX)); } + @Test + public void testSaveInstanceState_showAllAppsRestored() { + Bundle bundle = new Bundle(); + mFragment.mShowAllApps = true; + doReturn(mPreferenceScreen).when(mFragment).getPreferenceScreen(); + + mFragment.onSaveInstanceState(bundle); + mFragment.restoreSavedInstance(bundle); + + assertThat(mFragment.mShowAllApps).isTrue(); + } + public static class TestFragment extends PowerUsageSummary { private Context mContext;