Change workflow so update() is not called when the device changes orientation.

BUG: 24508289

Change-Id: I7929aac953741a19f5bc4ffbbb9929a9a2f6104e
This commit is contained in:
Felipe Leme
2015-11-03 15:58:46 -08:00
parent 0cc7fbdb56
commit 157ec2f09a

View File

@@ -117,11 +117,17 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
private Preference mExplore; private Preference mExplore;
private boolean mDetached;
private boolean isVolumeValid() { private boolean isVolumeValid() {
return (mVolume != null) && (mVolume.getType() == VolumeInfo.TYPE_PRIVATE) return (mVolume != null) && (mVolume.getType() == VolumeInfo.TYPE_PRIVATE)
&& mVolume.isMountedReadable(); && mVolume.isMountedReadable();
} }
public PrivateVolumeSettings() {
setRetainInstance(true);
}
@Override @Override
protected int getMetricsCategory() { protected int getMetricsCategory() {
return MetricsLogger.DEVICEINFO_STORAGE; return MetricsLogger.DEVICEINFO_STORAGE;
@@ -158,10 +164,12 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
mExplore = buildAction(R.string.storage_menu_explore); mExplore = buildAction(R.string.storage_menu_explore);
mDetached = false;
setHasOptionsMenu(true); setHasOptionsMenu(true);
} }
public void update() { private void update() {
if (!isVolumeValid()) { if (!isVolumeValid()) {
getActivity().finish(); getActivity().finish();
return; return;
@@ -304,7 +312,10 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
} }
mStorageManager.registerListener(mStorageListener); mStorageManager.registerListener(mStorageListener);
update();
if (!mDetached) {
update();
}
} }
@Override @Override
@@ -313,12 +324,19 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
mStorageManager.unregisterListener(mStorageListener); mStorageManager.unregisterListener(mStorageListener);
} }
@Override
public void onDetach() {
super.onDetach();
mDetached = true;
}
@Override @Override
public void onDestroy() { public void onDestroy() {
super.onDestroy(); super.onDestroy();
if (mMeasure != null) { if (mMeasure != null) {
mMeasure.onDestroy(); mMeasure.onDestroy();
} }
mDetached = false;
} }
@Override @Override