diff options
author | Mike Lockwood <lockwood@android.com> | 2011-01-18 11:06:19 -0800 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2011-01-18 11:07:11 -0800 |
commit | 7a0bd17bceaf3efc3732e30c538fae420d3b742c (patch) | |
tree | 5a9753d5a4ec3491d0a63d5f556d92f106be7070 /media/mtp | |
parent | 8c05b54f237879c48796eadbe6c8c4b17ce5f743 (diff) | |
download | frameworks_base-7a0bd17bceaf3efc3732e30c538fae420d3b742c.zip frameworks_base-7a0bd17bceaf3efc3732e30c538fae420d3b742c.tar.gz frameworks_base-7a0bd17bceaf3efc3732e30c538fae420d3b742c.tar.bz2 |
MTP: Fix problems with modification dates for folders and non-media files
Also removed an unnecessary parameter to MtpDatabase.endSendobject()
BUG: 3352142
Change-Id: I6fd812dcba4814956bc8bc1cbd6bd5c868197790
Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'media/mtp')
-rw-r--r-- | media/mtp/MtpDatabase.h | 1 | ||||
-rw-r--r-- | media/mtp/MtpServer.cpp | 13 |
2 files changed, 4 insertions, 10 deletions
diff --git a/media/mtp/MtpDatabase.h b/media/mtp/MtpDatabase.h index 6dcb931..4d9a1ae 100644 --- a/media/mtp/MtpDatabase.h +++ b/media/mtp/MtpDatabase.h @@ -42,7 +42,6 @@ public: virtual void endSendObject(const char* path, MtpObjectHandle handle, MtpObjectFormat format, - int64_t size, bool succeeded) = 0; virtual MtpObjectHandleList* getObjectList(MtpStorageID storageID, diff --git a/media/mtp/MtpServer.cpp b/media/mtp/MtpServer.cpp index 236cd0a..b1bd145 100644 --- a/media/mtp/MtpServer.cpp +++ b/media/mtp/MtpServer.cpp @@ -700,6 +700,9 @@ MtpResponseCode MtpServer::doSendObjectInfo() { if (ret && ret != -EEXIST) return MTP_RESPONSE_GENERAL_ERROR; chown((const char *)path, getuid(), mFileGroup); + + // SendObject does not get sent for directories, so call endSendObject here instead + mDatabase->endSendObject(path, handle, MTP_FORMAT_ASSOCIATION, MTP_RESPONSE_OK); } else { mSendObjectFilePath = path; // save the handle for the SendObject call, which should follow @@ -718,7 +721,6 @@ MtpResponseCode MtpServer::doSendObject() { MtpResponseCode result = MTP_RESPONSE_OK; mode_t mask; int ret; - uint64_t actualSize = -1; if (mSendObjectHandle == kInvalidObjectHandle) { LOGE("Expected SendObjectInfo before SendObject"); @@ -761,18 +763,11 @@ MtpResponseCode MtpServer::doSendObject() { result = MTP_RESPONSE_TRANSACTION_CANCELLED; else result = MTP_RESPONSE_GENERAL_ERROR; - } else if (mSendObjectFileSize == 0xFFFFFFFF) { - // actual size is likely > 4 gig so stat the file to compute actual length - struct stat s; - if (lstat(mSendObjectFilePath, &s) == 0) { - actualSize = s.st_size; - LOGD("actualSize: %lld\n", actualSize); - } } done: mDatabase->endSendObject(mSendObjectFilePath, mSendObjectHandle, mSendObjectFormat, - actualSize, result == MTP_RESPONSE_OK); + result == MTP_RESPONSE_OK); mSendObjectHandle = kInvalidObjectHandle; mSendObjectFormat = 0; return result; |