diff options
| author | Jeff Sharkey <jsharkey@android.com> | 2015-06-12 16:16:56 -0700 |
|---|---|---|
| committer | Jeff Sharkey <jsharkey@android.com> | 2015-06-12 16:16:56 -0700 |
| commit | c7acac6798e12780194af33d5a9fdf382ab17155 (patch) | |
| tree | 5eb16a6904377b38c9f1169ea83222539f43e585 | |
| parent | e9b64f97350a0661cc7d5e79216d75374c37581f (diff) | |
| download | frameworks_base-c7acac6798e12780194af33d5a9fdf382ab17155.zip frameworks_base-c7acac6798e12780194af33d5a9fdf382ab17155.tar.gz frameworks_base-c7acac6798e12780194af33d5a9fdf382ab17155.tar.bz2 | |
More useful extras in disk/volume broadcasts.
Change-Id: I594166cff332aaf72b2b6357ac6ed3e6e42cbc49
| -rw-r--r-- | core/java/android/os/storage/DiskInfo.java | 2 | ||||
| -rw-r--r-- | core/java/android/os/storage/VolumeInfo.java | 2 | ||||
| -rw-r--r-- | services/core/java/com/android/server/MountService.java | 21 |
3 files changed, 17 insertions, 8 deletions
diff --git a/core/java/android/os/storage/DiskInfo.java b/core/java/android/os/storage/DiskInfo.java index 5bc45d5..397d87e 100644 --- a/core/java/android/os/storage/DiskInfo.java +++ b/core/java/android/os/storage/DiskInfo.java @@ -40,6 +40,8 @@ public class DiskInfo implements Parcelable { "android.os.storage.action.DISK_SCANNED"; public static final String EXTRA_DISK_ID = "android.os.storage.extra.DISK_ID"; + public static final String EXTRA_VOLUME_COUNT = + "android.os.storage.extra.VOLUME_COUNT"; public static final int FLAG_ADOPTABLE = 1 << 0; public static final int FLAG_DEFAULT_PRIMARY = 1 << 1; diff --git a/core/java/android/os/storage/VolumeInfo.java b/core/java/android/os/storage/VolumeInfo.java index 372725f..8d11527 100644 --- a/core/java/android/os/storage/VolumeInfo.java +++ b/core/java/android/os/storage/VolumeInfo.java @@ -55,6 +55,8 @@ public class VolumeInfo implements Parcelable { "android.os.storage.action.VOLUME_STATE_CHANGED"; public static final String EXTRA_VOLUME_ID = "android.os.storage.extra.VOLUME_ID"; + public static final String EXTRA_VOLUME_STATE = + "android.os.storage.extra.VOLUME_STATE"; /** Stub volume representing internal private storage */ public static final String ID_PRIVATE_INTERNAL = "private"; diff --git a/services/core/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java index f69626d..2427363 100644 --- a/services/core/java/com/android/server/MountService.java +++ b/services/core/java/com/android/server/MountService.java @@ -991,9 +991,18 @@ class MountService extends IMountService.Stub } private void onDiskScannedLocked(DiskInfo disk) { + int volumeCount = 0; + for (int i = 0; i < mVolumes.size(); i++) { + final VolumeInfo vol = mVolumes.valueAt(i); + if (Objects.equals(disk.id, vol.getDiskId())) { + volumeCount++; + } + } + final Intent intent = new Intent(DiskInfo.ACTION_DISK_SCANNED); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); intent.putExtra(DiskInfo.EXTRA_DISK_ID, disk.id); + intent.putExtra(DiskInfo.EXTRA_VOLUME_COUNT, volumeCount); mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.WRITE_MEDIA_STORAGE); @@ -1002,14 +1011,6 @@ class MountService extends IMountService.Stub latch.countDown(); } - int volumeCount = 0; - for (int i = 0; i < mVolumes.size(); i++) { - final VolumeInfo vol = mVolumes.valueAt(i); - if (Objects.equals(disk.id, vol.getDiskId())) { - volumeCount++; - } - } - disk.volumeCount = volumeCount; mCallbacks.notifyDiskScanned(disk, volumeCount); } @@ -1061,6 +1062,7 @@ class MountService extends IMountService.Stub private boolean isBroadcastWorthy(VolumeInfo vol) { switch (vol.getType()) { + case VolumeInfo.TYPE_PRIVATE: case VolumeInfo.TYPE_PUBLIC: case VolumeInfo.TYPE_EMULATED: break; @@ -1073,6 +1075,7 @@ class MountService extends IMountService.Stub case VolumeInfo.STATE_MOUNTED_READ_ONLY: case VolumeInfo.STATE_EJECTING: case VolumeInfo.STATE_UNMOUNTED: + case VolumeInfo.STATE_UNMOUNTABLE: break; default: return false; @@ -1099,6 +1102,8 @@ class MountService extends IMountService.Stub if (isBroadcastWorthy(vol)) { final Intent intent = new Intent(VolumeInfo.ACTION_VOLUME_STATE_CHANGED); + intent.putExtra(VolumeInfo.EXTRA_VOLUME_ID, vol.id); + intent.putExtra(VolumeInfo.EXTRA_VOLUME_STATE, newState); intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT); mContext.sendBroadcastAsUser(intent, UserHandle.ALL, android.Manifest.permission.WRITE_MEDIA_STORAGE); |
