Merge "Don't overly hide the Files preference." into oc-dev
This commit is contained in:
@@ -81,6 +81,7 @@ public class StorageItemPreferenceController extends PreferenceController {
|
|||||||
private long mUsedBytes;
|
private long mUsedBytes;
|
||||||
private long mTotalSize;
|
private long mTotalSize;
|
||||||
|
|
||||||
|
private PreferenceScreen mScreen;
|
||||||
private StorageItemPreference mPhotoPreference;
|
private StorageItemPreference mPhotoPreference;
|
||||||
private StorageItemPreference mAudioPreference;
|
private StorageItemPreference mAudioPreference;
|
||||||
private StorageItemPreference mGamePreference;
|
private StorageItemPreference mGamePreference;
|
||||||
@@ -169,6 +170,22 @@ public class StorageItemPreferenceController extends PreferenceController {
|
|||||||
*/
|
*/
|
||||||
public void setVolume(VolumeInfo volume) {
|
public void setVolume(VolumeInfo volume) {
|
||||||
mVolume = 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
|
@Override
|
||||||
public void displayPreference(PreferenceScreen screen) {
|
public void displayPreference(PreferenceScreen screen) {
|
||||||
|
mScreen = screen;
|
||||||
mPhotoPreference = (StorageItemPreference) screen.findPreference(PHOTO_KEY);
|
mPhotoPreference = (StorageItemPreference) screen.findPreference(PHOTO_KEY);
|
||||||
mAudioPreference = (StorageItemPreference) screen.findPreference(AUDIO_KEY);
|
mAudioPreference = (StorageItemPreference) screen.findPreference(AUDIO_KEY);
|
||||||
mGamePreference = (StorageItemPreference) screen.findPreference(GAME_KEY);
|
mGamePreference = (StorageItemPreference) screen.findPreference(GAME_KEY);
|
||||||
@@ -215,14 +233,7 @@ public class StorageItemPreferenceController extends PreferenceController {
|
|||||||
mSystemPreference = (StorageItemPreference) screen.findPreference(SYSTEM_KEY);
|
mSystemPreference = (StorageItemPreference) screen.findPreference(SYSTEM_KEY);
|
||||||
mFilePreference = (StorageItemPreference) screen.findPreference(FILES_KEY);
|
mFilePreference = (StorageItemPreference) screen.findPreference(FILES_KEY);
|
||||||
|
|
||||||
final VolumeInfo sharedVolume = mSvp.findEmulatedForPrivate(mVolume);
|
setFilesPreferenceVisibility();
|
||||||
// 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);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void onLoadFinished(StorageAsyncLoader.AppsStorageResult data) {
|
public void onLoadFinished(StorageAsyncLoader.AppsStorageResult data) {
|
||||||
|
@@ -391,4 +391,69 @@ public class StorageItemPreferenceControllerTest {
|
|||||||
|
|
||||||
verify(screen).removePreference(files);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
Reference in New Issue
Block a user