Merge "Fix NPE at Storage Settings configuration change" into sc-dev
diff --git a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
index ce8f219..9ae835e 100644
--- a/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
+++ b/src/com/android/settings/deviceinfo/StorageCategoryFragment.java
@@ -73,6 +73,7 @@
         LoaderManager.LoaderCallbacks<SparseArray<StorageAsyncLoader.StorageResult>>,
         Preference.OnPreferenceClickListener {
     private static final String TAG = "StorageCategoryFrag";
+    private static final String SELECTED_STORAGE_ENTRY_KEY = "selected_storage_entry_key";
     private static final String SUMMARY_PREF_KEY = "storage_summary";
     private static final String FREE_UP_SPACE_PREF_KEY = "free_up_space";
     private static final int STORAGE_JOB_ID = 0;
@@ -127,6 +128,10 @@
 
         mStorageManager = getActivity().getSystemService(StorageManager.class);
 
+        if (icicle != null) {
+            mSelectedStorageEntry = icicle.getParcelable(SELECTED_STORAGE_ENTRY_KEY);
+        }
+
         initializePreference();
     }
 
@@ -167,6 +172,12 @@
         }
     }
 
+    @Override
+    public void onSaveInstanceState(Bundle outState) {
+        outState.putParcelable(SELECTED_STORAGE_ENTRY_KEY, mSelectedStorageEntry);
+        super.onSaveInstanceState(outState);
+    }
+
     private void onReceivedSizes() {
         boolean stopLoading = false;
         if (mStorageInfo != null) {