Merge "Fix PrivateVolumeSettings be launched repeatedly" am: 31a7b2a4c7
am: 5973d32c77
Change-Id: I66747a250e7461cfc3fe04fb8228bb7fe7541b5a
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index 0107555..db68bac 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -93,6 +93,8 @@
private StorageSummaryPreference mInternalSummary;
private static long sTotalInternalStorage;
+ private boolean mHasLaunchedPrivateVolumeSettings = false;
+
@Override
public int getMetricsCategory() {
return MetricsEvent.DEVICEINFO_STORAGE;
@@ -110,7 +112,6 @@
final Context context = getActivity();
mStorageManager = context.getSystemService(StorageManager.class);
- mStorageManager.registerListener(mStorageListener);
if (sTotalInternalStorage <= 0) {
sTotalInternalStorage = mStorageManager.getPrimaryStorageSize();
@@ -231,14 +232,17 @@
if (mInternalCategory.getPreferenceCount() == 2
&& mExternalCategory.getPreferenceCount() == 0) {
// Only showing primary internal storage, so just shortcut
- final Bundle args = new Bundle();
- args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
- Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
- StorageDashboardFragment.class.getName(), args, null,
- R.string.storage_settings, null, false, getMetricsCategory());
- intent.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true);
- getActivity().startActivity(intent);
- finish();
+ if (!mHasLaunchedPrivateVolumeSettings) {
+ mHasLaunchedPrivateVolumeSettings = true;
+ final Bundle args = new Bundle();
+ args.putString(VolumeInfo.EXTRA_VOLUME_ID, VolumeInfo.ID_PRIVATE_INTERNAL);
+ Intent intent = Utils.onBuildStartFragmentIntent(getActivity(),
+ StorageDashboardFragment.class.getName(), args, null,
+ R.string.storage_settings, null, false, getMetricsCategory());
+ intent.putExtra(SettingsDrawerActivity.EXTRA_SHOW_MENU, true);
+ getActivity().startActivity(intent);
+ finish();
+ }
}
}