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

Commit 1ec0f84f authored by Daniel Nishi's avatar Daniel Nishi Committed by android-build-merger
Browse files

Merge "Don't overly hide the Files preference." into oc-dev am: 0c58fbd3

am: 169fd469

Change-Id: I5328da37f430703540cb067256984ebafbe4ff59
parents 14d24c99 169fd469
Loading
Loading
Loading
Loading
+19 −8
Original line number Diff line number Diff line
@@ -81,6 +81,7 @@ public class StorageItemPreferenceController extends PreferenceController {
    private long mUsedBytes;
    private long mTotalSize;

    private PreferenceScreen mScreen;
    private StorageItemPreference mPhotoPreference;
    private StorageItemPreference mAudioPreference;
    private StorageItemPreference mGamePreference;
@@ -169,6 +170,22 @@ public class StorageItemPreferenceController extends PreferenceController {
     */
    public void setVolume(VolumeInfo volume) {
        mVolume = volume;
        setFilesPreferenceVisibility();
    }

    private void setFilesPreferenceVisibility() {
        if (mScreen != null) {
            final VolumeInfo sharedVolume = mSvp.findEmulatedForPrivate(mVolume);
            // If we don't have a shared volume for our internal storage (or the shared volume isn't
            // mounted as readable for whatever reason), we should hide the File preference.
            final boolean hideFilePreference =
                    (sharedVolume == null) || !sharedVolume.isMountedReadable();
            if (hideFilePreference) {
                mScreen.removePreference(mFilePreference);
            } else {
                mScreen.addPreference(mFilePreference);
            }
        }
    }

    /**
@@ -207,6 +224,7 @@ public class StorageItemPreferenceController extends PreferenceController {

    @Override
    public void displayPreference(PreferenceScreen screen) {
        mScreen = screen;
        mPhotoPreference = (StorageItemPreference) screen.findPreference(PHOTO_KEY);
        mAudioPreference = (StorageItemPreference) screen.findPreference(AUDIO_KEY);
        mGamePreference = (StorageItemPreference) screen.findPreference(GAME_KEY);
@@ -215,14 +233,7 @@ public class StorageItemPreferenceController extends PreferenceController {
        mSystemPreference = (StorageItemPreference) screen.findPreference(SYSTEM_KEY);
        mFilePreference = (StorageItemPreference) screen.findPreference(FILES_KEY);

        final VolumeInfo sharedVolume = mSvp.findEmulatedForPrivate(mVolume);
        // If we don't have a shared volume for our internal storage (or the shared volume isn't
        // mounted as readable for whatever reason), we should hide the File preference.
        final boolean hideFilePreference =
                (sharedVolume == null) || !sharedVolume.isMountedReadable();
        if (hideFilePreference) {
            screen.removePreference(mFilePreference);
        }
        setFilesPreferenceVisibility();
    }

    public void onLoadFinished(StorageAsyncLoader.AppsStorageResult data) {
+65 −0
Original line number Diff line number Diff line
@@ -391,4 +391,69 @@ public class StorageItemPreferenceControllerTest {

        verify(screen).removePreference(files);
    }

    @Test
    public void displayPreference_updateFilePreferenceToHideAfterSettingVolume() {
        StorageItemPreference audio = new StorageItemPreference(mContext);
        StorageItemPreference image = new StorageItemPreference(mContext);
        StorageItemPreference games = new StorageItemPreference(mContext);
        StorageItemPreference apps = new StorageItemPreference(mContext);
        StorageItemPreference system = new StorageItemPreference(mContext);
        StorageItemPreference files = new StorageItemPreference(mContext);
        PreferenceScreen screen = mock(PreferenceScreen.class);
        when(screen.findPreference(eq(StorageItemPreferenceController.AUDIO_KEY)))
                .thenReturn(audio);
        when(screen.findPreference(eq(StorageItemPreferenceController.PHOTO_KEY)))
                .thenReturn(image);
        when(screen.findPreference(eq(StorageItemPreferenceController.GAME_KEY))).thenReturn(games);
        when(screen.findPreference(eq(StorageItemPreferenceController.OTHER_APPS_KEY)))
                .thenReturn(apps);
        when(screen.findPreference(eq(StorageItemPreferenceController.SYSTEM_KEY)))
                .thenReturn(system);
        when(screen.findPreference(eq(StorageItemPreferenceController.FILES_KEY)))
                .thenReturn(files);

        when(mSvp.findEmulatedForPrivate(any(VolumeInfo.class))).thenReturn(mVolume);
        when(mVolume.isMountedReadable()).thenReturn(true);

        mController.displayPreference(screen);
        when(mSvp.findEmulatedForPrivate(any(VolumeInfo.class))).thenReturn(null);
        mController.setVolume(mVolume);

        verify(screen).removePreference(files);
    }


    @Test
    public void displayPreference_updateFilePreferenceToShowAfterSettingVolume() {
        StorageItemPreference audio = new StorageItemPreference(mContext);
        StorageItemPreference image = new StorageItemPreference(mContext);
        StorageItemPreference games = new StorageItemPreference(mContext);
        StorageItemPreference apps = new StorageItemPreference(mContext);
        StorageItemPreference system = new StorageItemPreference(mContext);
        StorageItemPreference files = new StorageItemPreference(mContext);
        PreferenceScreen screen = mock(PreferenceScreen.class);
        when(screen.findPreference(eq(StorageItemPreferenceController.AUDIO_KEY)))
                .thenReturn(audio);
        when(screen.findPreference(eq(StorageItemPreferenceController.PHOTO_KEY)))
                .thenReturn(image);
        when(screen.findPreference(eq(StorageItemPreferenceController.GAME_KEY))).thenReturn(games);
        when(screen.findPreference(eq(StorageItemPreferenceController.OTHER_APPS_KEY)))
                .thenReturn(apps);
        when(screen.findPreference(eq(StorageItemPreferenceController.SYSTEM_KEY)))
                .thenReturn(system);
        when(screen.findPreference(eq(StorageItemPreferenceController.FILES_KEY)))
                .thenReturn(files);

        // This will hide it initially.
        mController.displayPreference(screen);

        when(mSvp.findEmulatedForPrivate(any(VolumeInfo.class))).thenReturn(mVolume);
        when(mVolume.isMountedReadable()).thenReturn(true);

        // And we bring it back.
        mController.setVolume(mVolume);

        verify(screen).addPreference(files);
    }
}
 No newline at end of file