diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java index c81ec53a806..442c8e3be49 100644 --- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java +++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java @@ -118,7 +118,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { private Preference mExplore; - private boolean mDetached; + private boolean mNeedsUpdate; private boolean isVolumeValid() { return (mVolume != null) && (mVolume.getType() == VolumeInfo.TYPE_PRIVATE) @@ -165,18 +165,22 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { mExplore = buildAction(R.string.storage_menu_explore); - mDetached = false; + mNeedsUpdate = true; setHasOptionsMenu(true); } + private void setTitle() { + getActivity().setTitle(mStorageManager.getBestVolumeDescription(mVolume)); + } + private void update() { if (!isVolumeValid()) { getActivity().finish(); return; } - getActivity().setTitle(mStorageManager.getBestVolumeDescription(mVolume)); + setTitle(); // Valid options may have changed getFragmentManager().invalidateOptionsMenu(); @@ -239,6 +243,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { mSummary.setPercent((int) ((usedBytes * 100) / totalBytes)); mMeasure.forceMeasure(); + mNeedsUpdate = false; } private void addPreference(PreferenceGroup group, Preference pref) { @@ -315,8 +320,10 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { mStorageManager.registerListener(mStorageListener); - if (!mDetached) { + if (mNeedsUpdate) { update(); + } else { + setTitle(); } } @@ -326,25 +333,12 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { mStorageManager.unregisterListener(mStorageListener); } - @Override - public void onAttach(Context context) { - super.onAttach(context); - mDetached = false; - } - - @Override - public void onDetach() { - super.onDetach(); - mDetached = true; - } - @Override public void onDestroy() { super.onDestroy(); if (mMeasure != null) { mMeasure.onDestroy(); } - mDetached = false; } @Override