diff --git a/src/com/android/settings/fuelgauge/PowerUsageSummary.java b/src/com/android/settings/fuelgauge/PowerUsageSummary.java index ccbb509572a..1e4302a35c6 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 345ced1c8e2..d110ef0ea0c 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; @@ -478,6 +481,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;