From 87212cf504da083e76ecca6a2d6eef3037efd3c2 Mon Sep 17 00:00:00 2001 From: Arc Wang Date: Tue, 10 May 2022 16:04:56 +0800 Subject: [PATCH] Storage Settings crash Storage settings will crash because there is no emulated primary volume found after private internal volume is Ejected. Below change in Settings impacted Storage dashboard screen behavior as it Query storage size instead of calculate size of installed APP. Due to this design change now MediaProvider is queried for file sizes, but due to unmounting of primary emulated volume it crashes. We should not show Eject option for private Internal volume. Author: ramneek.kalra@mediatek.com Bug: 230689829 Test: atest com.android.settings.deviceinfo.VolumeOptionMenuControllerTest manual 1. Insert sdcard or generate virtual disk using command : adb shell "sm set-virtual-disk true" 2. Go to Settings -> Storage -> Sdcard/virtual disk -> Format as Internal -> do migrate data 3. After above process completed, go to Settings-> Storage -> sd card/virtual disk and chose Eject menu option. 4. Eject page gets open, Click on Eject button. Change-Id: I98d09f75ee7c2cd5aae10808bd0e0cdf10da7582 --- .../android/settings/deviceinfo/VolumeOptionMenuController.java | 1 - .../settings/deviceinfo/VolumeOptionMenuControllerTest.java | 1 - 2 files changed, 2 deletions(-) diff --git a/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java b/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java index d4f93fa83cd..42a3a16da3e 100644 --- a/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java +++ b/src/com/android/settings/deviceinfo/VolumeOptionMenuController.java @@ -132,7 +132,6 @@ public class VolumeOptionMenuController implements LifecycleObserver, OnCreateOp if (mStorageEntry.isPrivate()) { if (!mStorageEntry.isDefaultInternalStorage()) { mRename.setVisible(true); - mUnmount.setVisible(true); mFormatAsPortable.setVisible(true); } diff --git a/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java b/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java index 314f8c22138..8bd9b018d18 100644 --- a/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java +++ b/tests/unit/src/com/android/settings/deviceinfo/VolumeOptionMenuControllerTest.java @@ -142,7 +142,6 @@ public class VolumeOptionMenuControllerTest { mController.onPrepareOptionsMenu(mMenu); verify(mController.mRename, atLeastOnce()).setVisible(true); - verify(mController.mUnmount, atLeastOnce()).setVisible(true); verify(mController.mFormatAsPortable, atLeastOnce()).setVisible(true); verify(mController.mMount, never()).setVisible(true); verify(mController.mFormat, never()).setVisible(true);