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) {
migrate.setVisible((privateVol != null)
&& (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();
migrate.setVisible((privateVol != null)
&& (privateVol.getType() == VolumeInfo.TYPE_PRIVATE)
&& !Objects.equals(mVolume, privateVol));
&& !Objects.equals(mVolume, privateVol)
&& privateVol.isMountedWritable());
}
@Override

View File

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