MTP: Don't request thumbnails for folder objects in MtpCursor

Change-Id: I75a0a834ab746bed0a35883539c8dbc104789157
Signed-off-by: Mike Lockwood <lockwood@android.com>
diff --git a/media/mtp/MtpCursor.cpp b/media/mtp/MtpCursor.cpp
index 5b6672a..91201c3 100644
--- a/media/mtp/MtpCursor.cpp
+++ b/media/mtp/MtpCursor.cpp
@@ -367,7 +367,7 @@
                     goto fail;
                  break;
             case OBJECT_THUMB:
-                if (!putThumbnail(window, objectID, row, i))
+                if (!putThumbnail(window, objectID, objectInfo->mFormat, row, i))
                     goto fail;
                 break;
             default:
@@ -427,19 +427,25 @@
     return true;
 }
 
-bool MtpCursor::putThumbnail(CursorWindow* window, int objectID, int row, int column) {
+bool MtpCursor::putThumbnail(CursorWindow* window, int objectID, int format, int row, int column) {
     MtpDevice* device = mClient->getDevice(mDeviceID);
-    int size;
-    void* thumbnail = device->getThumbnail(objectID, size);
+    void* thumbnail;
+    int size, offset;
+    if (format == MTP_FORMAT_ASSOCIATION) {
+        thumbnail = NULL;
+        size = offset = 0;
+    } else {
+        thumbnail = device->getThumbnail(objectID, size);
 
-    LOGD("putThumbnail: %p, size: %d\n", thumbnail, size);
-    int offset = window->alloc(size);
-    if (!offset) {
-        window->freeLastRow();
-        LOGE("Failed allocating %u bytes for thumbnail", size);
-        return false;
+        LOGD("putThumbnail: %p, size: %d\n", thumbnail, size);
+        offset = window->alloc(size);
+        if (!offset) {
+            window->freeLastRow();
+            LOGE("Failed allocating %u bytes for thumbnail", size);
+            return false;
+        }
     }
-    if (size > 0)
+    if (thumbnail)
         window->copyIn(offset, (const uint8_t*)thumbnail, size);
 
     // This must be updated after the call to alloc(), since that