diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java index 66026ebf250..c9a1fb70a47 100644 --- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java +++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java @@ -117,7 +117,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) @@ -164,18 +164,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(); @@ -238,6 +242,7 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { mSummary.setPercent((int) ((usedBytes * 100) / totalBytes)); mMeasure.forceMeasure(); + mNeedsUpdate = false; } private void addPreference(PreferenceGroup group, Preference pref) { @@ -314,8 +319,10 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { mStorageManager.registerListener(mStorageListener); - if (!mDetached) { + if (mNeedsUpdate) { update(); + } else { + setTitle(); } } @@ -325,25 +332,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