Adjust MTP to reference by specific volume name.
The MediaStore.VOLUME_EXTERNAL volume is a merged view of all storage
devices, and clients working on a specific volume need to focus on
the volume they're interested in.
Bug: 129840030
Test: atest --test-mapping packages/providers/MediaProvider
Change-Id: I91cee6a96d7f9360e6a93a9a3c389b097b6b9967
diff --git a/media/java/android/mtp/MtpPropertyGroup.java b/media/java/android/mtp/MtpPropertyGroup.java
index 6d5be8e..5bb0c1b 100644
--- a/media/java/android/mtp/MtpPropertyGroup.java
+++ b/media/java/android/mtp/MtpPropertyGroup.java
@@ -46,9 +46,6 @@
}
}
- private final ContentProviderClient mProvider;
- private final String mVolumeName;
-
// list of all properties in this group
private final Property[] mProperties;
@@ -58,10 +55,7 @@
private static final String PATH_WHERE = Files.FileColumns.DATA + "=?";
// constructs a property group for a list of properties
- public MtpPropertyGroup(ContentProviderClient provider, String volumeName, int[] properties) {
- mProvider = provider;
- mVolumeName = volumeName;
-
+ public MtpPropertyGroup(int[] properties) {
int count = properties.length;
ArrayList<String> columns = new ArrayList<>(count);
columns.add(Files.FileColumns._ID);
@@ -175,7 +169,8 @@
* object and adds them to the given property list.
* @return Response_OK if the operation succeeded.
*/
- public int getPropertyList(MtpStorageManager.MtpObject object, MtpPropertyList list) {
+ public int getPropertyList(ContentProviderClient provider, String volumeName,
+ MtpStorageManager.MtpObject object, MtpPropertyList list) {
Cursor c = null;
int id = object.getId();
String path = object.getPath().toString();
@@ -184,8 +179,8 @@
try {
// Look up the entry in MediaProvider only if one of those properties is needed.
final Uri uri = MtpDatabase.getObjectPropertiesUri(object.getFormat(),
- mVolumeName);
- c = mProvider.query(uri, mColumns,
+ volumeName);
+ c = provider.query(uri, mColumns,
PATH_WHERE, new String[] {path}, null, null);
if (c != null && !c.moveToNext()) {
c.close();