summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/java/android/os/storage/DiskInfo.java4
-rw-r--r--packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java7
-rw-r--r--services/core/java/com/android/server/MountService.java1
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);
}