From e79ff145f3da966262d050898125c51f4bdc75e4 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 16 Jun 2015 16:46:03 -0700 Subject: [PATCH] Gracefully finish when missing volume. Bug: 21403958 Change-Id: Icb78bb633842571c4df696c9db72a5b97ece0655 --- .../android/settings/deviceinfo/PrivateVolumeSettings.java | 7 ++++++- .../android/settings/deviceinfo/PublicVolumeSettings.java | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java index 799121b1584..b7a42c3f290 100644 --- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java +++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java @@ -127,7 +127,12 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment { mVolumeId = getArguments().getString(VolumeInfo.EXTRA_VOLUME_ID); mVolume = mStorageManager.findVolumeById(mVolumeId); - Preconditions.checkNotNull(mVolume); + if (mVolume == null) { + Log.d(TAG, "Leaving details fragment due to missing volume"); + finish(); + return; + } + Preconditions.checkState(mVolume.getType() == VolumeInfo.TYPE_PRIVATE); addPreferencesFromResource(R.xml.device_info_storage_volume); diff --git a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java index 08117baee57..8e912eb67ed 100644 --- a/src/com/android/settings/deviceinfo/PublicVolumeSettings.java +++ b/src/com/android/settings/deviceinfo/PublicVolumeSettings.java @@ -90,7 +90,12 @@ public class PublicVolumeSettings extends SettingsPreferenceFragment { mVolume = mStorageManager.findVolumeById(volId); } - Preconditions.checkNotNull(mVolume); + if (mVolume == null) { + Log.d(TAG, "Leaving details fragment due to missing volume"); + finish(); + return; + } + Preconditions.checkState(mVolume.getType() == VolumeInfo.TYPE_PUBLIC); mDisk = mStorageManager.findDiskById(mVolume.getDiskId());