summaryrefslogtreecommitdiffstats
path: root/media/mtp
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
commit2b6c4a26499693ae3638e3df6d4255b13e34ee29 (patch)
treeb77206b8eb780f9fb058de492e9b06d68c60546e /media/mtp
parent80a82ea7eb05c0b807a3b0a76e1b7137ea059189 (diff)
downloadframeworks_av-2b6c4a26499693ae3638e3df6d4255b13e34ee29.zip
frameworks_av-2b6c4a26499693ae3638e3df6d4255b13e34ee29.tar.gz
frameworks_av-2b6c4a26499693ae3638e3df6d4255b13e34ee29.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')
-rw-r--r--media/mtp/MtpCursor.cpp30
-rw-r--r--media/mtp/MtpCursor.h2
2 files changed, 19 insertions, 13 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
diff --git a/media/mtp/MtpCursor.h b/media/mtp/MtpCursor.h
index d51c052..3f84753 100644
--- a/media/mtp/MtpCursor.h
+++ b/media/mtp/MtpCursor.h
@@ -68,7 +68,7 @@ private:
bool prepareRow(CursorWindow* window);
bool putLong(CursorWindow* window, int value, int row, int column);
bool putString(CursorWindow* window, const char* text, int row, int column);
- bool putThumbnail(CursorWindow* window, int objectID, int row, int column);
+ bool putThumbnail(CursorWindow* window, int objectID, int format, int row, int column);
};
}; // namespace android