Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8f516ade authored by Treehugger Robot's avatar Treehugger Robot Committed by Gerrit Code Review
Browse files

Merge "Allow StubVolume to be browseable in Settings"

parents 6bb4b5ca 9deece90
Loading
Loading
Loading
Loading
+15 −1
Original line number Diff line number Diff line
@@ -144,6 +144,7 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
        switch (vol.getType()) {
            case VolumeInfo.TYPE_PRIVATE:
            case VolumeInfo.TYPE_PUBLIC:
            case VolumeInfo.TYPE_STUB:
                return true;
            default:
                return false;
@@ -176,7 +177,8 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
                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 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index

            } 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:")) {
@@ -327,6 +331,16 @@ public class StorageSettings extends SettingsPreferenceFragment implements Index
        return false;
    }

    @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();
+12 −0
Original line number Diff line number Diff line
@@ -102,4 +102,16 @@ public class StorageSettingsTest {
        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));
    }

}