public void testDeleteDocument() throws FileNotFoundException {
mMtpManager.setObjectInfo(0, new MtpObjectInfo.Builder()
.setObjectHandle(1)
- .setFormat(0x3801)
- .setName("image.jpg")
- .setDateModified(1422716400000L)
- .setCompressedSize(1024 * 1024 * 5)
- .setThumbCompressedSize(1024 * 50)
+ .setParent(2)
.build());
- mMtpManager.setParent(0, 1, 2);
mProvider.deleteDocument("0_0_1");
assertEquals(1, mResolver.getChangeCount(
DocumentsContract.buildChildDocumentsUri(
}
public void testDeleteDocument_error() {
- mMtpManager.setParent(0, 1, 2);
+ mMtpManager.setObjectInfo(0, new MtpObjectInfo.Builder()
+ .setObjectHandle(2)
+ .build());
try {
mProvider.deleteDocument("0_0_1");
fail();
private final Map<String, MtpObjectInfo> mObjectInfos = new HashMap<>();
private final Map<String, int[]> mObjectHandles = new HashMap<>();
private final Map<String, byte[]> mThumbnailBytes = new HashMap<>();
- private final Map<String, Integer> mParents = new HashMap<>();
private final Map<String, byte[]> mImportFileBytes = new HashMap<>();
TestMtpManager(Context context) {
mThumbnailBytes.put(pack(deviceId, objectHandle), bytes);
}
- // TODO: Remove this method, as MtpObjectInfo contains information about
- // parents.
- void setParent(int deviceId, int objectHandle, int parentObjectHandle) {
- mParents.put(pack(deviceId, objectHandle), parentObjectHandle);
- }
-
@Override
void openDevice(int deviceId) throws IOException {
if (!mValidDevices.contains(deviceId) || mOpenedDevices.contains(deviceId)) {
}
@Override
- synchronized int getParent(int deviceId, int objectHandle) throws IOException {
+ int getParent(int deviceId, int objectHandle) throws IOException {
final String key = pack(deviceId, objectHandle);
- if (mParents.containsKey(key)) {
- return mParents.get(key);
+ if (mObjectInfos.containsKey(key)) {
+ return mObjectInfos.get(key).getParent();
} else {
throw new IOException();
}