diff options
author | Mike Lockwood <lockwood@android.com> | 2010-07-26 20:35:21 -0400 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2010-07-26 20:36:32 -0400 |
commit | f78b26a572e3ba5d47009f3a810a15e252b5503c (patch) | |
tree | f65407f6355588904b318684abf5e0d1a05d59e4 /media/mtp/MtpCursor.cpp | |
parent | 86187098ce4bf14326493edb95e851078191cbe9 (diff) | |
download | frameworks_base-f78b26a572e3ba5d47009f3a810a15e252b5503c.zip frameworks_base-f78b26a572e3ba5d47009f3a810a15e252b5503c.tar.gz frameworks_base-f78b26a572e3ba5d47009f3a810a15e252b5503c.tar.bz2 |
MTP: Don't request thumbnails for folder objects in MtpCursor
Change-Id: I75a0a834ab746bed0a35883539c8dbc104789157
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/mtp/MtpCursor.cpp')
-rw-r--r-- | media/mtp/MtpCursor.cpp | 30 |
1 files changed, 18 insertions, 12 deletions
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 @@ bool MtpCursor::fillObject(CursorWindow* window, MtpDevice* device, 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 @@ bool MtpCursor::putString(CursorWindow* window, const char* text, int row, int c 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); - - 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; + 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); + 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 |