diff options
3 files changed, 11 insertions, 1 deletions
diff --git a/core/java/android/os/storage/DiskInfo.java b/core/java/android/os/storage/DiskInfo.java index 9623695edbba..04e54aafbce9 100644 --- a/core/java/android/os/storage/DiskInfo.java +++ b/core/java/android/os/storage/DiskInfo.java @@ -50,6 +50,8 @@ public class DiskInfo implements Parcelable { public final int flags; public long size; public String label; + /** Hacky; don't rely on this count */ + public int volumeCount; public DiskInfo(String id, int flags) { this.id = Preconditions.checkNotNull(id); @@ -61,6 +63,7 @@ public class DiskInfo implements Parcelable { flags = parcel.readInt(); size = parcel.readLong(); label = parcel.readString(); + volumeCount = parcel.readInt(); } public @NonNull String getId() { @@ -181,5 +184,6 @@ public class DiskInfo implements Parcelable { parcel.writeInt(this.flags); parcel.writeLong(size); parcel.writeString(label); + parcel.writeInt(volumeCount); } } diff --git a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java index 23813d11919c..ad215551a90f 100644 --- a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java +++ b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java @@ -148,6 +148,11 @@ public class StorageNotification extends SystemUI { android.Manifest.permission.MOUNT_UNMOUNT_FILESYSTEMS, null); // Kick current state into place + final List<DiskInfo> disks = mStorageManager.getDisks(); + for (DiskInfo disk : disks) { + onDiskScannedInternal(disk, disk.volumeCount); + } + final List<VolumeInfo> vols = mStorageManager.getVolumes(); for (VolumeInfo vol : vols) { onVolumeStateChangedInternal(vol); @@ -194,7 +199,7 @@ public class StorageNotification extends SystemUI { } private void onDiskScannedInternal(DiskInfo disk, int volumeCount) { - if (volumeCount == 0) { + if (volumeCount == 0 && disk.size > 0) { // No supported volumes found, give user option to format final CharSequence title = mContext.getString( R.string.ext_media_unmountable_notification_title, disk.getDescription()); diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java index e00cf5b1cf3d..d48953db8f45 100644 --- a/services/core/java/com/android/server/MountService.java +++ b/services/core/java/com/android/server/MountService.java @@ -973,6 +973,7 @@ class MountService extends IMountService.Stub } } + disk.volumeCount = volumeCount; mCallbacks.notifyDiskScanned(disk, volumeCount); } |