24 Commits

Author SHA1 Message Date
Mike Lockwood
7d7fb63071 MTP: Add support for multiple properties in GetObjectPropList command
Change-Id: Ib469a6c8141937aaa3e811345056195117abb4b2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-02 08:16:12 -05:00
Mike Lockwood
5b19af05f2 MTP: Use DateTime form in GetObjectPropDesc for date/time properties.
Change-Id: I5a3c0b07a9f2958b86947256606e6a824dbe93a6
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-23 18:38:55 -05:00
Mike Lockwood
413577d860 MTP: Fixes to allow file transfers > 4 gigabytes
BUG: 3198248

Change-Id: I6f11c79a19d7bdd63718a7370939124b1262d221
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-17 16:43:24 -05:00
Mike Lockwood
3159991e58 MTP: Fix time values returned via GetObjectPropValue and GetObjectPropList
Change-Id: If9bb8b4b19ed6c8d57736e5d1af948fcc946af0e
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-15 14:10:04 -05:00
Mike Lockwood
e2ad6ec171 MTP: Partial implementation of the GetObjectPropList command
In this initial implementation we only support fetching one property at a time.
Support depth = 0 (single object) or depth = 1 (all objects in a directory)
Reimplemented GetObjectPropValue on top of GetObjectPropList, since the former
is a special case of the latter.

Change-Id: Ia76ee61741d6ee3902b5c5d9fc094cf86dfaf650
Signed-off-by: Mike Lockwood <lockwood@google.com>
2010-11-15 11:46:51 -05:00
Mike Lockwood
6a6a3aff17 MTP: allow renaming directories
Change-Id: I90849e7924f33a2f39dae400968f2eda64710beb
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-12 14:19:51 -04:00
Mike Lockwood
5ebac83e20 MTP: Add support for renaming files
Change-Id: I679d674eb4dae88f60165ab2850cc20eec7ceee3
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-12 12:41:58 -04:00
Mike Lockwood
8839471f4d MTP: Fix local reference leaks.
We cannot rely on the VM automatically freeing local references for us
in a timely manner in JNI code that is not called directly from Java.

Change-Id: I6ee8a9a97cb557b9d3b2ace4e4d20467b436fb9c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-27 13:16:53 -04:00
Mike Lockwood
ae078f7dac MTP: Implement extra object properties for audio, video and image files
Read-only support at this point.

BUG: 2869730

Change-Id: I424ba760c8f5f4af394bd65276f19438fa6da6cb
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-27 13:16:53 -04:00
Mike Lockwood
a2a2128423 MTP: Include current property value in GetDevicePropDesc
Change-Id: I05125c79ad58b6f75734fcedcc8af9b689fa9ff3
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-25 21:21:05 -04:00
Mike Lockwood
d3bfecb0c9 MTP: Reenable GetObjectPropValue and SetObjectPropValue
Windows no longer chokes now that we implement the minimum set of properties

BUG: 2869730

Change-Id: Ie8bd9107610b9b38f060ad8a2f05334a3b4aff9b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-23 23:04:28 -04:00
Mike Lockwood
59e3f0db08 MTP: Implement support for getting/setting device properties
Added support for the "device friendly name" and "synchonization partner"
properties, which are required by Microsoft.

Change-Id: Ic0443333d75f7d98a2d902a790b9d505a56d4eef
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-02 14:59:26 -04:00
Mike Lockwood
2837eefc54 MTP: Send an Intent after an MTP session that resulted in media database modifications
Change-Id: Ib2796e9155350c67769502935a73cf98d6ae9c08
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-31 16:25:12 -04:00
Mike Lockwood
828d19dd96 MTP: work in progress on expanded property support
GetObjectPropValue and SetObjectPropValue are disabled until I figure out
why Windows doesn't like what I have done.

Change-Id: I74e945ef3ea031f6d46f4ebaa8df815da0a5c3ed
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-25 18:42:22 -04:00
Mike Lockwood
0a7fa0a868 MTP: Check and clear exceptions after calling into Java in MtpDatabase
Change-Id: I805858c66fe57208c06aa624d16b72966555e005
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-24 11:25:28 -04:00
Mike Lockwood
4b322ce4fb MTP: Push queries for supported formats and properties up to Java.
Change-Id: I4f117090340e3916afda3d194521a6092a672ddc
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-10 09:00:30 -04:00
Mike Lockwood
c642e8a44c MTP: Fix some typos
Change-Id: Ib31708c3a925e3c0ab8eea6922ab09e02b740936
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-09 14:17:52 -04:00
Mike Lockwood
9a2046fb5c MTP: Add support for syncing MTP playlists
MTP playlists now correspond to playlists in the media provider
(like those created by the Music app).

Change-Id: I085cb3cff003037ad62f0e297fb0cfd3047cb3a2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-03 15:36:22 -04:00
Mike Lockwood
7a047c8986 MTP: Implement GetNumObjects
Change-Id: Iccc3a445f9a1eab7bb76eddd567c6a3a8f155b2b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-02 10:52:20 -04:00
Mike Lockwood
59c777a24a Clean up MtpDatabase API.
Return MTP response codes instead of booleans for success or failure.
Remove some unused code.

Change-Id: I82ce80a4d7779233264e3caf139ebd0cece12f5c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-08-02 10:37:41 -04:00
Mike Lockwood
ff164a7d6f Exclude MTP implementation from simulator build
Change-Id: I93364c74c26ba6e2bf6b08f1bd82802b966c8dfb
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-15 15:27:38 -04:00
Mike Lockwood
d815f79766 Integrate host to device file transfer with the media provider.
MTP file transfers happen in two stages.  The SendObjectInfo command sends
some information about the file and reserves an ObjectHandle for the new file.
The file transfer is then performed using the SendObject command.

To support this in the media provider, MtpDatabase.beginSendObject receives
the information from SendObjectInfo and creates an row for it in the MTP objects
table for the new file.  After the file transfer has completed, then
MtpDatabase.endSendObject is called.  In endSendObject, we run the media scanner
on the new file, which will add a row to the images, audio, video
or audio playlist table.

To avoid the media scanner creating a second row for the file in the MTP objects
table, we pass the ObjectHandle created in beginSendObject to the media scanner,
which then passes it to the media provider via the content values when it
performs its insert.

Change-Id: I1ebcc63d6bd4404b0d3a93c703a9d3c097381d3a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-12 14:01:22 -04:00
Mike Lockwood
c5c7853b63 Remove some scafolding and test code that is no longer worth maintaining.
Change-Id: I9ee62d2463d8df1246a84774e8ac7e674778279a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-09 11:07:55 -04:00
Mike Lockwood
d21eac9c70 MTP: Use media provider database to implement MTP device support.
Uses a new "MTP objects" table in the media provider to support basic
enumeration of the external storage file system.
Support for accessing audio, video and image metadata in the existing
media provider tables will be added in a later commit.

The C++ MtpDatabase class is now abstract, to support a proxy subclass that
calls through JNI to the Java MtpDatabase class in the media provider.

Change-Id: I90f0db5f3acc5d35ae78c27a8507edff16d14305
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-08 16:21:09 -04:00