Merge "Allow StubVolume to be browseable in Settings"
am: 8f516adef7
Change-Id: Idddb5b90367bbb5c1f1a5146fdd7b1fc01cf0cf9
diff --git a/src/com/android/settings/deviceinfo/StorageSettings.java b/src/com/android/settings/deviceinfo/StorageSettings.java
index 9e4a1e2..df4a218 100644
--- a/src/com/android/settings/deviceinfo/StorageSettings.java
+++ b/src/com/android/settings/deviceinfo/StorageSettings.java
@@ -144,6 +144,7 @@
switch (vol.getType()) {
case VolumeInfo.TYPE_PRIVATE:
case VolumeInfo.TYPE_PUBLIC:
+ case VolumeInfo.TYPE_STUB:
return true;
default:
return false;
@@ -176,7 +177,8 @@
final int color = COLOR_PRIVATE[privateCount++ % COLOR_PRIVATE.length];
mInternalCategory.addPreference(
new StorageVolumePreference(context, vol, color, volumeTotalBytes));
- } else if (vol.getType() == VolumeInfo.TYPE_PUBLIC) {
+ } else if (vol.getType() == VolumeInfo.TYPE_PUBLIC
+ || vol.getType() == VolumeInfo.TYPE_STUB) {
mExternalCategory.addPreference(
new StorageVolumePreference(context, vol, COLOR_PUBLIC, 0));
}
@@ -304,6 +306,8 @@
} else if (vol.getType() == VolumeInfo.TYPE_PUBLIC) {
return handlePublicVolumeClick(getContext(), vol);
+ } else if (vol.getType() == VolumeInfo.TYPE_STUB) {
+ return handleStubVolumeClick(getContext(), vol);
}
} else if (key.startsWith("disk:")) {
@@ -328,6 +332,16 @@
}
@VisibleForTesting
+ static boolean handleStubVolumeClick(Context context, VolumeInfo vol) {
+ final Intent intent = vol.buildBrowseIntent();
+ if (vol.isMountedReadable() && intent != null) {
+ context.startActivity(intent);
+ return true;
+ }
+ return false;
+ }
+
+ @VisibleForTesting
static boolean handlePublicVolumeClick(Context context, VolumeInfo vol) {
final Intent intent = vol.buildBrowseIntent();
if (vol.isMountedReadable() && intent != null) {
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/StorageSettingsTest.java b/tests/robotests/src/com/android/settings/deviceinfo/StorageSettingsTest.java
index 943bd9d..2142e9a 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/StorageSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/StorageSettingsTest.java
@@ -102,4 +102,16 @@
verify(mActivity, never()).startActivity(null);
verify(mActivity).startActivity(any(Intent.class));
}
+
+ @Test
+ public void handleStubVolumeClick_startsANonNullActivityWhenVolumeHasNoBrowse() {
+ VolumeInfo volumeInfo = mock(VolumeInfo.class, RETURNS_DEEP_STUBS);
+ when(volumeInfo.isMountedReadable()).thenReturn(true);
+
+ StorageSettings.handleStubVolumeClick(mActivity, volumeInfo);
+
+ verify(mActivity, never()).startActivity(null);
+ verify(mActivity).startActivity(any(Intent.class));
+ }
+
}