Merge "MediaBrowser: Fix Javadoc" into nyc-dev
diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/DocumentLoader.java b/packages/MtpDocumentsProvider/src/com/android/mtp/DocumentLoader.java
index 712dbcb..044a061 100644
--- a/packages/MtpDocumentsProvider/src/com/android/mtp/DocumentLoader.java
+++ b/packages/MtpDocumentsProvider/src/com/android/mtp/DocumentLoader.java
@@ -47,16 +47,16 @@
static final int NUM_LOADING_ENTRIES = 20;
static final int NOTIFY_PERIOD_MS = 500;
- private final int mDeviceId;
+ private final MtpDeviceRecord mDevice;
private final MtpManager mMtpManager;
private final ContentResolver mResolver;
private final MtpDatabase mDatabase;
private final TaskList mTaskList = new TaskList();
private Thread mBackgroundThread;
- DocumentLoader(int deviceId, MtpManager mtpManager, ContentResolver resolver,
+ DocumentLoader(MtpDeviceRecord device, MtpManager mtpManager, ContentResolver resolver,
MtpDatabase database) {
- mDeviceId = deviceId;
+ mDevice = device;
mMtpManager = mtpManager;
mResolver = resolver;
mDatabase = database;
@@ -69,7 +69,7 @@
*/
synchronized Cursor queryChildDocuments(String[] columnNames, Identifier parent)
throws IOException {
- Preconditions.checkArgument(parent.mDeviceId == mDeviceId);
+ Preconditions.checkArgument(parent.mDeviceId == mDevice.deviceId);
LoaderTask task = mTaskList.findTask(parent);
if (task == null) {
if (parent.mDocumentId == null) {
@@ -81,7 +81,7 @@
// 3. startAddingChildDocuemnts.
// 4. stopAddingChildDocuments - It removes the new document added at the step 2,
// because it is not updated between start/stopAddingChildDocuments.
- task = LoaderTask.create(mDatabase, mMtpManager, parent);
+ task = LoaderTask.create(mDatabase, mMtpManager, mDevice.operationsSupported, parent);
task.fillDocuments(loadDocuments(
mMtpManager,
parent.mDeviceId,
@@ -123,7 +123,7 @@
return task;
}
- final Identifier identifier = mDatabase.getUnmappedDocumentsParent(mDeviceId);
+ final Identifier identifier = mDatabase.getUnmappedDocumentsParent(mDevice.deviceId);
if (identifier != null) {
final LoaderTask existingTask = mTaskList.findTask(identifier);
if (existingTask != null) {
@@ -131,7 +131,8 @@
mTaskList.remove(existingTask);
}
try {
- final LoaderTask newTask = LoaderTask.create(mDatabase, mMtpManager, identifier);
+ final LoaderTask newTask = LoaderTask.create(
+ mDatabase, mMtpManager, mDevice.operationsSupported, identifier);
mTaskList.addFirst(newTask);
return newTask;
} catch (IOException exception) {
@@ -275,14 +276,17 @@
static final int STATE_ERROR = 2;
final MtpDatabase mDatabase;
+ int[] mOperationsSupported;
final Identifier mIdentifier;
final int[] mObjectHandles;
Date mLastNotified;
int mNumLoaded;
Exception mError;
- LoaderTask(MtpDatabase database, Identifier identifier, int[] objectHandles) {
+ LoaderTask(MtpDatabase database, int[] operationsSupported, Identifier identifier,
+ int[] objectHandles) {
mDatabase = database;
+ mOperationsSupported = operationsSupported;
mIdentifier = identifier;
mObjectHandles = objectHandles;
mNumLoaded = 0;
@@ -355,7 +359,8 @@
mDatabase.getMapper().startAddingDocuments(mIdentifier.mDocumentId);
}
mDatabase.getMapper().putChildDocuments(
- mIdentifier.mDeviceId, mIdentifier.mDocumentId, objectInfoList);
+ mIdentifier.mDeviceId, mIdentifier.mDocumentId, mOperationsSupported,
+ objectInfoList);
mNumLoaded += objectInfoList.length;
if (getState() != STATE_LOADING) {
mDatabase.getMapper().stopAddingDocuments(mIdentifier.mDocumentId);
@@ -394,7 +399,8 @@
/**
* Creates a LoaderTask that loads children of the given document.
*/
- static LoaderTask create(MtpDatabase database, MtpManager manager, Identifier parent)
+ static LoaderTask create(MtpDatabase database, MtpManager manager,
+ int[] operationsSupported, Identifier parent)
throws IOException {
int parentHandle = parent.mObjectHandle;
// Need to pass the special value MtpManager.OBJECT_HANDLE_ROOT_CHILDREN to
@@ -402,7 +408,7 @@
if (parent.mDocumentType == MtpDatabaseConstants.DOCUMENT_TYPE_STORAGE) {
parentHandle = MtpManager.OBJECT_HANDLE_ROOT_CHILDREN;
}
- return new LoaderTask(database, parent, manager.getObjectHandles(
+ return new LoaderTask(database, operationsSupported, parent, manager.getObjectHandles(
parent.mDeviceId, parent.mStorageId, parentHandle));
}
}
diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/Mapper.java b/packages/MtpDocumentsProvider/src/com/android/mtp/Mapper.java
index 4bed003..8058183 100644
--- a/packages/MtpDocumentsProvider/src/com/android/mtp/Mapper.java
+++ b/packages/MtpDocumentsProvider/src/com/android/mtp/Mapper.java
@@ -130,12 +130,14 @@
* @param documents List of document information.
* @throws FileNotFoundException
*/
- synchronized void putChildDocuments(int deviceId, String parentId, MtpObjectInfo[] documents)
+ synchronized void putChildDocuments(
+ int deviceId, String parentId, int[] operationsSupported, MtpObjectInfo[] documents)
throws FileNotFoundException {
final ContentValues[] valuesList = new ContentValues[documents.length];
for (int i = 0; i < documents.length; i++) {
valuesList[i] = new ContentValues();
- MtpDatabase.getObjectDocumentValues(valuesList[i], deviceId, parentId, documents[i]);
+ MtpDatabase.getObjectDocumentValues(
+ valuesList[i], deviceId, parentId, operationsSupported, documents[i]);
}
putDocuments(
parentId,
diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java
index 701543b..203d6dc 100644
--- a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java
+++ b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDatabase.java
@@ -372,9 +372,10 @@
* @param info
* @return Document ID of added document.
*/
- String putNewDocument(int deviceId, String parentDocumentId, MtpObjectInfo info) {
+ String putNewDocument(
+ int deviceId, String parentDocumentId, int[] operationsSupported, MtpObjectInfo info) {
final ContentValues values = new ContentValues();
- getObjectDocumentValues(values, deviceId, parentDocumentId, info);
+ getObjectDocumentValues(values, deviceId, parentDocumentId, operationsSupported, info);
mDatabase.beginTransaction();
try {
final long id = mDatabase.insert(TABLE_DOCUMENTS, null, values);
@@ -582,9 +583,10 @@
}
}
- void updateObject(String documentId, int deviceId, String parentId, MtpObjectInfo info) {
+ void updateObject(String documentId, int deviceId, String parentId, int[] operationsSupported,
+ MtpObjectInfo info) {
final ContentValues values = new ContentValues();
- getObjectDocumentValues(values, deviceId, parentId, info);
+ getObjectDocumentValues(values, deviceId, parentId, operationsSupported, info);
mDatabase.beginTransaction();
try {
@@ -738,20 +740,10 @@
* @param info MTP object info.
*/
static void getObjectDocumentValues(
- ContentValues values, int deviceId, String parentId, MtpObjectInfo info) {
+ ContentValues values, int deviceId, String parentId, int[] operationsSupported,
+ MtpObjectInfo info) {
values.clear();
final String mimeType = getMimeType(info);
- int flag = 0;
- if (info.getProtectionStatus() == 0) {
- flag |= Document.FLAG_SUPPORTS_DELETE |
- Document.FLAG_SUPPORTS_WRITE;
- if (mimeType == Document.MIME_TYPE_DIR) {
- flag |= Document.FLAG_DIR_SUPPORTS_CREATE;
- }
- }
- if (info.getThumbCompressedSize() > 0) {
- flag |= Document.FLAG_SUPPORTS_THUMBNAIL;
- }
values.put(COLUMN_DEVICE_ID, deviceId);
values.put(COLUMN_STORAGE_ID, info.getStorageId());
values.put(COLUMN_OBJECT_HANDLE, info.getObjectHandle());
@@ -765,8 +757,10 @@
Document.COLUMN_LAST_MODIFIED,
info.getDateModified() != 0 ? info.getDateModified() : null);
values.putNull(Document.COLUMN_ICON);
- values.put(Document.COLUMN_FLAGS, flag);
- values.put(Document.COLUMN_SIZE, info.getCompressedSize());
+ values.put(Document.COLUMN_FLAGS, getDocumentFlags(
+ operationsSupported, mimeType, info.getThumbCompressedSizeLong(),
+ info.getProtectionStatus()));
+ values.put(Document.COLUMN_SIZE, info.getCompressedSizeLong());
}
private static String getMimeType(MtpObjectInfo info) {
@@ -793,6 +787,30 @@
return rootFlag;
}
+ private static int getDocumentFlags(
+ int[] operationsSupported, String mimeType, long thumbnailSize, int protectionState) {
+ int flag = 0;
+ if (MtpDeviceRecord.isWritingSupported(operationsSupported) &&
+ protectionState == MtpConstants.PROTECTION_STATUS_NONE) {
+ flag |= Document.FLAG_SUPPORTS_WRITE;
+ }
+ if (MtpDeviceRecord.isSupported(
+ operationsSupported, MtpConstants.OPERATION_DELETE_OBJECT) &&
+ (protectionState == MtpConstants.PROTECTION_STATUS_NONE ||
+ protectionState == MtpConstants.PROTECTION_STATUS_NON_TRANSFERABLE_DATA)) {
+ flag |= Document.FLAG_SUPPORTS_DELETE;
+ }
+ if (mimeType.equals(Document.MIME_TYPE_DIR) &&
+ MtpDeviceRecord.isWritingSupported(operationsSupported) &&
+ protectionState == MtpConstants.PROTECTION_STATUS_NONE) {
+ flag |= Document.FLAG_DIR_SUPPORTS_CREATE;
+ }
+ if (thumbnailSize > 0) {
+ flag |= Document.FLAG_SUPPORTS_THUMBNAIL;
+ }
+ return flag;
+ }
+
static String[] strings(Object... args) {
final String[] results = new String[args.length];
for (int i = 0; i < args.length; i++) {
diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java
index a1c5c9b..63c4ef8b 100644
--- a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java
+++ b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java
@@ -220,7 +220,7 @@
// when writing is completed.
if (MtpDeviceRecord.isWritingSupported(device.operationsSupported)) {
return getPipeManager(identifier).writeDocument(
- getContext(), mMtpManager, identifier);
+ getContext(), mMtpManager, identifier, device.operationsSupported);
} else {
throw new UnsupportedOperationException(
"The device does not support writing operation.");
@@ -316,7 +316,8 @@
final MtpObjectInfo infoWithHandle =
new MtpObjectInfo.Builder(info).setObjectHandle(objectHandle).build();
final String documentId = mDatabase.putNewDocument(
- parentId.mDeviceId, parentDocumentId, infoWithHandle);
+ parentId.mDeviceId, parentDocumentId, record.operationsSupported,
+ infoWithHandle);
getDocumentLoader(parentId).clearTask(parentId);
notifyChildDocumentsChange(parentDocumentId);
return documentId;
@@ -336,7 +337,7 @@
}
final MtpDeviceRecord device = mMtpManager.openDevice(deviceId);
final DeviceToolkit toolkit =
- new DeviceToolkit(deviceId, mMtpManager, mResolver, mDatabase, device);
+ new DeviceToolkit(mMtpManager, mResolver, mDatabase, device);
mDeviceToolkits.put(deviceId, toolkit);
mIntentSender.sendUpdateNotificationIntent();
try {
@@ -499,11 +500,12 @@
public final DocumentLoader mDocumentLoader;
public final MtpDeviceRecord mDeviceRecord;
- public DeviceToolkit(
- int deviceId, MtpManager manager, ContentResolver resolver, MtpDatabase database,
- MtpDeviceRecord record) {
+ public DeviceToolkit(MtpManager manager,
+ ContentResolver resolver,
+ MtpDatabase database,
+ MtpDeviceRecord record) {
mPipeManager = new PipeManager(database);
- mDocumentLoader = new DocumentLoader(deviceId, manager, resolver, database);
+ mDocumentLoader = new DocumentLoader(record, manager, resolver, database);
mDeviceRecord = record;
}
}
diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpManager.java b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpManager.java
index c49005f2..1966e61 100644
--- a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpManager.java
+++ b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpManager.java
@@ -155,7 +155,6 @@
}
}
- @VisibleForTesting
long getPartialObject(int deviceId, int objectHandle, long offset, long size, byte[] buffer)
throws IOException {
final MtpDevice device = getDevice(deviceId);
diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/PipeManager.java b/packages/MtpDocumentsProvider/src/com/android/mtp/PipeManager.java
index 645bfcd..73042c4 100644
--- a/packages/MtpDocumentsProvider/src/com/android/mtp/PipeManager.java
+++ b/packages/MtpDocumentsProvider/src/com/android/mtp/PipeManager.java
@@ -46,9 +46,11 @@
return task.getReadingFileDescriptor();
}
- ParcelFileDescriptor writeDocument(Context context, MtpManager model, Identifier identifier)
+ ParcelFileDescriptor writeDocument(Context context, MtpManager model, Identifier identifier,
+ int[] operationsSupported)
throws IOException {
- final Task task = new WriteDocumentTask(context, model, identifier, mDatabase);
+ final Task task = new WriteDocumentTask(
+ context, model, identifier, operationsSupported, mDatabase);
mExecutor.execute(task);
return task.getWritingFileDescriptor();
}
@@ -103,13 +105,18 @@
private static class WriteDocumentTask extends Task {
private final Context mContext;
private final MtpDatabase mDatabase;
+ private final int[] mOperationsSupported;
- WriteDocumentTask(
- Context context, MtpManager model, Identifier identifier, MtpDatabase database)
+ WriteDocumentTask(Context context,
+ MtpManager model,
+ Identifier identifier,
+ int[] supportedOperations,
+ MtpDatabase database)
throws IOException {
super(model, identifier);
mContext = context;
mDatabase = database;
+ mOperationsSupported = supportedOperations;
}
@Override
@@ -160,6 +167,7 @@
mIdentifier.mDocumentId,
mIdentifier.mDeviceId,
parentIdentifier.mDocumentId,
+ mOperationsSupported,
newObjectInfo);
} catch (IOException error) {
Log.w(MtpDocumentsProvider.TAG,
diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/DocumentLoaderTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/DocumentLoaderTest.java
index a000895..db25421 100644
--- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/DocumentLoaderTest.java
+++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/DocumentLoaderTest.java
@@ -55,7 +55,13 @@
mManager = new BlockableTestMtpManager(getContext());
mResolver = new TestContentResolver();
- mLoader = new DocumentLoader(0, mManager, mResolver, mDatabase);
+ mLoader = new DocumentLoader(
+ new MtpDeviceRecord(
+ 0, "Device", "Key", true, new MtpRoot[0],
+ TestUtil.OPERATIONS_SUPPORTED, new int[0]),
+ mManager,
+ mResolver,
+ mDatabase);
}
@Override
diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java
index 48cde4c..f9e8225 100644
--- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java
+++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDatabaseTest.java
@@ -192,7 +192,7 @@
addTestStorage("1");
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(0, "2", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "2", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(100, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
createDocument(101, "image.jpg", MtpConstants.FORMAT_EXIF_JPEG, 2 * 1024 * 1024),
createDocument(102, "music.mp3", MtpConstants.FORMAT_MP3, 3 * 1024 * 1024)
@@ -261,6 +261,58 @@
cursor.close();
}
+ public void testPutChildDocuments_operationsSupported() throws Exception {
+ addTestDevice();
+ addTestStorage("1");
+
+ // Put a document with empty supported operations.
+ mDatabase.getMapper().startAddingDocuments("2");
+ mDatabase.getMapper().putChildDocuments(0, "2", new int[0], new MtpObjectInfo[] {
+ createDocument(100, "note.txt", MtpConstants.FORMAT_TEXT, 1024)
+ });
+ mDatabase.getMapper().stopAddingDocuments("2");
+
+ try (final Cursor cursor =
+ mDatabase.queryChildDocuments(strings(Document.COLUMN_FLAGS), "2")) {
+ assertEquals(1, cursor.getCount());
+ cursor.moveToNext();
+ assertEquals(0, cursor.getInt(0));
+ }
+
+ // Put a document with writable operations.
+ mDatabase.getMapper().startAddingDocuments("2");
+ mDatabase.getMapper().putChildDocuments(0, "2", new int[] {
+ MtpConstants.OPERATION_SEND_OBJECT,
+ MtpConstants.OPERATION_SEND_OBJECT_INFO,
+ }, new MtpObjectInfo[] {
+ createDocument(100, "note.txt", MtpConstants.FORMAT_TEXT, 1024)
+ });
+ mDatabase.getMapper().stopAddingDocuments("2");
+
+ try (final Cursor cursor =
+ mDatabase.queryChildDocuments(strings(Document.COLUMN_FLAGS), "2")) {
+ assertEquals(1, cursor.getCount());
+ cursor.moveToNext();
+ assertEquals(Document.FLAG_SUPPORTS_WRITE, cursor.getInt(0));
+ }
+
+ // Put a document with deletable operations.
+ mDatabase.getMapper().startAddingDocuments("2");
+ mDatabase.getMapper().putChildDocuments(0, "2", new int[] {
+ MtpConstants.OPERATION_DELETE_OBJECT
+ }, new MtpObjectInfo[] {
+ createDocument(100, "note.txt", MtpConstants.FORMAT_TEXT, 1024)
+ });
+ mDatabase.getMapper().stopAddingDocuments("2");
+
+ try (final Cursor cursor =
+ mDatabase.queryChildDocuments(strings(Document.COLUMN_FLAGS), "2")) {
+ assertEquals(1, cursor.getCount());
+ cursor.moveToNext();
+ assertEquals(Document.FLAG_SUPPORTS_DELETE, cursor.getInt(0));
+ }
+ }
+
public void testRestoreIdForRootDocuments() throws Exception {
final String[] columns = new String[] {
DocumentsContract.Document.COLUMN_DOCUMENT_ID,
@@ -335,7 +387,7 @@
addTestStorage("1");
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(0, "2", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "2", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(100, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
createDocument(101, "image.jpg", MtpConstants.FORMAT_EXIF_JPEG, 2 * 1024 * 1024),
createDocument(102, "music.mp3", MtpConstants.FORMAT_MP3, 3 * 1024 * 1024)
@@ -353,7 +405,7 @@
}
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(0, "2", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "2", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
createDocument(203, "video.mp4", MtpConstants.FORMAT_MP4_CONTAINER, 1024),
});
@@ -486,7 +538,7 @@
addTestDevice();
addTestStorage("1");
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(0, "2", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "2", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(50, "A", MtpConstants.FORMAT_ASSOCIATION, 0),
createDocument(51, "B", MtpConstants.FORMAT_ASSOCIATION, 0),
});
@@ -495,10 +547,10 @@
// Put note.txt in each directory.
mDatabase.getMapper().startAddingDocuments("3");
mDatabase.getMapper().startAddingDocuments("4");
- mDatabase.getMapper().putChildDocuments(0, "3", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "3", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(100, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
});
- mDatabase.getMapper().putChildDocuments(0, "4", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "4", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(101, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
});
@@ -509,7 +561,7 @@
addTestDevice();
addTestStorage("1");
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(0, "2", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "2", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(50, "A", MtpConstants.FORMAT_ASSOCIATION, 0),
createDocument(51, "B", MtpConstants.FORMAT_ASSOCIATION, 0),
});
@@ -518,10 +570,10 @@
// Add note.txt in each directory again.
mDatabase.getMapper().startAddingDocuments("3");
mDatabase.getMapper().startAddingDocuments("4");
- mDatabase.getMapper().putChildDocuments(0, "3", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "3", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
});
- mDatabase.getMapper().putChildDocuments(0, "4", new MtpObjectInfo[] {
+ mDatabase.getMapper().putChildDocuments(0, "4", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
createDocument(201, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
});
mDatabase.getMapper().stopAddingDocuments("3");
@@ -802,12 +854,9 @@
mDatabase.getMapper().stopAddingDocuments("1");
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(
- 0,
- "2",
- new MtpObjectInfo[] {
- createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
- });
+ mDatabase.getMapper().putChildDocuments(0, "2", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
+ createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
+ });
mDatabase.getMapper().stopAddingDocuments("2");
assertEquals("2", mDatabase.getParentIdentifier("3").mDocumentId);
@@ -818,21 +867,15 @@
addTestStorage("1");
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(
- 0,
- "2",
- new MtpObjectInfo[] {
- createDocument(200, "dir", MtpConstants.FORMAT_ASSOCIATION, 1024),
- });
+ mDatabase.getMapper().putChildDocuments(0, "2", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
+ createDocument(200, "dir", MtpConstants.FORMAT_ASSOCIATION, 1024),
+ });
mDatabase.getMapper().stopAddingDocuments("2");
mDatabase.getMapper().startAddingDocuments("3");
- mDatabase.getMapper().putChildDocuments(
- 0,
- "3",
- new MtpObjectInfo[] {
- createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
- });
+ mDatabase.getMapper().putChildDocuments(0, "3", OPERATIONS_SUPPORTED, new MtpObjectInfo[] {
+ createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024),
+ });
mDatabase.getMapper().stopAddingDocuments("3");
mDatabase.deleteDocument("3");
@@ -861,7 +904,8 @@
assertEquals(
"3",
mDatabase.putNewDocument(
- 0, "2", createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024)));
+ 0, "2", OPERATIONS_SUPPORTED,
+ createDocument(200, "note.txt", MtpConstants.FORMAT_TEXT, 1024)));
{
final Cursor cursor =
@@ -879,8 +923,7 @@
mDatabase.getMapper().startAddingDocuments("2");
mDatabase.putNewDocument(
- 0,
- "2",
+ 0, "2", OPERATIONS_SUPPORTED,
createDocument(201, "note.txt", MtpConstants.FORMAT_TEXT, 1024));
mDatabase.getMapper().stopAddingDocuments("2");
diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java
index db82bcb..3dfa4ad 100644
--- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java
+++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java
@@ -412,7 +412,7 @@
assertEquals("image/jpeg", cursor.getString(1));
assertEquals("image.jpg", cursor.getString(2));
assertEquals(0, cursor.getLong(3));
- assertEquals(DocumentsContract.Document.FLAG_SUPPORTS_THUMBNAIL, cursor.getInt(4));
+ assertEquals(Document.FLAG_SUPPORTS_THUMBNAIL, cursor.getInt(4));
assertEquals(1024 * 1024 * 5, cursor.getInt(5));
cursor.close();
diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/PipeManagerTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/PipeManagerTest.java
index 94f87ff..919ac39 100644
--- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/PipeManagerTest.java
+++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/PipeManagerTest.java
@@ -67,7 +67,9 @@
final MtpObjectInfo info =
new MtpObjectInfo.Builder().setObjectHandle(1).setName("note.txt").build();
mDatabase.getMapper().startAddingDocuments("2");
- mDatabase.getMapper().putChildDocuments(0, "2", new MtpObjectInfo[] { info });
+ mDatabase.getMapper().putChildDocuments(
+ 0, "2", TestUtil.OPERATIONS_SUPPORTED,
+ new MtpObjectInfo[] { info });
mDatabase.getMapper().stopAddingDocuments("2");
// Create a placeholder file which should be replaced by a real file later.
mtpManager.setObjectInfo(0, info);
@@ -76,7 +78,8 @@
final ParcelFileDescriptor descriptor = mPipeManager.writeDocument(
getContext(),
mtpManager,
- new Identifier(0, 0, 1, "2", MtpDatabaseConstants.DOCUMENT_TYPE_OBJECT));
+ new Identifier(0, 0, 1, "2", MtpDatabaseConstants.DOCUMENT_TYPE_OBJECT),
+ TestUtil.OPERATIONS_SUPPORTED);
final ParcelFileDescriptor.AutoCloseOutputStream outputStream =
new ParcelFileDescriptor.AutoCloseOutputStream(descriptor);
outputStream.write(HELLO_BYTES, 0, HELLO_BYTES.length);
diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/TestUtil.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/TestUtil.java
index 8adb68f..5ceab01 100644
--- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/TestUtil.java
+++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/TestUtil.java
@@ -37,6 +37,7 @@
MtpConstants.OPERATION_GET_PARTIAL_OBJECT,
MtpConstants.OPERATION_SEND_OBJECT,
MtpConstants.OPERATION_SEND_OBJECT_INFO,
+ MtpConstants.OPERATION_DELETE_OBJECT,
};
/**