Commit Graph

76 Commits

Author SHA1 Message Date
Jerry Zhang
d9f3005fc3 Fix Unicode handling.
Change type usages based on changes
in libmtp.

Bug: 70546563
Test: Mtp works, tests pass
Change-Id: Id38c30e3a1311328ec2293792ae0866da2cf90be
2018-03-27 17:18:35 -07:00
Chong Zhang
63f819203d heif: fix Exif extraction in mtp database
bug: 73978990

Change-Id: I389920a2788f7fc0472691bef271b770d2a82184
2018-03-16 17:07:28 -07:00
Jerry Zhang
f9c5c2574d Add MtpStorageManager for monitoring filesystem events
MtpStorageManager keeps track of file information and
send notifications for new files. MtpDatabase now uses
this instead of MediaProvider for getting object information,
although some operations are still reflected into MP.

Since MtpStorageManager handles storage ids, remove
that field from StorageVolume and VolumeInfo.

Clean up a lot of the jni code for MtpDatabase.

Bug: 63143623
Test: Test every MtpOperation in a variety of situations on Linux and
Windows. Also use the shell to manipulate files. Verify that the cache
is consistent throughout, and the operations behave as expected. Verify
files created by the shell appear.
Test: adb shell am instrument -w android.mtp /android.support.test.runner.AndroidJUnitRunner
Change-Id: Id4ea810047b0c323399cd833047733e5daafb30a
2017-12-15 00:59:41 +00:00
kyle_tso
baa1210d25 Merge "Support scanDirectories with JNI callback function" am: 5747c2b81c
am: 34be883ebd

Change-Id: I57a54d520cd953c7b99e6815e7894421166368d4
2017-12-06 03:42:11 +00:00
kyle_tso
34be883ebd Merge "Support scanDirectories with JNI callback function"
am: 5747c2b81c

Change-Id: I8996fb568c4024ccf76a5643049de8cee6f811c6
2017-12-06 03:22:30 +00:00
kyle_tso
b4aa69fd11 Support scanDirectories with JNI callback function
MtpServer needs this function to update the database for directory
copy operation.

Test: Call this function from MtpServer and database is updated in
directory copy scenario.

Change-Id: I9b316f4dbf7f35922292c33ab02f9efebc867aa8
Signed-off-by: kyle_tso <kyle_tso@htc.com>
2017-11-22 20:30:42 +08:00
Xin Li
220871a697 Merge commit '98e12851336b7db16e583f9afac63ecc97465980' from
oc-mr1-dev-plus-aosp-without-vendor into stage-aosp-master.

Change-Id: Ia7b8da4a00d215160e4a4fa40f6044208d1297b7
Merged-In: I19846d2a3ee27aecbae2367a74ee49082eea154d
2017-11-14 12:31:11 -08:00
Chong Zhang
c4ac607916 Merge "mtp: fix double free of thumbnail data" into nyc-dev am: 914bc14e82 am: f9e16c9899 am: 396487f5aa am: 5330335288 am: db258ebba8 am: e3ac25eb0c am: bd7101937a
am: b48acd86c0

Change-Id: I5aba8558427da76da5bbe331c207f04415990ac1
2017-10-31 00:55:23 +00:00
Chong Zhang
b48acd86c0 Merge "mtp: fix double free of thumbnail data" into nyc-dev am: 914bc14e82 am: f9e16c9899 am: 396487f5aa am: 5330335288 am: db258ebba8 am: e3ac25eb0c
am: bd7101937a

Change-Id: I78a26c3abfb72e9b873b719506f869df0aa87da1
2017-10-31 00:41:00 +00:00
Chong Zhang
e3ac25eb0c Merge "mtp: fix double free of thumbnail data" into nyc-dev am: 914bc14e82 am: f9e16c9899 am: 396487f5aa am: 5330335288
am: db258ebba8

Change-Id: Ic9821f05d30a57fad1567e834804cec6ff5dca97
2017-10-31 00:11:32 +00:00
Chong Zhang
e6b98532ee mtp: fix double free of thumbnail data
bug: 67864232
Change-Id: I6eb51be839df12317273830521c70a4ed80f9496
2017-10-24 17:03:43 -07:00
Jerry Zhang
3b997d0773 Merge "Add storageId to moveObjects" am: 1f4f6d2a18 am: 18abf57e99
am: 59ff05a59f

Change-Id: I024be0c75e20e58152dbe0c81e5548d70f06a925
2017-10-19 18:36:22 +00:00
Jerry Zhang
def7b19300 Add storageId to moveObjects
When moving between different storages, the storageId
must be changed as well.

Bug: 67028892
Test: Move between storages with virtual sdcard.
Change-Id: Ie82aa8d53686bfffb7c26b46a49524a00f2f0214
2017-10-17 15:27:03 -07:00
Jerry Zhang
3a13ab1fd3 Merge "Add moveObject method to change object's path and parent." am: 33a200e572 am: 0f09ac317d
am: f9696617bd

Change-Id: Ia6ba6d0cf89879914894d35a0dbf110d905966ac
2017-10-03 00:33:02 +00:00
Jerry Zhang
952558d4e5 Add moveObject method to change object's path and parent.
This is needed to implement the MTP MOVE_OBJECT operation.

Bug: 66679910
Test: Move objects and folders, verify mediastore is consistent
Change-Id: I2f4f0c43134fb3ff82745166c051712cc1736b7f
2017-10-02 11:48:38 -07:00
Chong Zhang
6e18ccee2a heif: add new file and mime types to MediaScanner -- DO NOT MERGE
bug: 64077740
Change-Id: I6d36c2394a5ae527026c98c83786009e70b20958
2017-08-19 00:05:06 +00:00
Steven Moreland
2279b25342 frameworks/base: use proper nativehelper headers
libnativehelper exports headers under nativehelper. These were
available before incorrectly as global headers in order to give
access to jni.h.

Test: modules using frameworks/base find headers
Bug: 63762847
Change-Id: I0f9f231acdebe460f279135462f43d3e32eff64d
2017-07-19 10:06:40 -07:00
Jerry Zhang
13bb2f4dda Add support for MTP perceived device type property.
Property value is based on the particular device.
This allows some hosts (windows) to apply a device
specific icon in file explorer.

Test: Connect device to windows, verify new icon
Bug: 25360563
Change-Id: I9d3468ca8c01a6f0d42ad543aef11ed265b6c825
2017-01-19 11:26:35 -08:00
Insun Kang
b3f8a968e2 Merge "ExifInterface: Fix a bug to return only a JPEG-compressed thumbnail" into nyc-dev
am: 801d416

* commit '801d4161dd9e872bec73d855d21d030ba39a8b91':
  ExifInterface: Fix a bug to return only a JPEG-compressed thumbnail

Change-Id: I4ab59b2b7ced0cf9449fdc780692cfcb707d8df4
2016-04-20 21:11:41 +00:00
Insun Kang
82c2ce1d16 ExifInterface: Fix a bug to return only a JPEG-compressed thumbnail
Bug: 26923978
Change-Id: I929802ae7ff878a80a43058d3c6fa922c706edf6
2016-04-19 17:56:10 +09:00
Jaesung Chung
2129b9cc17 Merge "ExifInterface: return only a JPEG-compressed thumbnail of RAW images" into nyc-dev
am: 02f9e23

* commit '02f9e23525bd3ae97528041bc0eaf25d43d8fc53':
  ExifInterface: return only a JPEG-compressed thumbnail of RAW images

Change-Id: If826f5f7612e06d94c0cf17505bf468851d96faa
2016-04-15 00:29:09 +00:00
Jaesung Chung
742e89f67d ExifInterface: return only a JPEG-compressed thumbnail of RAW images
Bug: 26923978
Change-Id: I120723c9e28a24d6fb3b7034892e0196484ee5e4
2016-04-14 01:54:45 +09:00
Jaesung Chung
288d70f79b Merge "Fix build" into nyc-dev
am: 5905bf7

* commit '5905bf738c175edfc63bf2e5ee28a43d83977e2d':
  Fix build

Change-Id: Icabf911c0eb4a96e88032312fd6fb6785b043932
2016-04-06 12:55:34 +00:00
Jaesung Chung
fd3446e0aa Fix build
Change-Id: I38aa2f70fef3cb5b4a6fe42a3e4aa8e0a16e6fe0
2016-04-06 21:44:13 +09:00
Marco Nelissen
7a83ee9a32 Merge "Fix MTP_TYPE_UINT128 data conversion issue" am: ba23e45
am: 287dfa1

* commit '287dfa10cd6d5c6eb7cb39e20e1b6532c320927c':
  Fix MTP_TYPE_UINT128 data conversion issue

Change-Id: I72aa6c2bcd009a2e0607832c44dc4b96c5da6b1f
2016-04-05 18:11:26 +00:00
Wanwu Peng
8937f1aa8b Fix MTP_TYPE_UINT128 data conversion issue
If type is MTP_TYPE_UINT128, use MtpDataPacket.putUInt128()
not MtpDataPacket.putInt128() to write data to the packet.

Change-Id: Icb9994e24ac216f3bb07d0a2b3cd7ccf3f8c6f3f
2016-03-30 16:32:11 +02:00
Daichi Hirono
486ad2e73c Fix argument type in MtpDatabase#getObjectPropertyValue.
In MTP code, we use jint for ID (e.g. object handle) and code (property
code). But getObjectPropertyValue takes jlong and it causes missing
property values in Java code. Previously we passed the long value to
Map<Integer, MtpPropertyGroup>#get(Integer) and the compiler somehow
accepted the code. However it actually takes Long at runtime, so the
properties are never found.

BUG=26437284
Change-Id: I79defd325ea5d20c4dce84d891d984e24abcacc5
2016-03-01 16:49:08 +09:00
Jaesung Chung
8409c0691f Enable reading a thumbnail from RAW image files in MtpDatabase
Also introduce new supported RAW image file formats, PEF and SRW.

RAW image file formats are not defined in PTP 1.2 specification except
for DNG. They are mostly built on top of TIFF or TIFF/EP. (Fuji's RAF
is the exception).

In this CL, image file formats are classified newly as below:

DNG: dng
TIFF: cr2, nrw, arw, rw2, orf, pef, srw
TIFF/EP: nef
Unknown Image Formats(FORMAT_DEFINED): wbmap, webp, raf

I referred to the following documents for defining MTP formats of RAW
images:

* http://www.rags-int-inc.com/PhotoTechStuff/RawStandards/RawSummary.html
* https://en.wikipedia.org/wiki/Raw_image_format

Bug: 26552863, Bug: 26626825
Change-Id: Ia218f6320c4c1ff051a23ca0060ceac46134b0d7
2016-01-27 18:40:36 +09:00
Daniel Micay
76f6a86de2 constify JNINativeMethod function pointer tables
Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
2015-09-22 17:10:35 -04:00
Mike Lockwood
2d1e078ac4 am 5ac22aa6: am 2b144a16: Merge "MTP: Fix partial implementation of 5 new audio specific properties" into lmp-mr1-dev
* commit '5ac22aa60f773917981f42e64fbc28615871fd3e':
  MTP: Fix partial implementation of 5 new audio specific properties
2015-01-26 19:10:44 +00:00
Mike Lockwood
7182774810 MTP: Fix partial implementation of 5 new audio specific properties
In change Ic5b3fb75309893caae1a4f4b56068a543847f1f7, we added partial
support for the MTP properties:

MTP_PROPERTY_AUDIO_WAVE_CODE,
MTP_PROPERTY_BITRATE_TYPE
MTP_PROPERTY_AUDIO_BITRATE
MTP_PROPERTY_NUMBER_OF_CHANNELS
MTP_PROPERTY_SAMPLE_RATE

However we were not returning any values for these properties in the result
of the MTP GetObjectPropList command. Strangely, this triggers a nasty bug
in Windows 7 that results in data loss.  When copying a directory containing
several MP3 files from one location on the device to another, Windows will
copy only some of the files to the new location, but delete all of the originals.
Finishing the implementation of these new object properties for some unknown
reason stops this bad behavior in Windows 7.

Bug: 19018427
Change-Id: I5fd3b91a89b31827d3100686445cef6795fe0f3f
2015-01-23 10:58:38 -08:00
chh
d7572b84ef am 3ec380d3: am fc545733: Merge "Remove unused variables and functions, don\'t warn about unused parameters"
* commit '3ec380d365cbe5fac23ff19897512cf492a7a8a4':
  Remove unused variables and functions, don't warn about unused parameters
2014-11-25 19:04:05 +00:00
Bernhard Rosenkränzer
4048a4bcb1 Remove unused variables and functions, don't warn about unused parameters
Remove unused variables and static functions clang complains about,
disable warnings about unused parameters (needed for clang and for gcc
with -Wextra enabled)

Change-Id: I76a22cd0158b3c7375c54e3d4d15bc1ac448591e
Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
2014-11-23 22:24:32 +01:00
Dan Albert
582bdf9a59 am d8c169fe: am 0c437fd3: Merge "Add appropriate casts for char16_t."
* commit 'd8c169fedf883491e46b354484909694fd52cfaf':
  Add appropriate casts for char16_t.
2014-11-20 23:00:56 +00:00
Dan Albert
6698749dd4 Add appropriate casts for char16_t.
C++11 defines a real char16_t, which is not implicitly convertible to
uint16_t (and by extension jchar). Add casts as needed.

Bug: 18300613
Change-Id: I00752002ef2e938bdb57f70947e8fd53ec103293
2014-11-20 11:47:40 -08:00
Mike Lockwood
b8cb45fddf am 01816640: am eb205b88: Merge "MTP: Update JNI for new packet getters" into lmp-mr1-dev
* commit '0181664081db2149aa465332c33c5cb413a4348c':
  MTP: Update JNI for new packet getters
2014-11-13 18:01:55 +00:00
Mike Lockwood
9c803fa526 MTP: Update JNI for new packet getters
Bug:18113092
Change-Id: I5d7473af1b57235fbc078c297a309e4a301c9fbd
2014-11-13 09:40:42 -08:00
Andreas Gampe
cba06c2272 resolved conflicts for merge of 6957369d to lmp-mr1-dev-plus-aosp
Change-Id: Ie3bd0e24c69c0c7ae500b8eb4a1198650e993a19
2014-11-10 19:41:52 -08:00
Andreas Gampe
5a15d0d31b Frameworks/base: Wall Werror in media/jni
Turn on -Wall -Werror in media/jni. Fix warnings.

Change-Id: I9da54ad379d8172ee535b52ee2b0637a2533f4e3
2014-11-10 18:19:40 -08:00
Mike Lockwood
63ffd78aaa MtpDatabase: Increase size of string buffer in JNI code
Fixes problems handling files that have full path length > 255 characters

Bug: 17383223
Change-Id: I2a1ebedee8dd86b3060f14c2d1af636fc9bc95cb
2014-10-03 17:54:18 +00:00
Mike Lockwood
9dc96cf0fc am a0183b02: am 8868d129: am 1c725866: Merge "MtpDatabase JNI: Fixed incorrect method name in ALOGE."
* commit 'a0183b02e4c6f53587519b445a546192b4a20146':
  MtpDatabase JNI: Fixed incorrect method name in ALOGE.
2014-06-02 18:32:26 +00:00
Mike Lockwood
307a37c2af am 1ac54ec6: am 750e78bb: am 27eb205e: Merge "MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue()."
* commit '1ac54ec69bfcda2638b05c7daa4300ec5749e7b8':
  MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue().
2014-06-02 18:32:20 +00:00
Mike Lockwood
a0183b02e4 am 8868d129: am 1c725866: Merge "MtpDatabase JNI: Fixed incorrect method name in ALOGE."
* commit '8868d1290afd96997fef671f4a7a4c7bbf94fa1a':
  MtpDatabase JNI: Fixed incorrect method name in ALOGE.
2014-06-02 18:28:51 +00:00
Mike Lockwood
1ac54ec69b am 750e78bb: am 27eb205e: Merge "MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue()."
* commit '750e78bb7626e2e0d5c8feed4a6e4fbe7fe9b5da':
  MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue().
2014-06-02 18:28:42 +00:00
Mike Lockwood
8868d1290a am 1c725866: Merge "MtpDatabase JNI: Fixed incorrect method name in ALOGE."
* commit '1c725866da02c3e1f62fb416ea3450caed406f2a':
  MtpDatabase JNI: Fixed incorrect method name in ALOGE.
2014-06-02 18:25:35 +00:00
Mike Lockwood
750e78bb76 am 27eb205e: Merge "MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue()."
* commit '27eb205e21e7715764084085f382d690e0406c63':
  MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue().
2014-06-02 18:25:28 +00:00
Martin Blumenstingl
986b46d179 MtpDatabase JNI: Fixed incorrect method name in ALOGE.
Change-Id: I46688cf79f1e7554b28162df2347c4dcb571b8a9
2014-05-31 16:17:11 +02:00
Martin Blumenstingl
17a24c58bb MtpDatabase JNI: Fixed a memory-leak in getObjectPropertyValue().
The jstring "stringValue" was not never freed.
In the case where "str" was NULL the whole cleanup part (see "goto out")
was even skipped.
This patch makes getObjectPropertyValue() behave like
getObjectPropertyList().

Change-Id: I5a7ec3611036f5253a054b00064999bcd1d1c29e
2014-05-31 16:17:11 +02:00
Bill Yi
293513a59d Merge commit '0b62467b142b61ee1e449ba958ba37dfd961ef56' into HEAD 2014-04-29 16:07:29 -07:00
Mike Lockwood
3fafb4ebf2 am f82c83a8: am eaabdce0: am ca1f8f6d: am c4367721: MTP: Fix getThumbnail
* commit 'f82c83a8debb468027921e4b479bf80fe7f04ee1':
  MTP: Fix getThumbnail
2014-04-21 16:47:41 +00:00