Merge "Show USB flash drive in storage spinner when it's unmounted" into tm-dev am: e6389f63c2

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/18234986

Change-Id: I62f078bf87b5b8444b298839874a279bcee072c6
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Arc Wang
2022-05-13 09:40:11 +00:00
committed by Automerger Merge Worker
3 changed files with 44 additions and 30 deletions

View File

@@ -84,10 +84,19 @@ public class ProfileSelectStorageFragment extends ProfileSelectFragment {
}
final StorageEntry changedStorageEntry = new StorageEntry(getContext(), volumeInfo);
switch (volumeInfo.getState()) {
final int volumeState = volumeInfo.getState();
switch (volumeState) {
case VolumeInfo.STATE_REMOVED:
case VolumeInfo.STATE_BAD_REMOVAL:
// Remove removed storage from list and don't show it on spinner.
if (!mStorageEntries.remove(changedStorageEntry)) {
break;
}
case VolumeInfo.STATE_MOUNTED:
case VolumeInfo.STATE_MOUNTED_READ_ONLY:
case VolumeInfo.STATE_UNMOUNTABLE:
case VolumeInfo.STATE_UNMOUNTED:
case VolumeInfo.STATE_EJECTING:
// Add mounted or unmountable storage in the list and show it on spinner.
// Unmountable storages are the storages which has a problem format and android
// is not able to mount it automatically.
@@ -95,25 +104,15 @@ public class ProfileSelectStorageFragment extends ProfileSelectFragment {
mStorageEntries.removeIf(storageEntry -> {
return storageEntry.equals(changedStorageEntry);
});
mStorageEntries.add(changedStorageEntry);
if (volumeState != VolumeInfo.STATE_REMOVED
&& volumeState != VolumeInfo.STATE_BAD_REMOVAL) {
mStorageEntries.add(changedStorageEntry);
}
if (changedStorageEntry.equals(mSelectedStorageEntry)) {
mSelectedStorageEntry = changedStorageEntry;
}
refreshUi();
break;
case VolumeInfo.STATE_REMOVED:
case VolumeInfo.STATE_UNMOUNTED:
case VolumeInfo.STATE_BAD_REMOVAL:
case VolumeInfo.STATE_EJECTING:
// Remove removed storage from list and don't show it on spinner.
if (mStorageEntries.remove(changedStorageEntry)) {
if (changedStorageEntry.equals(mSelectedStorageEntry)) {
mSelectedStorageEntry =
StorageEntry.getDefaultInternalStorageEntry(getContext());
}
refreshUi();
}
break;
default:
// Do nothing.
}

View File

@@ -115,10 +115,19 @@ public class StorageDashboardFragment extends DashboardFragment
}
final StorageEntry changedStorageEntry = new StorageEntry(getContext(), volumeInfo);
switch (volumeInfo.getState()) {
final int volumeState = volumeInfo.getState();
switch (volumeState) {
case VolumeInfo.STATE_REMOVED:
case VolumeInfo.STATE_BAD_REMOVAL:
// Remove removed storage from list and don't show it on spinner.
if (!mStorageEntries.remove(changedStorageEntry)) {
break;
}
case VolumeInfo.STATE_MOUNTED:
case VolumeInfo.STATE_MOUNTED_READ_ONLY:
case VolumeInfo.STATE_UNMOUNTABLE:
case VolumeInfo.STATE_UNMOUNTED:
case VolumeInfo.STATE_EJECTING:
// Add mounted or unmountable storage in the list and show it on spinner.
// Unmountable storages are the storages which has a problem format and android
// is not able to mount it automatically.
@@ -126,25 +135,15 @@ public class StorageDashboardFragment extends DashboardFragment
mStorageEntries.removeIf(storageEntry -> {
return storageEntry.equals(changedStorageEntry);
});
mStorageEntries.add(changedStorageEntry);
if (volumeState != VolumeInfo.STATE_REMOVED
&& volumeState != VolumeInfo.STATE_BAD_REMOVAL) {
mStorageEntries.add(changedStorageEntry);
}
if (changedStorageEntry.equals(mSelectedStorageEntry)) {
mSelectedStorageEntry = changedStorageEntry;
}
refreshUi();
break;
case VolumeInfo.STATE_REMOVED:
case VolumeInfo.STATE_UNMOUNTED:
case VolumeInfo.STATE_BAD_REMOVAL:
case VolumeInfo.STATE_EJECTING:
// Remove removed storage from list and don't show it on spinner.
if (mStorageEntries.remove(changedStorageEntry)) {
if (changedStorageEntry.equals(mSelectedStorageEntry)) {
mSelectedStorageEntry =
StorageEntry.getDefaultInternalStorageEntry(getContext());
}
refreshUi();
}
break;
default:
// Do nothing.
}

View File

@@ -26,6 +26,7 @@ import android.os.UserManager;
import android.os.storage.DiskInfo;
import android.os.storage.StorageManager;
import android.os.storage.VolumeInfo;
import android.util.Log;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
@@ -53,6 +54,8 @@ import java.util.Objects;
public class VolumeOptionMenuController implements LifecycleObserver, OnCreateOptionsMenu,
OnPrepareOptionsMenu, OnOptionsItemSelected {
private static final String TAG = "VolumeOptionMenuController";
@VisibleForTesting
MenuItem mRename;
@VisibleForTesting
@@ -103,6 +106,17 @@ public class VolumeOptionMenuController implements LifecycleObserver, OnCreateOp
mFree = menu.findItem(R.id.storage_free);
mForget = menu.findItem(R.id.storage_forget);
updateOptionsMenu();
}
private void updateOptionsMenu() {
if (mRename == null || mMount == null || mUnmount == null || mFormat == null
|| mFormatAsPortable == null || mFormatAsInternal == null || mMigrate == null
|| mFree == null || mForget == null) {
Log.d(TAG, "Menu items are not available");
return;
}
mRename.setVisible(false);
mMount.setVisible(false);
mUnmount.setVisible(false);
@@ -252,5 +266,7 @@ public class VolumeOptionMenuController implements LifecycleObserver, OnCreateOp
public void setSelectedStorageEntry(StorageEntry storageEntry) {
mStorageEntry = storageEntry;
updateOptionsMenu();
}
}