Filter volumes to only those the caller can see.

Don't return volumes that caller can't actually use.  Also add feature
to indicate that device supports "virtual disk" feature to verify
secondary external storage behaviors.

Bug: 117932814
Test: atest MediaProviderTests
Test: atest cts/tests/tests/media/src/android/media/cts/MediaScanner*
Test: atest cts/tests/tests/provider/src/android/provider/cts/MediaStore*
Change-Id: I66091c532ab5dac5032a82b136c590ac5a2a983a
This commit is contained in:
Jeff Sharkey
2019-01-20 13:14:21 -07:00
parent 8559e65694
commit 3036089cfa

View File

@@ -2915,7 +2915,7 @@ public final class MediaStore {
final Set<String> volumeNames = new ArraySet<>();
volumeNames.add(VOLUME_INTERNAL);
for (VolumeInfo vi : sm.getVolumes()) {
if (vi.isMountedReadable()) {
if (vi.isVisibleForUser(UserHandle.myUserId()) && vi.isMountedReadable()) {
if (vi.isPrimary()) {
volumeNames.add(VOLUME_EXTERNAL);
} else {