Merge "Make migrate option menu invisible when src volume is not mounted" am: 6db9f21256 am: b084c60686
am: 4036866211
Change-Id: I25f21e3c176e225db6900d3c93b6a8860e701061
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java b/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java
index ce425c6..00a79a0 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuController.java
@@ -67,7 +67,8 @@
if (migrate != null) {
migrate.setVisible((privateVol != null)
&& (privateVol.getType() == VolumeInfo.TYPE_PRIVATE)
- && !Objects.equals(mVolumeInfo, privateVol));
+ && !Objects.equals(mVolumeInfo, privateVol)
+ && privateVol.isMountedWritable());
}
}
diff --git a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
index 1812974..f516926 100644
--- a/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
+++ b/src/com/android/settings/deviceinfo/PrivateVolumeSettings.java
@@ -416,7 +416,8 @@
.getPrimaryStorageCurrentVolume();
migrate.setVisible((privateVol != null)
&& (privateVol.getType() == VolumeInfo.TYPE_PRIVATE)
- && !Objects.equals(mVolume, privateVol));
+ && !Objects.equals(mVolume, privateVol)
+ && privateVol.isMountedWritable());
}
@Override
diff --git a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
index 983621c..a966417 100644
--- a/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
+++ b/tests/robotests/src/com/android/settings/deviceinfo/PrivateVolumeOptionMenuControllerTest.java
@@ -64,6 +64,7 @@
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);
@@ -82,6 +83,7 @@
@Test
public void testMigrateDataIsNotVisibleNormally() {
when(mPm.getPrimaryStorageCurrentVolume()).thenReturn(mPrimaryInfo);
+ when(mPrimaryInfo.isMountedWritable()).thenReturn(true);
mController.onCreateOptionsMenu(mMenu, mMenuInflater);
mController.onPrepareOptionsMenu(mMenu);
@@ -100,6 +102,17 @@
}
@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);