am 1d04e6a6: Merge "More useful extras in disk/volume broadcasts." into mnc-dev
* commit '1d04e6a6cd06062483e22b387c6c1a615e4e5088': More useful extras in disk/volume broadcasts.
This commit is contained in:
@@ -40,6 +40,8 @@ public class DiskInfo implements Parcelable {
|
|||||||
"android.os.storage.action.DISK_SCANNED";
|
"android.os.storage.action.DISK_SCANNED";
|
||||||
public static final String EXTRA_DISK_ID =
|
public static final String EXTRA_DISK_ID =
|
||||||
"android.os.storage.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_ADOPTABLE = 1 << 0;
|
||||||
public static final int FLAG_DEFAULT_PRIMARY = 1 << 1;
|
public static final int FLAG_DEFAULT_PRIMARY = 1 << 1;
|
||||||
|
|||||||
@@ -55,6 +55,8 @@ public class VolumeInfo implements Parcelable {
|
|||||||
"android.os.storage.action.VOLUME_STATE_CHANGED";
|
"android.os.storage.action.VOLUME_STATE_CHANGED";
|
||||||
public static final String EXTRA_VOLUME_ID =
|
public static final String EXTRA_VOLUME_ID =
|
||||||
"android.os.storage.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 */
|
/** Stub volume representing internal private storage */
|
||||||
public static final String ID_PRIVATE_INTERNAL = "private";
|
public static final String ID_PRIVATE_INTERNAL = "private";
|
||||||
|
|||||||
@@ -991,17 +991,6 @@ class MountService extends IMountService.Stub
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void onDiskScannedLocked(DiskInfo disk) {
|
private void onDiskScannedLocked(DiskInfo disk) {
|
||||||
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);
|
|
||||||
mContext.sendBroadcastAsUser(intent, UserHandle.ALL,
|
|
||||||
android.Manifest.permission.WRITE_MEDIA_STORAGE);
|
|
||||||
|
|
||||||
final CountDownLatch latch = mDiskScanLatches.remove(disk.id);
|
|
||||||
if (latch != null) {
|
|
||||||
latch.countDown();
|
|
||||||
}
|
|
||||||
|
|
||||||
int volumeCount = 0;
|
int volumeCount = 0;
|
||||||
for (int i = 0; i < mVolumes.size(); i++) {
|
for (int i = 0; i < mVolumes.size(); i++) {
|
||||||
final VolumeInfo vol = mVolumes.valueAt(i);
|
final VolumeInfo vol = mVolumes.valueAt(i);
|
||||||
@@ -1010,6 +999,18 @@ class MountService extends IMountService.Stub
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
final CountDownLatch latch = mDiskScanLatches.remove(disk.id);
|
||||||
|
if (latch != null) {
|
||||||
|
latch.countDown();
|
||||||
|
}
|
||||||
|
|
||||||
disk.volumeCount = volumeCount;
|
disk.volumeCount = volumeCount;
|
||||||
mCallbacks.notifyDiskScanned(disk, volumeCount);
|
mCallbacks.notifyDiskScanned(disk, volumeCount);
|
||||||
}
|
}
|
||||||
@@ -1061,6 +1062,7 @@ class MountService extends IMountService.Stub
|
|||||||
|
|
||||||
private boolean isBroadcastWorthy(VolumeInfo vol) {
|
private boolean isBroadcastWorthy(VolumeInfo vol) {
|
||||||
switch (vol.getType()) {
|
switch (vol.getType()) {
|
||||||
|
case VolumeInfo.TYPE_PRIVATE:
|
||||||
case VolumeInfo.TYPE_PUBLIC:
|
case VolumeInfo.TYPE_PUBLIC:
|
||||||
case VolumeInfo.TYPE_EMULATED:
|
case VolumeInfo.TYPE_EMULATED:
|
||||||
break;
|
break;
|
||||||
@@ -1073,6 +1075,7 @@ class MountService extends IMountService.Stub
|
|||||||
case VolumeInfo.STATE_MOUNTED_READ_ONLY:
|
case VolumeInfo.STATE_MOUNTED_READ_ONLY:
|
||||||
case VolumeInfo.STATE_EJECTING:
|
case VolumeInfo.STATE_EJECTING:
|
||||||
case VolumeInfo.STATE_UNMOUNTED:
|
case VolumeInfo.STATE_UNMOUNTED:
|
||||||
|
case VolumeInfo.STATE_UNMOUNTABLE:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
@@ -1099,6 +1102,8 @@ class MountService extends IMountService.Stub
|
|||||||
|
|
||||||
if (isBroadcastWorthy(vol)) {
|
if (isBroadcastWorthy(vol)) {
|
||||||
final Intent intent = new Intent(VolumeInfo.ACTION_VOLUME_STATE_CHANGED);
|
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);
|
intent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
|
||||||
mContext.sendBroadcastAsUser(intent, UserHandle.ALL,
|
mContext.sendBroadcastAsUser(intent, UserHandle.ALL,
|
||||||
android.Manifest.permission.WRITE_MEDIA_STORAGE);
|
android.Manifest.permission.WRITE_MEDIA_STORAGE);
|
||||||
|
|||||||
Reference in New Issue
Block a user