summaryrefslogtreecommitdiffstats
path: root/media/mtp/MtpCursor.cpp
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2010-07-26 20:35:21 -0400
committerMike Lockwood <lockwood@android.com>2010-07-26 20:36:32 -0400
commitf78b26a572e3ba5d47009f3a810a15e252b5503c (patch)
treef65407f6355588904b318684abf5e0d1a05d59e4 /media/mtp/MtpCursor.cpp
parent86187098ce4bf14326493edb95e851078191cbe9 (diff)
downloadframeworks_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.cpp30
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