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:
@@ -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);
|
||||
});
|
||||
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.
|
||||
}
|
||||
|
@@ -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);
|
||||
});
|
||||
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.
|
||||
}
|
||||
|
@@ -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();
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user