summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-09-09 15:37:31 -0700
committerAndroid (Google) Code Review <android-gerrit@google.com>2010-09-09 15:37:31 -0700
commite611ad410abf5074105b96d1cf834e5f288dab91 (patch)
treeb2e9d2db7cdace69c4ca4a70d6d043bc05f00886
parentcad0cffe24380b19dbda6b7e3326e82b65694496 (diff)
parent8490e66f57506d4e4b05e7c987c7ca34295843e6 (diff)
downloadframeworks_base-e611ad410abf5074105b96d1cf834e5f288dab91.zip
frameworks_base-e611ad410abf5074105b96d1cf834e5f288dab91.tar.gz
frameworks_base-e611ad410abf5074105b96d1cf834e5f288dab91.tar.bz2
Merge "Use separate Uris for MTP to the media provider files table"
-rw-r--r--core/java/android/provider/MediaStore.java21
-rw-r--r--media/java/android/media/MtpDatabase.java8
2 files changed, 21 insertions, 8 deletions
diff --git a/core/java/android/provider/MediaStore.java b/core/java/android/provider/MediaStore.java
index 2b8a8e6..d3718f8 100644
--- a/core/java/android/provider/MediaStore.java
+++ b/core/java/android/provider/MediaStore.java
@@ -273,7 +273,9 @@ public final class MediaStore {
}
/**
- * Media provider interface used by MTP implementation.
+ * Media provider table containing an index of all files in the storage.
+ * This can be used by applications to find all documents of a particular type
+ * and is also used internally by the device side MTP implementation.
* @hide
*/
public static final class Files {
@@ -289,11 +291,22 @@ public final class MediaStore {
+ "/file/" + fileId);
}
- // used for MTP GetObjectReferences and SetObjectReferences
- public static final Uri getReferencesUri(String volumeName,
+ public static Uri getMtpObjectsUri(String volumeName) {
+ return Uri.parse(CONTENT_AUTHORITY_SLASH + volumeName +
+ "/object");
+ }
+
+ public static final Uri getMtpObjectsUri(String volumeName,
+ long fileId) {
+ return Uri.parse(CONTENT_AUTHORITY_SLASH + volumeName
+ + "/object/" + fileId);
+ }
+
+ // Used to implement the MTP GetObjectReferences and SetObjectReferences commands.
+ public static final Uri getMtpReferencesUri(String volumeName,
long fileId) {
return Uri.parse(CONTENT_AUTHORITY_SLASH + volumeName
- + "/file/" + fileId + "/references");
+ + "/object/" + fileId + "/references");
}
/**
diff --git a/media/java/android/media/MtpDatabase.java b/media/java/android/media/MtpDatabase.java
index 536d49f..ad029a6 100644
--- a/media/java/android/media/MtpDatabase.java
+++ b/media/java/android/media/MtpDatabase.java
@@ -89,7 +89,7 @@ public class MtpDatabase {
mContext = context;
mMediaProvider = context.getContentResolver().acquireProvider("media");
mVolumeName = volumeName;
- mObjectsUri = Files.getContentUri(volumeName);
+ mObjectsUri = Files.getMtpObjectsUri(volumeName);
mMediaScanner = new MediaScanner(context);
openDevicePropertiesDatabase(context);
}
@@ -481,7 +481,7 @@ public class MtpDatabase {
private int deleteFile(int handle) {
Log.d(TAG, "deleteFile: " + handle);
mDatabaseModified = true;
- Uri uri = Files.getContentUri(mVolumeName, handle);
+ Uri uri = Files.getMtpObjectsUri(mVolumeName, handle);
try {
if (mMediaProvider.delete(uri, null, null) == 1) {
return MtpConstants.RESPONSE_OK;
@@ -496,7 +496,7 @@ public class MtpDatabase {
private int[] getObjectReferences(int handle) {
Log.d(TAG, "getObjectReferences for: " + handle);
- Uri uri = Files.getReferencesUri(mVolumeName, handle);
+ Uri uri = Files.getMtpReferencesUri(mVolumeName, handle);
Cursor c = null;
try {
c = mMediaProvider.query(uri, ID_PROJECTION, null, null, null);
@@ -524,7 +524,7 @@ public class MtpDatabase {
private int setObjectReferences(int handle, int[] references) {
mDatabaseModified = true;
- Uri uri = Files.getReferencesUri(mVolumeName, handle);
+ Uri uri = Files.getMtpReferencesUri(mVolumeName, handle);
int count = references.length;
ContentValues[] valuesList = new ContentValues[count];
for (int i = 0; i < count; i++) {