Merge "Make migrate option menu invisible when src volume is not mounted"

This commit is contained in:
Fan Zhang
2018-12-04 17:33:33 +00:00
committed by Gerrit Code Review
3 changed files with 17 additions and 2 deletions

View File

@@ -68,7 +68,8 @@ public class PrivateVolumeOptionMenuController implements LifecycleObserver, OnC
if (migrate != null) { if (migrate != null) {
migrate.setVisible((privateVol != null) migrate.setVisible((privateVol != null)
&& (privateVol.getType() == VolumeInfo.TYPE_PRIVATE) && (privateVol.getType() == VolumeInfo.TYPE_PRIVATE)
&& !Objects.equals(mVolumeInfo, privateVol)); && !Objects.equals(mVolumeInfo, privateVol)
&& privateVol.isMountedWritable());
} }
} }

View File

@@ -415,7 +415,8 @@ public class PrivateVolumeSettings extends SettingsPreferenceFragment {
.getPrimaryStorageCurrentVolume(); .getPrimaryStorageCurrentVolume();
migrate.setVisible((privateVol != null) migrate.setVisible((privateVol != null)
&& (privateVol.getType() == VolumeInfo.TYPE_PRIVATE) && (privateVol.getType() == VolumeInfo.TYPE_PRIVATE)
&& !Objects.equals(mVolume, privateVol)); && !Objects.equals(mVolume, privateVol)
&& privateVol.isMountedWritable());
} }
@Override @Override

View File

@@ -62,6 +62,7 @@ public class PrivateVolumeOptionMenuControllerTest {
MockitoAnnotations.initMocks(this); MockitoAnnotations.initMocks(this);
when(mVolumeInfo.getType()).thenReturn(VolumeInfo.TYPE_PRIVATE); when(mVolumeInfo.getType()).thenReturn(VolumeInfo.TYPE_PRIVATE);
when(mVolumeInfo.isMountedWritable()).thenReturn(true);
when(mPrimaryInfo.getType()).thenReturn(VolumeInfo.TYPE_PRIVATE); when(mPrimaryInfo.getType()).thenReturn(VolumeInfo.TYPE_PRIVATE);
when(mMenu.findItem(anyInt())).thenReturn(mMigrateMenuItem); when(mMenu.findItem(anyInt())).thenReturn(mMigrateMenuItem);
when(mMigrateMenuItem.getItemId()).thenReturn(100); when(mMigrateMenuItem.getItemId()).thenReturn(100);
@@ -80,6 +81,7 @@ public class PrivateVolumeOptionMenuControllerTest {
@Test @Test
public void testMigrateDataIsNotVisibleNormally() { public void testMigrateDataIsNotVisibleNormally() {
when(mPm.getPrimaryStorageCurrentVolume()).thenReturn(mPrimaryInfo); when(mPm.getPrimaryStorageCurrentVolume()).thenReturn(mPrimaryInfo);
when(mPrimaryInfo.isMountedWritable()).thenReturn(true);
mController.onCreateOptionsMenu(mMenu, mMenuInflater); mController.onCreateOptionsMenu(mMenu, mMenuInflater);
mController.onPrepareOptionsMenu(mMenu); mController.onPrepareOptionsMenu(mMenu);
@@ -97,6 +99,17 @@ public class PrivateVolumeOptionMenuControllerTest {
verify(mMigrateMenuItem).setVisible(true); verify(mMigrateMenuItem).setVisible(true);
} }
@Test
public void testMigrateDataIsNotVisibleWhenExternalVolumeIsNotMounted() {
when(mPm.getPrimaryStorageCurrentVolume()).thenReturn(mVolumeInfo);
when(mVolumeInfo.isMountedWritable()).thenReturn(false);
mController.onCreateOptionsMenu(mMenu, mMenuInflater);
mController.onPrepareOptionsMenu(mMenu);
verify(mMigrateMenuItem).setVisible(false);
}
@Test @Test
public void testMigrateDataGoesToMigrateWizard() { public void testMigrateDataGoesToMigrateWizard() {
when(mPm.getPrimaryStorageCurrentVolume()).thenReturn(mVolumeInfo); when(mPm.getPrimaryStorageCurrentVolume()).thenReturn(mVolumeInfo);