diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
index 9ddf7b7..b5d7ddf 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
@@ -484,28 +484,13 @@
 
             } break;
             case R.string.storage_detail_images: {
-                intent = new Intent(Intent.ACTION_VIEW);
-                intent.setDataAndType(
-                        DocumentsContract.buildRootUri(AUTHORITY_MEDIA, "images_root"),
-                        DocumentsContract.Root.MIME_TYPE_ITEM);
-                intent.addCategory(Intent.CATEGORY_DEFAULT);
-
+                intent = getIntentForStorage(AUTHORITY_MEDIA, "images_root");
             } break;
             case R.string.storage_detail_videos: {
-                intent = new Intent(Intent.ACTION_VIEW);
-                intent.setDataAndType(
-                        DocumentsContract.buildRootUri(AUTHORITY_MEDIA, "videos_root"),
-                        DocumentsContract.Root.MIME_TYPE_ITEM);
-                intent.addCategory(Intent.CATEGORY_DEFAULT);
-
+                intent = getIntentForStorage(AUTHORITY_MEDIA, "videos_root");
             } break;
             case R.string.storage_detail_audio: {
-                intent = new Intent(DocumentsContract.Root.MIME_TYPE_ITEM);
-                intent.setDataAndType(
-                        DocumentsContract.buildRootUri(AUTHORITY_MEDIA, "audio_root"),
-                        DocumentsContract.Root.MIME_TYPE_ITEM);
-                intent.addCategory(Intent.CATEGORY_DEFAULT);
-
+                intent = getIntentForStorage(AUTHORITY_MEDIA, "audio_root");
             } break;
             case R.string.storage_detail_system: {
                 SystemInfoFragment.show(this);
@@ -546,6 +531,16 @@
         return super.onPreferenceTreeClick(pref);
     }
 
+    private Intent getIntentForStorage(String authority, String root) {
+        Intent intent = new Intent(Intent.ACTION_VIEW);
+        intent.setDataAndType(
+                DocumentsContract.buildRootUri(authority, root),
+                DocumentsContract.Root.MIME_TYPE_ITEM);
+        intent.addCategory(Intent.CATEGORY_DEFAULT);
+
+        return intent;
+    }
+
     private final MeasurementReceiver mReceiver = new MeasurementReceiver() {
         @Override
         public void onDetailsChanged(MeasurementDetails details) {
