summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJeff Sharkey <jsharkey@android.com>2015-06-12 23:19:32 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2015-06-12 23:19:34 +0000
commit1d04e6a6cd06062483e22b387c6c1a615e4e5088 (patch)
tree070883055c7a23ccab3844147c5222563e78090c
parent87a79c394dcecd28c3811615ce975abcde185255 (diff)
parentc7acac6798e12780194af33d5a9fdf382ab17155 (diff)
downloadframeworks_base-1d04e6a6cd06062483e22b387c6c1a615e4e5088.zip
frameworks_base-1d04e6a6cd06062483e22b387c6c1a615e4e5088.tar.gz
frameworks_base-1d04e6a6cd06062483e22b387c6c1a615e4e5088.tar.bz2
Merge "More useful extras in disk/volume broadcasts." into mnc-dev
-rw-r--r--core/java/android/os/storage/DiskInfo.java2
-rw-r--r--core/java/android/os/storage/VolumeInfo.java2
-rw-r--r--services/core/java/com/android/server/MountService.java21
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);