71 Commits

Author SHA1 Message Date
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
Marco Nelissen
c1fda12823 Also consider secondary storage when verifying paths
Bug: 17673184
Bug: 17982103
Change-Id: Ief14c7776b02983191c46774fa7e4c76380de58d
2014-10-15 15:36:50 -07:00
Marco Nelissen
5f411696a6 Validate MTP path
Bug: 17673184
Change-Id: I51a64f065d9b3609557af81e596ebeb8720ab6c5
2014-09-26 16:07:49 -07:00
Marco Nelissen
1632fae376 Make setServer() safe to call multiple times
This makes it safe to call setServer() multiple times with the same
server, different servers, or null.

b/13622801

Change-Id: Id04440df720f830e67106eb543653ace42430d97
2014-03-27 13:25:14 -07:00
Mike Lockwood
92b53bc2dd MTP: Add support for some audio specific object properties
This stops Windows 7 from putting up the
"Your device might not be able to play or view this file" dialog
when copying MP3 files to the device.

Bug: 3195286
Change-Id: Ic5b3fb75309893caae1a4f4b56068a543847f1f7
2014-03-13 15:15:26 -07:00
Mike Lockwood
56c85244b9 MTP: Add support for battery level device property
Bug: 7342482

Change-Id: I810e55fe9695e2206816f57334ad14f65e9c641d
2014-03-12 08:46:47 -07:00
Narayan Kamath
c975437ef3 am 1e3395c7: am 105b545e: am 0dce19ca: am 79ceb53a: am c58abeea: Merge "AArch64: Use long for pointers in MTP classes"
* commit '1e3395c7378a7dd293a2e8a8ac8fbf239adbad0c':
  AArch64: Use long for pointers in MTP classes
2014-01-07 13:10:19 +00:00
Ashok Bhat
e2e59326f1 AArch64: Use long for pointers in MTP classes
For storing pointers, long is used in MTP classes,
as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: I67805547251722e7b77611d47d0bb632a64d3e6d
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-07 12:52:57 +00:00
John Spurlock
6090995951 Remove unused imports from frameworks/base.
Change-Id: Ia1f99bd2c1105b0b0f70aa614f1f4a67b2840906
2013-11-20 11:31:47 -05:00
Marco Nelissen
e8acd367ac Merge "When deleting a db file, Context.deleteDatabase() has to be called instead of File.delete() to guarantee all db related files like journal, wal, shm, etc are deleted together." 2013-08-07 15:39:39 +00:00
jangwon.lee
3ed02535fd When deleting a db file,
Context.deleteDatabase() has to be called instead of File.delete()
to guarantee all db related files
like journal, wal, shm, etc are deleted together.

Signed-off-by: jangwon.lee<jangwon.lee@lge.com>

Change-Id: I3c3d7dfa13ffbe709ab7d8a5c7cfe6cfa2864fea
2013-07-31 07:18:25 +00:00
Mike Lockwood
1341f1eee3 MTP: Implement date created field in GetObjectInfo
Bug: 8293874

Change-Id: I3e50ea1049f63e2ed3a1f849fef74a2fbf206fe8
2013-04-01 10:54:22 -07:00
Amith Yamasani
6d2def71e0 am c28fde57: am 0b515aec: am 3cfca67b: Merge "Fix possible integer overflow in MtpStorage"
# By Henrik Engström
# Via Android Git Automerger (2) and others
* commit 'c28fde57f0c7762913615b16d651d4e7991d6175':
  Fix possible integer overflow in MtpStorage
2013-01-28 10:33:55 -08:00
Dianne Hackborn
35654b61e8 More work on App Ops service.
Implemented reading and writing state to retain information
across boots, API to retrieve state from it, improved location
manager interaction to monitor both coarse and fine access
and only note operations when location data is being delivered
back to app (not when it is just registering to get the data at
some time in the future).

Also implement tracking of read/write ops on contacts and the
call log.  This involved tweaking the content provider protocol
to pass over the name of the calling package, and some
infrastructure in the ContentProvider transport to note incoming
calls with the app ops service.  The contacts provider and call
log provider turn this on for themselves.

This also implements some of the mechanics of being able to ignore
incoming provider calls...  all that is left are some new APIs for
the real content provider implementation to be involved with
providing the correct behavior for query() (return an empty
cursor with the right columns) and insert() (need to figure out
what URI to return).

Change-Id: I36ebbcd63dee58264a480f3d3786891ca7cbdb4c
2013-01-16 12:11:01 -08:00
Henrik Engström
6393b07134 Fix possible integer overflow in MtpStorage
When converting the MB value MtpReserveSpace value to bytes there is a
possible integer overflow since 3 integer values are multiplied, even
though the result is stored in a long variable. This would be visible when
the value is more than 2 GB. This is solved by making the constants
longs instead of ints.

Change-Id: I799129f7076a6e331cece17b5c05aed210499648
2013-01-09 09:27:59 +01:00
Kenny Root
58ed5d748c am 768d9e1a: Merge "Correct executable bit for source files"
* commit '768d9e1a72ceee7d4a5f608776b87b62d6ce4a04':
  Correct executable bit for source files
2012-11-07 11:52:12 -08:00
Kenny Root
3a084af2e9 Correct executable bit for source files
Many media files and source code files were marked as executable in Git.
Remove those.

Also a shell script and python script were not marked as executable.

Change-Id: Ieb51bafb46c895a21d2e83696f5a901ba752b2c5
2012-11-07 10:27:31 -08:00
Mike Lockwood
465d72073c am ad23333f: am 945080b5: am 1e86994c: Merge "MtpData bmp format file can\'t recognize when copy bmp into DUT"
* commit 'ad23333f728471a7f2c49cd1c9575f1cea2503f6':
  MtpData bmp format file can't recognize when copy bmp into DUT
2012-09-18 11:01:32 -07:00
Mike Lockwood
f6f1661457 MtpDatabase: Use actual file size instead of media database size column
Fixes problems with file transfer from device to host that can occur
if the database size value is wrong.

Bug: 6954446

Change-Id: I03c3dd4b75267d1f4613f0b588c8899ded9a70be
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-09-12 15:50:59 -07:00
Mike Lockwood
58e6831ccb MtpDatabase: Fix typo affecting parent and format queries
Bug: 7114350

Change-Id: I80269cfcebf521ea13cae30c1c9bd477d76adbd1
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-09-11 10:49:34 -07:00
bo huang
240582eabe MtpData bmp format file can't recognize when copy bmp into DUT
add support for bmp format.

Change-Id: I67d4703b43cd32abad638bae57bbceb65b4be6de
Author: bo huang <bo.b.huang@intel.com>
Signed-off-by: bo huang <bo.b.huang@intel.com>
Signed-off-by: Wu, Hao <hao.wu@intel.com>
Singed-off-by: Shuo Gao <shuo.gao@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Author-tracking-BZ: 24555
2012-08-17 10:28:51 +08:00
bo huang
3b60dacb4e MtpStorage: correct the size of reserve space for MTP
According to description in frameworks/base/core/res/res/xml/storage_list.xml,
"mtpReserve: (integer) number of megabytes of storage MTP should reserve for free storage".
Mtpstorage class use it directly and doesn't change it to correct size in megabyes.
Mtp initor can not get correct storage information from android.

Change-Id: Icf59eb1eb478e67ea5990be96a9decb41aa55504
Signed-off-by: Bo Huang <bo.b.huang@intel.com>
Signed-off-by: Jack Ren<jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
2012-08-07 13:02:59 +08:00
Mike Lockwood
1e855d98aa MtpDatabase: Fix sqlite3 pattern matching for MTP directory deletes
Bug: 6684451

Change-Id: I90204550ccfcd1b7a5b1973bed2a88e934aae053
Signed-off-by: Mike Lockwood <lockwood@google.com>
2012-06-26 16:33:05 -07:00
Fabrice Di Meglio
0100625bb3 Merge "Fix bug #6522190 MountService should respond to configuration changes ("INTERNAL STORAGE" string should be translated dynamically)" into jb-dev 2012-05-24 10:42:23 -07:00
Fabrice Di Meglio
13fe2a5330 Fix bug #6522190 MountService should respond to configuration changes ("INTERNAL STORAGE" string should be translated dynamically)
- use an ID instead of a String for StorageVolume description
- use this ID for getting the correct localized version of the description string

Change-Id: I30f3080fce2c889be38bfdf9f5121dffcf8a99e8
2012-05-23 16:38:09 -07:00
Marco Nelissen
b4b847866f Handle _ and % in paths
When doing a "like" match on a path, add a second non-like constraint
so that sqlite wildcard characters don't match arbitrary other characters.
b/6501408

Change-Id: I21f9b1c2d8e7c7ef27c0ad5fe24c3e01cd67fb61
2012-05-22 16:30:34 -07:00
Marco Nelissen
f3a3b9ec9c Merge "Handle adding/removing/renaming nomedia paths" 2012-01-30 08:27:57 -08:00
Jeff Brown
75ea64fc54 Implement a cancelation mechanism for queries.
Added new API to enable cancelation of SQLite and content provider
queries by means of a CancelationSignal object.  The application
creates a CancelationSignal object and passes it as an argument
to the query.  The cancelation signal can then be used to cancel
the query while it is executing.

If the cancelation signal is raised before the query is executed,
then it is immediately terminated.

Change-Id: If2c76e9a7e56ea5e98768b6d4f225f0a1ca61c61
2012-01-27 17:33:21 -08:00
Marco Nelissen
ca78f3d9af Handle adding/removing/renaming nomedia paths
b/5849015
Change-Id: I3ec7419498d1ecc83db6d4605b3d7610349231f7
2012-01-27 15:10:14 -08:00
Mike Lockwood
73e56d935e MTP: Add support for restricting PTP to only certain subdirectories of the storage
Bug: 5527220

Change-Id: If68e7481617ecb62abd24e2d89e6b7dfdf95ba2b
Signed-off-by: Mike Lockwood <lockwood@google.com>
2011-12-02 11:08:39 -05:00
dujin.cha
fe464a76d8 [Prime K] Fix gabage character issue
Korean characters show up as gabage characters in Music player.
Reason : MTP service does not set the locale for the MediaScanner
Solution : Set locale when MtpDatabase creates MediaScanner.

Bug ID : 5567433
Signed-off-by: dujin.cha <dujin.cha@samsung.com>

Change-Id: I4bfe5f603c113170d45bd57a8709c21c665e260b
2011-11-22 10:28:21 -08:00
Mike Lockwood
dcc31946f2 MTP: Clean up MtpServer initialization and threading:
Move thread from native to Java code
Remove the stop() method (the thread will exit on its own)

Change-Id: Ib897c3630162f82669a4ee8c187e8172da50b29d
2011-07-13 09:44:42 -04:00
Mike Lockwood
7a59dd2ce3 MTP: Return error if user tries to copy a file >= 4GB to a FAT32 file system
Bug: 4561836

Change-Id: I2bffb93b032038f6c220c24c752ccd7ca66c23a0
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-07-11 13:40:02 -04:00
Mike Lockwood
7d40d42a36 MTP: Add support for PTP variant of GetDeviceInfo result.
Change-Id: I09f86fda768b7697665e401adb9516588859bf59
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-21 08:27:06 -04:00
Mike Lockwood
6acc90fc21 MTP: Fix some problems with GetObjectHandles and GetNumObjects commands
These calls did not correctly handle some variants of the arguments,
which showed up when running in PTP mode.

Change-Id: Iedbaefebfa39111c8bcaee7c6cc3820a65d6c98f
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-17 19:49:05 -04:00
Mike Lockwood
aa48835ce9 MTP: Remove obsolete setPtpMode support
PTP mode will be implemented as a separate USB function instead.

Change-Id: I9304c1936c70604ab2ed9704c6b95e11b61f5ba2
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-06-08 09:19:23 -07:00
Mike Lockwood
fbfe555125 StorageVolume: Add getStorageId() accessor
This ID is used for MTP as well as per volume querying in the media provider.

Change-Id: Ic4fc986d972bd477730643f7e9450c390c0b3a4b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-17 17:19:37 -04:00
Dianne Hackborn
1e662c3294 Merge "DO NOT MERGE. Integrate from master: Rework display size access." into honeycomb-mr2 2011-05-16 12:54:22 -07:00
Dianne Hackborn
ac8dea12c1 DO NOT MERGE. Integrate from master: Rework display size access.
Applications now get the display size from the window manager.  No
behavior should be changed yet, this is just prep for some real
changes.

Change-Id: I47bf8b55ecd4476c25ed6482494a7bcc5fae45d2
2011-05-16 11:58:27 -07:00
Mike Lockwood
51690544aa MTP: Have GetStorageInfo command return correct storage type for removable storage
Change-Id: I09b548483c12080e7d77970babcae2eef379f2f4
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-16 14:29:45 -04:00
The Android Automerger
158e3582c0 Merge remote branch 'goog/honeycomb-mr1' into honeycomb-mr2 2011-05-08 22:11:52 -07:00
Scott Main
0cdd9f7def docs: add package description for mtp and a little more info to MtpDevice
Change-Id: I44b3926c4a286f624de525a7f0cc896879582bf5
2011-05-05 15:53:44 -07:00
Mike Lockwood
7ae938be1b DO NOT MERGE MTP and media provider support for multiple storage devices:
- MTP support for multiple storage units

- Add storage_id column to media database for MTP storage ID

- Add framework resource for defining mount points and user visible descriptions
for multiple volumes

- Clean up locking in MtpServer JNI code

Change-Id: Ide6d47bd9aa1698ed2a13d695613e03f2a9b29e3
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-05-03 21:03:56 -04:00
Mike Lockwood
11dd5ae97b Improve Javadoc for USB Manager and MTP/PTP support.
Bug: 4091519

Change-Id: Ida79593d5a984f7ffd0934ae7bded23b8faf9eef
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-04-01 14:11:50 -04:00
Mike Lockwood
a3f8514492 MtpServer: Do not attempt to stop MTP if it has not been started
Fixes an ANR that occurred if we got a USB disconnected event
before the MTP service had started.

Bug: 4118033

Change-Id: I6cad4281a5911a9926cae923f34d3a6bf98346c5
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-17 09:43:50 -04:00
Mike Lockwood
62cfeeb821 USB: minor cleanup work
Bug: 4067029

Change-Id: Icd8f912ab8732b5f770a217b9b3731092597ce02
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-11 18:51:29 -05:00
Mike Lockwood
c72eb9113a Remove MtpClient class from framework and public API
After reviewing this class I decided it would be best not to include it in the public API
since it adds no functionality that cannot be done using MtpDevice and other APIs directly.
So I am moving it to the CameraBrowser sample instead.

Also changed CameraBrowser to build against the SDK to ensure all the necessary APIs for
PTP support have been made public.

Bug: 4067029

Change-Id: I585b06104084953176d018ced08bba0cb4607490
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-11 10:55:44 -05:00
Mike Lockwood
acc29cc91b UsbDevice: Move IO related methods to new UsbDeviceConnection class
UsbDevice is now just an immutable parcelable object like UsbInterface and
UsbEndpoint.
All IO related functionality is now contained in UsbDeviceConnection
and UsbRequest.

Bug: 4067029

Change-Id: Ia84da0b512a697acc940eee0c3566711c62e1a68
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-03-11 10:24:21 -05:00
Mike Lockwood
3a68b8338b USB: Add API and dialog for apps to request permissions for USB devices and accessories
New APIs:

UsbManager.hasPermission returns true if the caller has permission
for the given device or accessory

UsbManager.requestPermission poses a dialog to allow the user to give the caller
permission for the device or accessory.
Result is returned via a PendingIntent.
No dialog is displayed if the caller already has permission.

Also moved UsbResolverActivity to SystemUI package

BUG: 4069037

Change-Id: I93be769501a8776b49ac26e468af19f8fa2114c9
2011-03-08 21:22:19 -05:00
Mike Lockwood
823f5bf3db Merge "MTP: Use SharedPreferences for MTP device properties rather than sqlite3" into honeycomb-mr1 2011-03-07 20:04:23 -08:00