diff options
| -rw-r--r-- | packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java | 28 | ||||
| -rw-r--r-- | packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java | 23 |
2 files changed, 31 insertions, 20 deletions
diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java b/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java index 4649340406e0..bd0c837726a8 100644 --- a/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java +++ b/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java @@ -20,19 +20,19 @@ package com.android.mtp; * Static utilities for ID. */ class Identifier { - int mDeviceId; - int mStorageId; - int mObjectHandle; + final int mDeviceId; + final int mStorageId; + final int mObjectHandle; static Identifier createFromRootId(String rootId) { - final String[] components = rootId.split(":"); + final String[] components = rootId.split("_"); return new Identifier( Integer.parseInt(components[0]), Integer.parseInt(components[1])); } static Identifier createFromDocumentId(String documentId) { - final String[] components = documentId.split(":"); + final String[] components = documentId.split("_"); return new Identifier( Integer.parseInt(components[0]), Integer.parseInt(components[1]), @@ -52,11 +52,25 @@ class Identifier { // TODO: Make the ID persistent. String toRootId() { - return String.format("%d:%d", mDeviceId, mStorageId); + return String.format("%d_%d", mDeviceId, mStorageId); } // TODO: Make the ID persistent. String toDocumentId() { - return String.format("%d:%d:%d", mDeviceId, mStorageId, mObjectHandle); + return String.format("%d_%d_%d", mDeviceId, mStorageId, mObjectHandle); + } + + @Override + public boolean equals(Object obj) { + if (!(obj instanceof Identifier)) + return false; + final Identifier other = (Identifier)obj; + return mDeviceId == other.mDeviceId && mStorageId == other.mStorageId && + mObjectHandle == other.mObjectHandle; + } + + @Override + public int hashCode() { + return (mDeviceId << 16) ^ (mStorageId << 8) ^ mObjectHandle; } } diff --git a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java index 81fff21e2d08..2a612cb643be 100644 --- a/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java +++ b/packages/MtpDocumentsProvider/tests/src/com/android/mtp/MtpDocumentsProviderTest.java @@ -70,7 +70,6 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { public void testCloseAllDevices() throws IOException { mMtpManager.addValidDevice(0); - mProvider.onCreateForTesting(mMtpManager, mResolver); mProvider.closeAllDevices(); assertEquals(0, mResolver.changeCount); @@ -101,7 +100,6 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { 4096 /* total space */, "Identifier B" /* no volume identifier */) }); - mProvider.onCreateForTesting(mMtpManager, mResolver); assertEquals(0, mProvider.queryRoots(null).getCount()); { @@ -109,12 +107,12 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { final Cursor cursor = mProvider.queryRoots(null); assertEquals(1, cursor.getCount()); cursor.moveToNext(); - assertEquals("0:1", cursor.getString(0)); + assertEquals("0_1", cursor.getString(0)); assertEquals(Root.FLAG_SUPPORTS_IS_CHILD, cursor.getInt(1)); // TODO: Add storage icon for MTP devices. assertTrue(cursor.isNull(2) /* icon */); assertEquals("Storage A", cursor.getString(3)); - assertEquals("0:1:0", cursor.getString(4)); + assertEquals("0_1_0", cursor.getString(4)); assertEquals(1024, cursor.getInt(5)); } @@ -124,12 +122,12 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { assertEquals(2, cursor.getCount()); cursor.moveToNext(); cursor.moveToNext(); - assertEquals("1:1", cursor.getString(0)); + assertEquals("1_1", cursor.getString(0)); assertEquals(Root.FLAG_SUPPORTS_IS_CHILD, cursor.getInt(1)); // TODO: Add storage icon for MTP devices. assertTrue(cursor.isNull(2) /* icon */); assertEquals("Storage B", cursor.getString(3)); - assertEquals("1:1:0", cursor.getString(4)); + assertEquals("1_1_0", cursor.getString(4)); assertEquals(2048, cursor.getInt(5)); } @@ -152,19 +150,18 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { 4096 /* total space */, "Identifier B" /* no volume identifier */) }); - mProvider.onCreateForTesting(mMtpManager, mResolver); { mProvider.openDevice(0); mProvider.openDevice(1); final Cursor cursor = mProvider.queryRoots(null); assertEquals(1, cursor.getCount()); cursor.moveToNext(); - assertEquals("1:1", cursor.getString(0)); + assertEquals("1_1", cursor.getString(0)); assertEquals(Root.FLAG_SUPPORTS_IS_CHILD, cursor.getInt(1)); // TODO: Add storage icon for MTP devices. assertTrue(cursor.isNull(2) /* icon */); assertEquals("Storage B", cursor.getString(3)); - assertEquals("1:1:0", cursor.getString(4)); + assertEquals("1_1_0", cursor.getString(4)); assertEquals(2048, cursor.getInt(5)); } } @@ -177,11 +174,11 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { new Date(1422716400000L) /* modified date */, 1024 * 1024 * 5 /* file size */, 1024 * 50 /* thumbnail size */)); - final Cursor cursor = mProvider.queryDocument("0:1:2", null); + final Cursor cursor = mProvider.queryDocument("0_1_2", null); assertEquals(1, cursor.getCount()); cursor.moveToNext(); - assertEquals("0:1:2", cursor.getString(0)); + assertEquals("0_1_2", cursor.getString(0)); assertEquals("image/jpeg", cursor.getString(1)); assertEquals("image.jpg", cursor.getString(2)); assertEquals(1422716400000L, cursor.getLong(3)); @@ -201,11 +198,11 @@ public class MtpDocumentsProviderTest extends AndroidTestCase { 4096 /* total space */, "" /* no volume identifier */) }); - final Cursor cursor = mProvider.queryDocument("0:1:0", null); + final Cursor cursor = mProvider.queryDocument("0_1_0", null); assertEquals(1, cursor.getCount()); cursor.moveToNext(); - assertEquals("0:1:0", cursor.getString(0)); + assertEquals("0_1_0", cursor.getString(0)); assertEquals(DocumentsContract.Document.MIME_TYPE_DIR, cursor.getString(1)); assertEquals("Storage A", cursor.getString(2)); assertTrue(cursor.isNull(3)); |