From 19aa93249edc5dac01025456ce3bb1881f1b11d1 Mon Sep 17 00:00:00 2001 From: Daichi Hirono Date: Thu, 4 Feb 2016 14:19:52 +0900 Subject: [PATCH] Fix Identifier.equals method. Previously the string was compared by ==. BUG=26970351 Change-Id: If88b74392955388c9bf59002f2d2a186c2dff71a --- .../src/com/android/mtp/Identifier.java | 29 ++++++++++++++++++- .../com/android/mtp/MtpDocumentsProvider.java | 11 +++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java b/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java index 76a1fad30442e..124d207696aa3 100644 --- a/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java +++ b/packages/MtpDocumentsProvider/src/com/android/mtp/Identifier.java @@ -44,11 +44,38 @@ class Identifier { return false; final Identifier other = (Identifier) obj; return mDeviceId == other.mDeviceId && mStorageId == other.mStorageId && - mObjectHandle == other.mObjectHandle && mDocumentId == other.mDocumentId; + mObjectHandle == other.mObjectHandle && mDocumentId.equals(other.mDocumentId); } @Override public int hashCode() { return Objects.hash(mDeviceId, mStorageId, mObjectHandle, mDocumentId); } + + @Override + public String toString() { + final StringBuilder builder = new StringBuilder(); + builder.append("Identifier { "); + + builder.append("mDeviceId: "); + builder.append(mDeviceId); + builder.append(", "); + + builder.append("mStorageId: "); + builder.append(mStorageId); + builder.append(", "); + + builder.append("mObjectHandle: "); + builder.append(mObjectHandle); + builder.append(", "); + + builder.append("mDocumentId: "); + builder.append(mDocumentId); + builder.append(", "); + + builder.append("mDocumentType: "); + builder.append(mDocumentType); + builder.append(" }"); + return builder.toString(); + } } diff --git a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java index 20abf2eab6aca..cc7aefc8ad4c8 100644 --- a/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java +++ b/packages/MtpDocumentsProvider/src/com/android/mtp/MtpDocumentsProvider.java @@ -58,6 +58,8 @@ public class MtpDocumentsProvider extends DocumentsProvider { Document.COLUMN_FLAGS, Document.COLUMN_SIZE, }; + static final boolean DEBUG = true; + private final Object mDeviceListLock = new Object(); private static MtpDocumentsProvider sSingleton; @@ -151,6 +153,9 @@ public class MtpDocumentsProvider extends DocumentsProvider { @Override public Cursor queryChildDocuments(String parentDocumentId, String[] projection, String sortOrder) throws FileNotFoundException { + if (DEBUG) { + Log.d(TAG, "queryChildDocuments: " + parentDocumentId); + } if (projection == null) { projection = MtpDocumentsProvider.DEFAULT_DOCUMENT_PROJECTION; } @@ -298,6 +303,9 @@ public class MtpDocumentsProvider extends DocumentsProvider { if (mDeviceToolkits.containsKey(deviceId)) { return; } + if (DEBUG) { + Log.d(TAG, "Open device " + deviceId); + } mMtpManager.openDevice(deviceId); mDeviceToolkits.put( deviceId, new DeviceToolkit(mMtpManager, mResolver, mDatabase)); @@ -384,6 +392,9 @@ public class MtpDocumentsProvider extends DocumentsProvider { if (!mDeviceToolkits.containsKey(deviceId)) { return; } + if (DEBUG) { + Log.d(TAG, "Close device " + deviceId); + } getDeviceToolkit(deviceId).mDocumentLoader.clearTasks(); mDeviceToolkits.remove(deviceId); mMtpManager.closeDevice(deviceId);