History log of /frameworks/base/media/java/android/media/MediaScanner.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9dd3b2162dd308762a023ad07a39c2379bcbf931 06-Mar-2016 Jeff Sharkey <jsharkey@android.com> Set default ringtones through RingtoneManager.

RingtoneManager is the public API that everyone should be going
through, and it now has the side-effect of caching the set ringtone
to make it available before CE storage is unlocked.

Bug: 27435331
Change-Id: I30ed4e2df2ef1e4fd47f947c70845aaa74356384
/frameworks/base/media/java/android/media/MediaScanner.java
5a8b9627c7fdacc94791fb3024386739f8cf9a56 18-Dec-2015 Jaesung Chung <jaesung@google.com> Extend MediaScanner and MtpDatabase to support RAW image files

Bug: 25871812
Change-Id: Iee92632585dc9020238a9b562defd06d6d2a91dc
/frameworks/base/media/java/android/media/MediaScanner.java
68528911b9f74475ac79c369a6482f720259dbac 06-Nov-2015 Marco Nelissen <marcone@google.com> Fix race condition when setting default ringtones

If the device was powered off during first boot, after media scanner
inserted some entries but before the default ringtone settings were
set (or committed to disk), the default settings would not be set
on subsequent boots.

Bug: 18625739
Bug: 22349910
Bug: 25633323
Change-Id: I8ff5d3c4f842297d0675e1f5cbe17c0709a14158
/frameworks/base/media/java/android/media/MediaScanner.java
60cfad80bdf61db436643927337c2fb30186e99d 06-Jan-2016 Jeff Sharkey <jsharkey@android.com> Discourage use of "_data" column.

Moving forward, all client file access really needs to be going
through explicit APIs like openFileDescriptor(), since that allows
the provider to better protect its underlying files.

This change also changes several classes to use the AutoClosable
pattern, which enables try-with-resources usage. Older release()
methods are deprecated in favor of close().

Uniformly apply CloseGuard across several classes, using
AtomicBoolean to avoid double-freeing, and fix several resource
leaks and bugs related to MediaScanner allocation. Switch
MediaScanner and friends to use public API instead of raw AIDL calls.

Bug: 22958127
Change-Id: Id722379f72c9e4b80d8b72550d7ce90e5e2bc786
/frameworks/base/media/java/android/media/MediaScanner.java
05ce0c6bb0e552701c23ce1fecd8392c9d39b31b 11-Nov-2015 Ian Pedowitz <ijpedowitz@google.com> Revert "Fix race condition when setting default ringtones"

This reverts commit f2cb9341ff864e6d9cc6797857665b2281643a74.

Change-Id: I151972052aea47bf8c6823eb8bbf8161c5a7a4f0
/frameworks/base/media/java/android/media/MediaScanner.java
f2cb9341ff864e6d9cc6797857665b2281643a74 06-Nov-2015 Marco Nelissen <marcone@google.com> Fix race condition when setting default ringtones

If the device was powered off during first boot, after media scanner
inserted some entries but before the default ringtone settings were
set (or committed to disk), the default settings would not be set
on subsequent boots.

Bug: 18625739
Bug: 22349910
Change-Id: Iff07da59a9c6d53bf2950bd107ee74d02b7f48d6
/frameworks/base/media/java/android/media/MediaScanner.java
4887789e44cdb16b042a35e8ec03983213e88ac6 18-Mar-2015 Jeff Sharkey <jsharkey@android.com> Progress towards dynamic storage support.

Storage devices are no longer hard-coded, and instead bubble up from
whatever Disk and VolumeBase that vold uncovered, turning into
sibling Java objects in MountService. We now treat vold events as
the source-of-truth for state, and synchronize our state by asking
vold to "reset" whenever we reconnect.

We've now moved to a model where all storage devices are mounted in
the root mount namespace (user boundaries protected with GIDs), so
we no longer need app-to-vold path translation. This also means that
zygote only needs to bind mount the user-specific /mnt/user/n/ path
onto /storage/self/ to make legacy paths like /sdcard work. This
grealy simplifies a lot of system code.

Many parts of the platform depend on a primary storage device always
being present, so we hack together a stub StorageVolume when vold
doesn't have a volume ready yet.

StorageVolume isn't really a volume anymore; it's the user-specific
view onto a volume, so MountService now filters and builds them
based on the calling user. StorageVolume is now immutable, making
it easier to reason about.

Environment now builds all of its paths dynamically based on active
volumes. Adds utility methods to turn int types and flags into
user-readable strings for debugging purposes.

Remove UMS sharing support for now, since no current devices support
it; MTP is the recommended solution going forward because it offers
better multi-user support.

Simplify unmount logic, since vold will now gladly trigger EJECTING
broadcast and kill stubborn processes.

Bug: 19993667
Change-Id: I9842280e61974c91bae15d764e386969aedcd338
/frameworks/base/media/java/android/media/MediaScanner.java
a4d4c200e43a020bf63d8c290321e31058f232ca 01-Jul-2014 Marco Nelissen <marcone@google.com> am 1ed64c65: am 899c15ef: am db816cef: Merge "Make sure we clean up"

* commit '1ed64c65a7b4d33799ca42cb4422d8382929cac2':
Make sure we clean up
f3fd18d1b4cb44bb31a5b4fba26136f6f4fc37ad 26-Mar-2014 Mattias Nilsson <mattias.nilsson@sonymobile.com> Make sure we clean up

pruneDeadThumbnailFile need to close its cursor
in a finally block to avoid leak resouces.

Change-Id: I2646b91970e47ee80a721a2452215b7cae149d10
/frameworks/base/media/java/android/media/MediaScanner.java
10596fbcce710a76ffc7e917400df13af5c2ebcb 28-Apr-2014 Elliott Hughes <enh@google.com> resolved conflicts for merge of 3ce4f3d0 to master

Change-Id: Id5c5997ad8f801b32e1dbd97413ea42e38c27210
34385d352da19805ae948215e2edbeedd16b7941 28-Apr-2014 Elliott Hughes <enh@google.com> Track libcore.os' move to android.system.

(This is partial, but should cover everything in AOSP master except
for the zygote.)

Change-Id: I1042c99245765746a744c44e714095cb2c6cb75d
/frameworks/base/media/java/android/media/MediaScanner.java
c806d5393f22e514c621f8a8a335156f7d45a299 25-Apr-2014 Marco Nelissen <marcone@google.com> am ebd6a2d2: am eded9e3b: am adcf38c9: Merge "Release DrmManagerClient resources"

* commit 'ebd6a2d2710ebf7196a399d6d5a2f0745844310b':
Release DrmManagerClient resources
1b37c3bddcdfe7cb60e776e3eb05bfbb46b0b282 26-Mar-2014 Mattias Nilsson <mattias.nilsson@sonymobile.com> Release DrmManagerClient resources

Call release for DrmManagerClient to avoid resource leaks

Introduced by following commit (5d143ad4a8f...),
"Media scanner support for FL(Forward Lock) DRM file types"

Change-Id: Ic3c458579f4e99b3b072a2e13362d1996b982589
/frameworks/base/media/java/android/media/MediaScanner.java
d5a579765e06d69c1a33663c202c3593a5bd5c6b 19-Feb-2014 Marco Nelissen <marcone@google.com> Fix regression

Don't crash if an item is inserted without a slash in its path.
b/13076381

Change-Id: I5cde2adaa038201e0692af3c8ca92540ce75f083
/frameworks/base/media/java/android/media/MediaScanner.java
93a5845d1a56dde3be4f0bdae70044724548b7d1 04-Feb-2014 Marco Nelissen <marcone@google.com> Cache media/nomedia paths

Instead of checking all the parents of every path for presence of
a .nomedia file every time a new entry is inserted, build a cache
of paths and use that when possible.

Change-Id: I5b912fd54473db8f96d3511cbc2715e0b69dd16b
/frameworks/base/media/java/android/media/MediaScanner.java
075e9a19ce645752f8282bc19c91b25978a7dc52 06-Jan-2014 Ashok Bhat <ashok.bhat@arm.com> AArch64: Use long for pointers in media classes

For storing pointers, long is used in media 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: Idc4ca0124d03df7f9cef412488abafd020e5e774
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>
/frameworks/base/media/java/android/media/MediaScanner.java
dcb1a58cf9d66b36de825dae2fa0cb0529e60680 02-Aug-2013 Elliott Hughes <enh@google.com> If media wants ASCII lowercasing, it needs to ask for it.

http://elliotth.blogspot.com/2012/01/beware-convenience-methods.html

Use toLowerCase(Locale.ROOT) if you want ASCII for machine consumption,
and use toLowerCase(Locale.getDefault()) if you want the user's locale's
casing rules for human consumption.

Bug: https://code.google.com/p/android/issues/detail?id=58359
Change-Id: Id9005a17e34217a81bef3b40031b9e2e6272f45d
/frameworks/base/media/java/android/media/MediaScanner.java
66dfcd465c02d78cb4ff22e7b509ee42d4309286 28-Feb-2013 Marco Nelissen <marcone@google.com> When scanning a single file, take .nomedia into account

Make scanSingleFile behave the same way as scanMtpFile, by taking into
account whether there's a .nomedia file guarding the file being scanned.
Without this, downloaded (or otherwise explicitly scanned) images/video/music
will appear in Gallery and Music even if a .nomedia file is hiding them.

Change-Id: Ib9ad4bda1b9a942f79a37ccd8e6a54d57710f528
/frameworks/base/media/java/android/media/MediaScanner.java
35654b61e8fe7bc85afcb076ddbb590d51c5865f 15-Jan-2013 Dianne Hackborn <hackbod@google.com> 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
/frameworks/base/media/java/android/media/MediaScanner.java
299942002b17f792e6e4f6b3f6972f62b8b136ae 09-Jan-2013 Marco Nelissen <marcone@google.com> Fix media scan NPE

b/7966288

Change-Id: I066bc9f00bccf070332d87d6f1bf3d6054b31136
/frameworks/base/media/java/android/media/MediaScanner.java
cf1df1944832d43aa95d3d8f6a84bea31096ad65 28-Dec-2012 James Dong <jdong@google.com> am 0c1e566f: am c8db3b8a: Merge "Set "isdrm" info in Mediastore"

* commit '0c1e566f97a39dd79e563afe953de8879ef66bd9':
Set "isdrm" info in Mediastore
59c14048bfc0a210077192410afa28ed6f85daa0 05-Sep-2012 Erik Almqvist <erik.almqvist@sonymobile.com> Set "isdrm" info in Mediastore

The mediascanner member mIsDrm was never set
according to the drmframework canHandle call.
This subsequently caused that the isdrm column
in mediastore was never set, and was defaulted
to false for all files.
mIsDrm is now set according to drmframework
canHandle result for each files that is scanned.

Change-Id: Id557d921c4e3e3dfc35da56b69471f4bd6b3c8bf
/frameworks/base/media/java/android/media/MediaScanner.java
4ecfce6f6fa4e0d32e9a57222ab0f4b91d2845df 04-Dec-2012 Marco Nelissen <marcone@google.com> Fix default ring/alarm/notification insertion

Before directly inserting an item that is the default ringtone, alarm or
notification, flush the MediaInserter, since a parent of the inserted item
might not have been flushed yet.

b/7650557

Change-Id: Icdd25bd9cac8b43a75e63318b936246562744c59
/frameworks/base/media/java/android/media/MediaScanner.java
da005f46004f6c32fb0a1e8cf251eec92c413a0e 06-Nov-2012 Marco Nelissen <marcone@google.com> am ff25dd33: am 6791ebde: am 7a4d856c: Merge "Removed offensive music genre"

* commit 'ff25dd337d1f7a079495c0c5f5bb69fd1f97548f':
Removed offensive music genre
6791ebde5f951566058cb32d1adb03447876268c 06-Nov-2012 Marco Nelissen <marcone@google.com> am 7a4d856c: Merge "Removed offensive music genre"

* commit '7a4d856c881ef48ad590d9e5a0456c94d188898a':
Removed offensive music genre
7a4d856c881ef48ad590d9e5a0456c94d188898a 05-Nov-2012 Marco Nelissen <marcone@google.com> Merge "Removed offensive music genre"
8ad76fa7a644c10abb7b95398fdb8a84bd723619 03-Nov-2012 Marco Nelissen <marcone@google.com> Request non-notifying Cursor when querying provider

This makes a media-rescan about twice as fast.
b/6751354

Change-Id: Iac3b0238f5731a20ecb5d4b34aa1666f7c610268
/frameworks/base/media/java/android/media/MediaScanner.java
da8fe0faf5b52ef65bd07b6f47479ac537d42d47 02-Nov-2012 Marco Nelissen <marcone@google.com> Remove special case in media scanner

The media provider now takes care of case-sensitivity, so there is
no special handling needed when looking up entries in the database.

Change-Id: I2a23c4f1875a8ffea140281572b1e2c90cce60a7
/frameworks/base/media/java/android/media/MediaScanner.java
348aa65e93c1b8cb409de12e3e61136f894201f2 27-Oct-2012 Marco Nelissen <marcone@google.com> Don't create files when scanning

MediaScanner would insert non-existent files into the database
if you asked it nicely, thereby creating them.
b/7298303

Change-Id: Ie8496072248f2041e5a73cc04083e2a31c78f046
/frameworks/base/media/java/android/media/MediaScanner.java
c67fb6c39e75a08e50977e143d7ae7bd11e2604c 06-Sep-2012 Jean-Baptiste Queru <jbq@google.com> am 657dba9e: am 4aa83ec3: am bb60bc26: Merge "Musicplayer application can not display DRM files of internal storage."

* commit '657dba9e66ff02785c2bf034ebecc3c357cbc333':
Musicplayer application can not display DRM files of internal storage.
20c38ea9fd4024cc076c825f46cdfb34ffc090de 18-May-2012 Jan Bjernler <jan2.bjernler@sonymobile.com> Musicplayer application can not display DRM files of internal storage.

Make DRM-protected files transferred over MTP be detected.
Previously it was inserted into the database as MEDIA_TYPE_NONE,
the result of this was that the file was not detected properly.
With this fix the file is scanned from the beginning.

Change-Id: Idf17d39e3d529394cd4a03d71fb250e69b395533
/frameworks/base/media/java/android/media/MediaScanner.java
c3ea477e2111f199d10341b121791cb2ec91eca3 29-Aug-2012 Johan Redestig <johan.redestig@sonymobile.com> Removed offensive music genre

The genre is a bad joke, not a real thing.

See http://en.wikipedia.org/wiki/Negerpunk

Change-Id: I073c89e286ef4b8f9d678e1b137c657b26066099
/frameworks/base/media/java/android/media/MediaScanner.java
8ab2dc2f9680307febe997631c2148729f714e3d 01-Aug-2012 Marco Nelissen <marcone@google.com> Improve scan time for some cases

When the path being matched has a sqlite wildcard character in it, a "like"
match will be quite slow. Unfortunately this is fairly common, since "_"
is a wildcard character. However, because in most cases the case of the path
in the database will match the case on disk, an "=" match will work, so it
is worthwhile to try an "=" match first, before trying a "like".

If there are no wildcard characters, the "like" will be as fast as the "=",
because of the case-insensitive index on the _data column, so there is no
need to try "=" first in that case.

b/6751354

Change-Id: I1cd4efbd56a37886cb44a86acb73eb9a3c9f303d
/frameworks/base/media/java/android/media/MediaScanner.java
c861411d4bae0912054ff54c3efee90ae2db6db9 25-May-2012 Marco Nelissen <marcone@google.com> Bypass emulated storage for metadata extraction

b/6543148

Change-Id: Ic65957870199a2592ebe53b32517166f96e48ef2
/frameworks/base/media/java/android/media/MediaScanner.java
81e85bbf671f228600fba059e30cb22565bcfe9d 06-Jun-2012 Marco Nelissen <marcone@google.com> Ensure we compute display name when needed

Since the media scanner no longer uses an in memory cache, it always
found an entry for files inserted via MTP, which made it follow a
different code path than before, which in turn made the media
provider skip computing the display name column.
By clearing the row id in the media scanner when handling an mtp
request, we steer it back to the correct code path.
b/6297105
b/6525450

Change-Id: I624522b176a0057d246ce3040598af255b00a141
/frameworks/base/media/java/android/media/MediaScanner.java
b4b847866fbee31ba146ba7ebca2d2346a3a0b8f 23-May-2012 Marco Nelissen <marcone@google.com> 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
/frameworks/base/media/java/android/media/MediaScanner.java
538d4925b36067dc89ad0625a69dafeaa364bd2e 17-May-2012 Marco Nelissen <marcone@google.com> Fix .pls playlist parsing

b/6508278

Change-Id: I015ecf3fa599601ba4e9d018be24d0685e153239
/frameworks/base/media/java/android/media/MediaScanner.java
0b718392c1f50f45760b198a5d9e8df2cf2b5080 25-Apr-2012 Marco Nelissen <marcone@google.com> Further speed up playlist processing

Previously when processing playlists, the entire audio table would be read for
every line in a playlist file. While there would be only one query, a lot of
data was being moved from sqlite to java over and over again, and if the data
didn't all fit in a CursorWindow, additional queries would be done under the
hood.
With this change, playlists are first cached in memory. Then the audio table
is queried, and for every row in the audio table, the best match from the
playlist cache is found. This way the audio table is only traversed once,
so each row is only fetched once. Once the entire audio table has been read,
the in-memory playlist cache contains the best matching entry for each line,
and the playlists are written out to the database. Currently, the audio table
is traversed once for each playlist. This could be further optimized in the
future by processing all playlists at the same time.

b/6346786

Change-Id: Iead3f9ae838d600d085e8e6d3c4874d42314468e
/frameworks/base/media/java/android/media/MediaScanner.java
08f70fa5b82faa00d4d536b5a220d7ce8dd8f932 23-Apr-2012 Marco Nelissen <marcone@google.com> Speed up playlist processing

When matching entries in playlists, only consider audio files.

b/6346786

Change-Id: Ia744d002c2821a81840303b9409593da48a08b73
/frameworks/base/media/java/android/media/MediaScanner.java
e313f721ad97ad44666dd066a891acb4ddfa8ab3 04-Apr-2012 Marco Nelissen <marcone@google.com> Store video width/height when scanning

b/5820120

Change-Id: If2faf554bbf49b341d2634915ba98c1efd70574e
/frameworks/base/media/java/android/media/MediaScanner.java
18a38b9f41fa818cccc50a7fd372c694a9c8149a 31-Mar-2012 James Dong <jdong@google.com> Merge "Removed obsolete opencore related comments"
6ef1eedac77977a4979a293499767e17ed3a4e03 30-Mar-2012 Chih-Chung Chang <chihchung@google.com> Merge "Fix b/5353417 Images downloaded from browser are showing incorrect details (Time is shown as dec 31 1969)"
7ae82ce1fd54103bb87b8a0593a4228c94b1d6f9 29-Mar-2012 James Dong <jdong@google.com> Removed obsolete opencore related comments

Change-Id: Ia05a889ea54a8f38d126508ffdcd09fe2a263538
/frameworks/base/media/java/android/media/MediaScanner.java
872e7b7073fad8295e6314c73b87d7cb3f85d39c 27-Mar-2012 Ray Chen <raychen@google.com> Fix b/5353417 Images downloaded from browser are showing incorrect details (Time is shown as dec 31 1969)

MediaScanner sets DATE_TAKEN with EXIF's datetime tag value. When this information is not available,
ExifInterface will simply return -1 which is accidentally used by MediaScanner.

Adding a check to avoid it so MediaProvider can calculate the date taken from last modified time instead.

Change-Id: I305b93a6c5602cbb9f97c3bbd384d358bda030c6
/frameworks/base/media/java/android/media/MediaScanner.java
c164faa8314c110d417b653b9926de4803bb2dda 24-Mar-2012 Marco Nelissen <marcone@google.com> Speed up playlist processing

The recent removal of the cache from MediaScanner (commit 58ef68905d67e356eb)
slowed down processing of playlists, in some cases significantly, due to every
line in a playlist prompting a query that looped over the entire audio table.

With this change, the query is only done once instead of for every line,
and the code starts iterating over the Cursor starting near the point of
the last match, instead of from the start. The latter is especially helpful
when the entire query result is too large to fit in a CursorWindow, since
it reduces the number of times that sqlite has to perform an offset query
under the hood to refil the window.

Change-Id: I9fea990b3b8c86571384de2122708fb7e809c355
/frameworks/base/media/java/android/media/MediaScanner.java
58ef68905d67e356eb6a05176863cacfbdca75c6 15-Feb-2012 Marco Nelissen <marcone@google.com> Eliminate scanner file cache

Get rid of the file cache, since it tends to run out of memory for large
numbers of files. This slows down the scanner somewhat, but recent
optimizations more than make up for that.

With this change, the postscan phase of the media scan now only processes
playlists. Removal of entries for files that no longer exist is done as
part of the prescan.
Lookups in the file cache are replaced by simple queries, which are still
reasonably fast because of a new index recently added to the media provider
database. Note that there was a bug in the case-insensitive matching for
file cache entries, in that e.g. an uppercase a-accent-aigue would be mapped
to its lowercase version, whereas the underlying case-insensitive filesystem
treats them as different characters. Getting rid of the file cache also fixes
this issue.

Bug: 4474617
Change-Id: I39c6f1a35bb518ef7ab912e9b9401663821ef48e
/frameworks/base/media/java/android/media/MediaScanner.java
d121cfcbb45cb9ca734e702861f0bdd422999cf5 13-Feb-2012 Marco Nelissen <marcone@google.com> Further optimize media scanner.

Inserts of directories can be done in bulk as long as they're inserted before
the files contained within. Extend MediaInserter to accommodate giving priority
treatment to directories.
Bulk deleting of entries can be further sped up (by a factor of ~3 in my tests)
by deleting entries in database order. Switch the file cache to use
LinkedHashMap instead of HashMap to allow iterating over the cache in database
order. Also use bindArgs to allow for better caching of sql statements.

Change-Id: Ieb9ffc4e866c6cd505bf795eb80ff5d03ffc56bd
/frameworks/base/media/java/android/media/MediaScanner.java
9ff4774cac499a376a59373d5bfb5112c9a2a004 08-Feb-2012 Marco Nelissen <marcone@google.com> Delete entries in bulk

Deleting entries from the database in bulk greatly speeds up the media
scanner in some cases; removing 31k entries used to take about 2 hours,
now it takes about 15 minutes.

Change-Id: Ia8f3fd6d828289e3d67178e9ad10399ded8d70d2
/frameworks/base/media/java/android/media/MediaScanner.java
ac259f17a0a6ba9e363bbf0c268c5942aab392c1 07-Feb-2012 Marco Nelissen <marcone@google.com> Make media scanner use new delete-parameter

This speeds up the media scan case where many files were deleted or moved.

Change-Id: I86e6fc6d0968eebf24923c0b5587b90d309721bb
/frameworks/base/media/java/android/media/MediaScanner.java
d6b3e0cc36cbe28c8d194b63227df37c76af7efa 02-Feb-2012 Marco Nelissen <marcone@google.com> Enable media scanner bulk inserts

Change-Id: I357162d0fe498a182ccb14630fe565daaa8bb0c1
/frameworks/base/media/java/android/media/MediaScanner.java
f3a3b9ec9ce6cb087dd3f4358684c00be23feec1 30-Jan-2012 Marco Nelissen <marcone@google.com> Merge "Handle adding/removing/renaming nomedia paths"
2d2d7d6f42fe22ecc2b1dc8bb96a19e503a61a20 28-Jan-2012 Jeff Brown <jeffbrown@google.com> Merge "Implement a cancelation mechanism for queries."
75ea64fc54f328d37b115cfb1ded1e45c30380ed 26-Jan-2012 Jeff Brown <jeffbrown@google.com> 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
/frameworks/base/media/java/android/media/MediaScanner.java
30c918ce7fbe171944b28fc91b3f22b3d631872d 11-Nov-2011 Glenn Kasten <gkasten@google.com> Use final on new member variables

Use final for member fields initialized to a new and that are never modified.

Change-Id: I042352c7bc21879613e7a50b1205b6923f8083cf
/frameworks/base/media/java/android/media/MediaScanner.java
ca78f3d9aff78c35bc065b0c35a0b3c917f56435 27-Jan-2012 Marco Nelissen <marcone@google.com> Handle adding/removing/renaming nomedia paths

b/5849015
Change-Id: I3ec7419498d1ecc83db6d4605b3d7610349231f7
/frameworks/base/media/java/android/media/MediaScanner.java
6c4c15569674e6a5eda0565b501b600a50d4ca6e 26-Sep-2011 Sungsoo Lim <sungsoo@google.com> MediaScanner: Disable bulk insert for settings

Since the settings (notifications, ringtones, and alarms) request
rowId after inserting into DB, do not use bulk insert for them.
(Bulk insert does not return the rowId)

Change-Id: I8faf993f8ac2da96672594a1c92ddc917f964d6f
/frameworks/base/media/java/android/media/MediaScanner.java
ad35f9165e7f2641812a5069de9c3cd3fdd16923 06-Jan-2012 Marco Nelissen <marcone@google.com> Also accept non-parenthesized genre numbers

b/5790684

Change-Id: Ia13feebeaadd45d9196486c012538c5b80840163
/frameworks/base/media/java/android/media/MediaScanner.java
8e2ed8d512ade2ea481b3a292556782b17a74674 11-Oct-2011 Dongwon Kang <dwkang@google.com> Refactor FileInserter in MediaScanner and adding unit tests for the newly added class.

Change-Id: Ia0e8c95239916fd4c21cb5bf10ac94201e6eb6f1
/frameworks/base/media/java/android/media/MediaScanner.java
28b9a063ad359d186cf69b235c5592eb308d2ac4 21-Sep-2011 Marco Nelissen <marcone@google.com> Merge "MediaScanner: To query row ids of music files when handling playlists."
e1bf8efaff42dc33b7a4663f3c9d50d12de81bcb 20-Sep-2011 Chih-Chung Chang <chihchung@google.com> Fix 5224359: Add width and height to media store.

Change-Id: I27376285a551e648eb0ea010dfdf6b8ed873cdd8
/frameworks/base/media/java/android/media/MediaScanner.java
7d92a22d9dec42a45cd55fd77d0a86b4b9c6e9df 18-Aug-2011 Dongwon Kang <dwkang@google.com> MediaScanner: To query row ids of music files when handling playlists.

Change-Id: I3c2a803618bfdaf4915f2487669952d5e3b4dd32
/frameworks/base/media/java/android/media/MediaScanner.java
f2e2b523dd333207107b50bc174f152e954dc371 14-Aug-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Clear file path before deleting records to avoid accidental file deletions

Bug: 5140112
See also http://code.google.com/p/android/issues/detail?id=3692

Change-Id: I971eea83a2f3986a0b0ea018b7211f2525b914ab
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
bcbddd9342ee5ef48617ce7dcca6c505df3fcf08 11-Aug-2011 Marco Nelissen <marcone@google.com> Only set the ringtones and such if this is the first media scan
b/5126979

Change-Id: Ibef2bd5a3a1a288fc1137694e858d87628d780c0
/frameworks/base/media/java/android/media/MediaScanner.java
3410b4656505673c72da558dcfec94d7b135e760 10-Aug-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Disable bulk inserts

We are still finding bugs related to the bulk insert support,
so lets disable it for now.

Bug: 5026233

Change-Id: I436cd8fc5dbe9fcf220a623f1c070cf901c6d38c
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
43b076bb75e86fbb34cbe36aa0298c7a647121ff 06-Aug-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Fix UnsupportedOperationException when scanning internal media

The media scanner was crashing while tring to insert genre data in the internal
media database, which does not support genres.
This resulted in some or all of the built in ringtones being unavailable

Bug: 5124718

Change-Id: Ib306348dd9808e59477b327b4adcb413957d8d24
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
e5d0495d5206167c597efcd81436a0f881f069f9 30-Jul-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Move genre table management to MediaProvider

Fixes problems introduced with bulk insert support

Bug: 5092877

Change-Id: If3c0c9054d5effe0a1d7a75e85635b41ba1591f5
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
c6eaa713a3f5b9337eca60ba2ab570cf6e80c357 26-Jul-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Fix problem with duplicate directory entries in the database

Bug: 5078643

Change-Id: I8804ff5bbd729f57be7ff0b17a4b134cafe78c18
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
e19572ccb5e7963eee9dd1cca150ee752a850e4a 20-Jul-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Do separate bulk inserts for different media types

This should fix a bunch of problems introduced in the original bulk insert implementation

Also reverted two changes that are no longer necessary:

Revert "MediaScanner: Add virtual NO_MEDIA column to fix support for .nomedia files"

This reverts commit 92e1314ad9ddbacfb806405e9aceeea4a8aae19f.

Revert "MediaScanner: fix breakage in updates"

This reverts commit 45aaa2a345292bb6d600822db602f25e261c0e50.

Change-Id: Ibed66393467761c2c1ce48deb09bcac505b7d221
/frameworks/base/media/java/android/media/MediaScanner.java
92e1314ad9ddbacfb806405e9aceeea4a8aae19f 15-Jul-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Add virtual NO_MEDIA column to fix support for .nomedia files

Bug: 5025615

Change-Id: Ia910cd1c063292599a03b878755edb2e3cdbbb57
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
45aaa2a345292bb6d600822db602f25e261c0e50 13-Jul-2011 Mike Lockwood <lockwood@android.com> MediaScanner: fix breakage in updates

To facilitate bulk inserts, we changed the media scanner to use the file URI
instead of the audio, video or image media URIs.
However we should still use the media URIs for updating existing records

Bug: 5021925

Change-Id: I6143dc1d00350192170428a5e951b52ef9223734
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
501c4671e73a484c1f01d94f4f5fff124c05f197 11-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Eliminate single-process mode. Bug: 5010576"
a59a1bad8586e79a863442fa5139658e50ce9dd7 11-Jul-2011 Mike Lockwood <lockwood@android.com> Merge "Remove unnecessary locking from MediaScanner JNI code"
af16d0b30e89f31b7617424c8706553ff571d08d 10-Jul-2011 Mike Lockwood <lockwood@android.com> Remove unnecessary locking from MediaScanner JNI code

There is nothing in this file that requires a global lock.
Furthermore, the lock can cause timeouts in native_finalize if one instance
is being garbage collected while another is busy in processDirectory

Bug: 5002520

Change-Id: I8717f8edeb932200d9f76b3d98915cfbe18b6ec6
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
bd682b040833fce9e212c00c395b32bec7050f87 11-Jul-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Use bulk inserts when in batch mode

To do this we need to move the logic for determining media type to MediaProvider
Make some things in MediaFile public so they can be used from MediaProvider

Bug: 4948188

Change-Id: I6ab168b6b4d45b2fc91ea8bd52ca58283b0efc14
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
10e89712863f5b91a2982dc1783fbdfe39c1485d 09-Jul-2011 Jeff Brown <jeffbrown@google.com> Eliminate single-process mode.
Bug: 5010576

Change-Id: Id450dc83efed4897d1e4ff451530fed14457aace
/frameworks/base/media/java/android/media/MediaScanner.java
82428a862f325238cfb5646bbd65de3f1a11e7cc 27-Jun-2011 Gloria Wang <gwang@google.com> - Retrieve is_drm in MediaMetadataRetriever.
- Add one more column in MediaStore to indicate whether a
media file is drm-protected.
- Remove old DRM code from Ringtone
- Use the new DRM code in RingtoneManager

Change-Id: I1311fd1c04841c2cd47df6c901589966cf55a692
/frameworks/base/media/java/android/media/MediaScanner.java
ade06df0fe3499d66ee5cc29071d41445d1091fa 03-May-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Add special casing of WMP album art files to isNoMediaPath()

This will prevent MediaProvider from adding these files to the images table

Change-Id: I496a108b52a481c78dbf58c4e62996656b1fcbb9
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
997354e4b4a9666cedd62282471e97822affced9 24-Apr-2011 Mike Lockwood <lockwood@android.com> MediaScanner: reimplement the ".nomedia" feature for hiding files from the media provider

Previously we ignored any files and directories that had name started with '.'
and ignored any directories that contained a ".nomedia" file.
Now to support transferring any file via MTP, we now add these previously ignored files
to the media database, but will not mark them as audio, video, image or playlist files.
That way they will be included in the files table but will be hidden from the
audio, video, images and playlist views that are used by apps like Music and Gallery.

Bug: 3405327

Change-Id: I2d7285bd32e06c1a5c4ef6a8a15f8f8b2c33b39b
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
f50e54e64b2b5a269e1a88c511a57064a14bb51b 22-Apr-2011 Dianne Hackborn <hackbod@google.com> Remove config_caseSensitiveExternalStorage; no longer needed.

Change-Id: Id51c9e05be21d8087359cf918081109ba325569a
/frameworks/base/media/java/android/media/MediaScanner.java
43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09 07-Apr-2011 Joe Onorato <joeo@google.com> Remove the deprecated things from Config.java. These haven't been working since before 1.0.

Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
/frameworks/base/media/java/android/media/MediaScanner.java
3e5e8055942ee8179675b8ed11d40ca12dbe42e6 29-Mar-2011 Marco Nelissen <marcone@google.com> Fix media scanner uri handling.

If a file was originally considered a video file (because it had
a .mp4 extension, for example), but was then discovered to have
only an audio track, it would update the type, but not the URI
for insertion into the media provider.

Change-Id: Ifdf3a177750f1e71ca5a058fa534d272e1505653
/frameworks/base/media/java/android/media/MediaScanner.java
133cf8b92a07d5be8c64607b9644aa9cef169fb0 12-Mar-2011 James Dong <jdong@google.com> Add a release() method to MediaScanner

bug - 2586042

Change-Id: I08713ac75cbcaf01dff21a24cdefb6e2dacc92cb
/frameworks/base/media/java/android/media/MediaScanner.java
a2c322f599b5a44ca153922b994a05a4311331cb 22-Feb-2011 Ray Chen <raychen@google.com> 3406494 Gallery photos in nonsensical order

Change-Id: Ic992465a6683179bff280753dcaf9aa6372424e6
/frameworks/base/media/java/android/media/MediaScanner.java
cb613a04c16915f6374c6436b5b37355bce3ed1c 10-Feb-2011 Marco Nelissen <marcone@google.com> Better genre support.

Expand the list of genres, and support genres that look like "(192)CustomGenre".
b/3349415

Change-Id: I617ea7dfeace708bbd0d9c00ff04de72fa2d383e
/frameworks/base/media/java/android/media/MediaScanner.java
242d0cdc1ad6c48faca403ea352bde73138443b5 19-Jan-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Make sure name field is set for file based playlists

Change-Id: I7df1ff783d815d6021ec2432467ba56cb3f3ad1b
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
7a0bd17bceaf3efc3732e30c538fae420d3b742c 18-Jan-2011 Mike Lockwood <lockwood@android.com> 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>
/frameworks/base/media/java/android/media/MediaScanner.java
f679ba7d944a403fbdc77926c44978ffd5161f2d 07-Jan-2011 Marco Nelissen <marcone@google.com> Cherrypick from GB. Do Not Merge.

Send "compilation" tag when inserting into the database.
It's not actually inserted into the database, but the media provider uses it
for disambiguating albums.
b/3311831

Change-Id: I67deb044800a6cb626c69bf3d54d51df4bf830f2
/frameworks/base/media/java/android/media/MediaScanner.java
a8a656b0c595fa876a387a91f8813f88a2d3abe7 12-Jan-2011 Marco Nelissen <marcone@google.com> Fix scanning of modified files.

When a media file, particularly a music file, is updated, the media
scanner should use the correct Uri to update it, and not the generic
files Uri. Otherwise, things like artist and album name will not
be properly updated.

Change-Id: I576629c51282bfbeb61c23f1e43b072700084a6c
/frameworks/base/media/java/android/media/MediaScanner.java
0dd9f4de3ed681e83bd79ddcd4fd463093d11ed3 12-Jan-2011 Mike Lockwood <lockwood@android.com> MediaScanner: Do not update the file path when updating records already in the database

The path should never change (media scanner treats renames as a delete and an insert)
and we want to preserve the mixed case paths in the database to avoid exposing the
lowercase squashing to MTP.

Change-Id: I79ef37e143c607242d438a4a0643d40191965b6a
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
1c4e88d0b0a8deede0415183739478b5ebc12bfd 12-Jan-2011 Mike Lockwood <lockwood@android.com> Media Provider and MTP now use emulated /mnt/sdcard instead of /data/media

This rips out some complicated code that was added since gingerbread
that is no longer necessary.

Change-Id: Iab5ecb7314c06221475ce01ef483f34f17003b06
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
0cd0136d440cf6ad9d5fab430269116786e671ec 30-Dec-2010 Mike Lockwood <lockwood@android.com> Move MTP Java classes to android.mtp.* package.

Change-Id: Ib18bcaabf314241a95e517d0b93be5845d988e2c
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
fbc4939d2b51d511858846363bf02c7c9f851ed2 17-Dec-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Fix handling of .nomedia files in directories

In particular, fix the code that prevents the database triggers from deleting
files when a .nomedia file is added to a directory

Change-Id: Ie913223f3b1bbf9122842a675b96d4baac3b1c6f
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
076e05b488e40fdd946f0d35137fe66a576efe09 16-Dec-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Add support for scanning empty directories

Currently the media scanner does not create database entries for directories
unless they contain a file that is scanned.
Fixing this so we provide a consistent view of the world to MTP.

Change-Id: Ia776acfeae23192183e7192d63cdc34d830ea889
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
eb46d0601e94533e50260e6fb7c807966e4ae097 13-Dec-2010 Mike Lockwood <lockwood@android.com> MediaScanner: No longer delete playlist files that have no valid entries

When copying files from MTP we must keep the file in the database, even
if we cannot find any of the playlist entries (or even if it is not a valid playlist file)

BUG: 3260341

Change-Id: I4b39027ee25ffae6778224cf74830a4b1ca3fecb
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
f45853af5051df4abaa33cdca7fa986104811d1a 02-Dec-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Fix path mismatch in code that check for missing files in postScan()

BUG: 3213640

Change-Id: I102d6c9ae95adadb855e2199380117808ccaa1ee
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
858caeaaa1db4076565e6df06b2b2721ec453c4e 16-Nov-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Always use mime type provided to the media scanner

BUG: 3179926

Change-Id: Ib94aea43b83658e3ab31c5eacf7a5135cd14822a
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
caf7e43a40245520fc26b19bce408da24c050e01 13-Nov-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Add support for importing file based playlists copied over MTP

Change-Id: I53a9f204297ff29d4df994d2174bd6d6288f2c97
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
250528e5b2362cb7b6749afb331acd8226f67744 05-Nov-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Fix mismatch between internal and external file paths.

Change-Id: If2fac90a466c4d63fc90f96e91733c9e9ca14680
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
1f89c4f9f8df5d7125221250993ba1e853ed9fed 03-Nov-2010 Gloria Wang <gwang@google.com> Use SystemProperties.get() instead of System.getProperty()

Change-Id: I92571fa217e6623345bbd84cf87ab939fbe63b0a
/frameworks/base/media/java/android/media/MediaScanner.java
e4eb4d9de37a8e9ed6f43a5f7deccf88f28bfc8b 02-Nov-2010 Marco Nelissen <marcone@google.com> In java, System.getProperty returns null when the property doesn't exist,
rather than an empty string like it does in native code.
b/3157546

Change-Id: I7985a405e4d2d1f20be0a151aa2cf2e5a83b380b
/frameworks/base/media/java/android/media/MediaScanner.java
5d143ad4a8f8c90f44e185a494ff3ff638e6c103 01-Nov-2010 Gloria Wang <gwang@google.com> Media scanner support for FL(Forward Lock) DRM file types

Change-Id: Id85edbfc2851d9054a7433d24bb5cf33a457a4e5
/frameworks/base/media/java/android/media/MediaScanner.java
6458935331ccfacb4cccc50d6b893947febae687 07-Oct-2010 Mike Lockwood <lockwood@android.com> MediaScanner: don't call pruneDeadThumbnailFiles unless the images table is empty

BUG: 3063257

Change-Id: I648ff8c4d4026e3d2a97853257865c9b5f712712
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
920d649949f6636a9e4220904c9a3c5cd860fd53 24-Sep-2010 Marco Nelissen <marcone@google.com> Send album artist to the media provider again.

Change-Id: I13f44bab2024adcfbc4b9491ac565cfdf15ef9d9
/frameworks/base/media/java/android/media/MediaScanner.java
ff371cf0ed8ceb547043cd2f7db0cfd0990203b2 23-Sep-2010 Mike Lockwood <lockwood@android.com> MediaScanner: disable album artist support until MediaProvider really supports it

Fixes a "no such column" exception in MediaProvider.update() that I somehow
missed when testing the MediaProvider refactoring.

Change-Id: Icc502a5c0e3bd150b353972d000b978a9e044abc
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
c2206a0710a3ca2c29854c1a0638c5ba55629ba2 16-Sep-2010 Mike Lockwood <lockwood@android.com> Changes to support MediaProvider refactoring

Update table columns in MediaStore and adjust media scanner MTP support.

Change-Id: Ide41315a6d7650aadb703f93c7e022fc5c40d4dd
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
d7456c650ef4e105f9835236b79244d906e2f1e0 14-Sep-2010 Mike Lockwood <lockwood@android.com> MediaScanner: Fix problems with scanner non-file objects from the database

Abstract objects should not be garbage collected and directories should be
removed only if they no longer exist in the file system.

Change-Id: I28b846a39324a7c2968357917089cd4c1238a014
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
c37255d5d0fd9e0ec02b0d7cb5c4b235e200d367 10-Sep-2010 Mike Lockwood <lockwood@android.com> Media scanner support for tracking files of arbitrary type.

The native media scanner no longer filters files based on file extension.
Audio, video, image and playlist files are handled as before, but non-media
files are now inserted into the "files" table, which was originally added
to support MTP.

Change-Id: I9053218fb6d2671a3bb181405c34442b94678afc
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
f73738b78a8396552274cf33b0021f414fb7201d 09-Sep-2010 Mike Lockwood <lockwood@android.com> Add framework resource to specify case sensitivity of the external storage filesystem

Change-Id: I8a433de9188c32214b1f8d6a4490dfe731d68c40
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
ed8188711a794867b47d21bbed3e26827f6c27e3 24-Aug-2010 Neel Parekh <neel@google.com> Have the band tag parsed into album artist.

Some vendors don't use the albumartist tag, but instead put the
album artist tag in the band tag.

Change-Id: Iea3144d55e4db3a28853bcd06bc72366de4421dc
/frameworks/base/media/java/android/media/MediaScanner.java
cbaea35759791f083735f7a5c43e0dc0ed228ff1 17-Jul-2010 Mike Lockwood <lockwood@android.com> Add MTP_OBJECT_ID column name to MediaStore.MediaColumns

This column will be added to the images, audio_meta, video and audio_playlist
tables to cross reference to the MTP objects table.

Renamed MTP_OBJECT_HANDLE (which is used only by the media scanner) to
MEDIA_SCANNER_NEW_OBJECT_ID to avoid confusion.

Change-Id: I8093485dc0438f408a505e82ffddd0710c7a512c
Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
d815f79766984fce499e147ecbacc01914683f74 12-Jul-2010 Mike Lockwood <lockwood@android.com> 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>
/frameworks/base/media/java/android/media/MediaScanner.java
d398e7a4932acbc317483fdfdf362838c5a3b52a 18-Jun-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I17a51b7cebe1486103d4b0af00e7297ddccb60b8
ec74abb71f79cdc573c536115acc7ff26a02680a 01-Jun-2010 Mikael2 Svensson <mikael2.svensson@sonyericsson.com> Change in media scanner to set correct date

When the media scanner scanned a single file, the modified
date (DATE_MODIFIED) was not correctly set in the content
provider. It was set as milliseconds but should have been
set as seconds. This caused downloaded media items to display
wrongly in the camera album, since the date was wrong.

Change-Id: I24cd92215c26f579eb33a4a3890f96c6ef9ec8c0
/frameworks/base/media/java/android/media/MediaScanner.java
33f49c8377ea9ffebaca9c398fb3c0f9585f9fe8 11-May-2010 Marco Nelissen <marcone@google.com> Don't clear the _data column in the audio_meta table, since it isn't
needed, and causes a sqlite constraint exception.
Bug 2671792.

Change-Id: Ie6e5d0369c3750739fa155e651be4d87c016a41f
/frameworks/base/media/java/android/media/MediaScanner.java
c066557378c2305625a7bad3d25f084ad647ef27 20-Apr-2010 Marco Nelissen <marcone@google.com> When updating existing entries in the media database, don't update
the is_music, is_ringtone, etc columns. This ensures that custom
ringtones will still be shown in the ringtone picker after a rescan.
Bug 2594125
Change-Id: I56761240d6f6e699514169d80a445317ba0de9e2
/frameworks/base/media/java/android/media/MediaScanner.java
0096b8d7d119281466763160d5c88c5f9832d005 19-Mar-2010 Marco Nelissen <marcone@google.com> We should pass null for the album artist if it was not set, instead of a copy
of the artist, since the media provider needs to know whether the album artist
was actually set.

Change-Id: I29b885c8293609299a55babadf9ca2a30e20e5bd
/frameworks/base/media/java/android/media/MediaScanner.java
abc2819328c32f2f66506d342c5f560da5107889 19-Mar-2010 Marco Nelissen <marcone@google.com> Include "album artist" when inserting items in the media provider.

Change-Id: Ic34e2d54557409866dc35c29ee397afdfe874762
/frameworks/base/media/java/android/media/MediaScanner.java
b4ca6ef9941701502a9ea4d298d7fe5602ba8e7a 09-Mar-2010 Ray Chen <raychen@google.com> Avoid overriding DATE_TAKEN by unreliable file time. MediaProvider will calculate it if needed.

Change-Id: I05cb8628f2333c26de5c05ee1c7676b8f79a5e9a
/frameworks/base/media/java/android/media/MediaScanner.java
b2d69e3d7742840fe3b2fb86ded8bec510e7a9ca 19-Feb-2010 Andreas Huber <andih@google.com> The MediaScanner is way too obsessed with restricting the files to be scanned.

related-to-bug: 2326148
/frameworks/base/media/java/android/media/MediaScanner.java
bfcb22a207499c7ecd4aef9bea2ac778d8be8fc8 10-Feb-2010 Marco Nelissen <marcone@google.com> Don't create a genre in the database for genre code 255 (unknown)
/frameworks/base/media/java/android/media/MediaScanner.java
3a8cab88e7747dc280ce85895af014f98e80a6cc 15-Jan-2010 Ray Chen <raychen@google.com> Add GpsDateTime support to ExifInterface and correct images table's date_taken value to UTC timestamp.
http://b/2376777
/frameworks/base/media/java/android/media/MediaScanner.java
35b002a9c873fb40116179c8626b9841b0abae74 22-Jan-2010 Marco Nelissen <marcone@google.com> Make the media scanner disregard database entries that do not have
absolute path names. This allows us to store other things (perhaps
with http or content URIs) in the database, without the media scanner
removing them again.
/frameworks/base/media/java/android/media/MediaScanner.java
9a488b44cb479bc42375d2cfcdd4aa6161dc17cf 05-Jan-2010 Marco Nelissen <marcone@google.com> MediaFile.UNKNOWN_STRING -> MediaStore.UNKNOWN_STRING
/frameworks/base/media/java/android/media/MediaScanner.java
052d9c8b414dc9eb1c70d849660592d9bc3b2644 04-Dec-2009 Ray Chen <raychen@google.com> Images.Media.DATE_TAKEN should be in milliseconds.
http://b/2297371
/frameworks/base/media/java/android/media/MediaScanner.java
0b6ee9fc5e9da370e31dce686e7062e5d255fcda 30-Nov-2009 Ray Chen <raychen@google.com> DATE_TAKEN should be in millisecond instead of second.
/frameworks/base/media/java/android/media/MediaScanner.java
05df33ea748d1c497206302f62886f73c7ff1f93 17-Nov-2009 Ray Chen <raychen@google.com> Fix issue 2265955 Use dateCreated when dateTaken isn't valid when writing images/videos to database.
/frameworks/base/media/java/android/media/MediaScanner.java
1851db6804cbdf8d2c8ede0725e73be6fda0f3c0 28-Sep-2009 Marco Nelissen <marcone@google.com> Always consider m4a files as audio, even when they contain a video track.
/frameworks/base/media/java/android/media/MediaScanner.java
d4f3586c93cd9c29056e95cd79f3cb19ac456f3b 28-Sep-2009 Marco Nelissen <marcone@google.com> Check that playlist entries refer to a row in the audio table.
/frameworks/base/media/java/android/media/MediaScanner.java
00c575a3fccb9d3065e913f1b8fcf93e18d44eaf 28-Aug-2009 Ray Chen <raychen@google.com> Add new thumbnail API.
/frameworks/base/media/java/android/media/MediaScanner.java
b8f4725d1bb750e3358a5b5dfcec7b1c5d3b9939 21-Sep-2009 Chih-Chung Chang <chihchung@google.com> Make media scanner read the jpeg orientation tag.
/frameworks/base/media/java/android/media/MediaScanner.java
872a30ec723ebdd97de764406544516545d7c9d4 17-Sep-2009 Chih-Chung Chang <chihchung@google.com> Improve ExifInterface API.

Change-Id: Ic6c4df8244b51b9a0d1c73c3797847220d86604d
/frameworks/base/media/java/android/media/MediaScanner.java
700beb484624a9a34649cb6ff088468e78b758ff 16-Sep-2009 Chih-Chung Chang <chihchung@google.com> Clean ExifInterface. Prepare to make it public.

Change-Id: Ibff719d02f525c1e8583d1892737224a0cc42c37
/frameworks/base/media/java/android/media/MediaScanner.java
a79da2e9b4b57ca72aa9634f80a7a975b9d7a877 09-Sep-2009 James Stokebrand <stokebrand@pv.com> RIO-7461: Update media scanner to scan AAC files.
(Change in frameworks/base git)
/frameworks/base/media/java/android/media/MediaScanner.java
8b0466170082fdf12f78d7b70358002520e99e9b 03-Sep-2009 Marco Nelissen <marcone@google.com> When encountering a .nomedia file, notify the MediaScannerClient,
so that it can erase the data column for entries that are in the
folder containing the .nomedia file. This prevents us from
deleting (via a delete trigger) files when somebody adds a
.nomedia file after the fact.
/frameworks/base/media/java/android/media/MediaScanner.java
099397cbd07c8c991f3126d0d0ac64bb6b3c0b47 17-Aug-2009 Chih-Chung Chang <chihchung@google.com> Fix 1860351: Put datetime in jpeg exif to datetaken field.
/frameworks/base/media/java/android/media/MediaScanner.java
c9706f0262a2f399f95e0d78ba2b7616e08d0069 14-Aug-2009 Sahil Sachdeva <sahils@google.com> DO NOT MERGE, ALready merged to master.
1440173 [NJ-1331] MetaData utility parse the wrong m4a meta data. Changes to Java, application side.
/frameworks/base/media/java/android/media/MediaScanner.java
20b153bffc57711534c0f581258e06fa86afd67a 03-Aug-2009 Android (Google) Code Review <android-gerrit@google.com> am 5fd26775: Merge change 9390 into donut

Merge commit '5fd26775bdd14b15058521c82e34b562e0c1e327'

* commit '5fd26775bdd14b15058521c82e34b562e0c1e327':
Name unknown albums after the folder they're in, similar to how songs
4935d05eaa306cef88cf0ab13eca386f270409ec 03-Aug-2009 Marco Nelissen <marcone@google.com> Untangle MediaPlayer, MediaRecorder, MediaScanner and MediaMetadataRetriever JNI
code, so that creating one of those doesn't initialize all the others. Shaves
a hundred milliseconds or so off music app startup time.
/frameworks/base/media/java/android/media/MediaScanner.java
c3c08ba5d67d836274fabdf4c1bff6f1053d95a3 01-Aug-2009 Marco Nelissen <marcone@google.com> Name unknown albums after the folder they're in, similar to how songs
with no title metadata are named after the file. Only files that are
in the root of the card will still belong to the "Unknown Album"
/frameworks/base/media/java/android/media/MediaScanner.java
ab6ee15f8cd2f34aa5e3f1d84dbd910ce7f49ddd 18-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 474b0f29: Merge change 7686 into donut

Merge commit '474b0f2941430b97b4f24f16f7173e5249ccc8f2'

* commit '474b0f2941430b97b4f24f16f7173e5249ccc8f2':
MediaScanner: Add check for null object in empty title handling code.
bdc0e82f9c075edb67da4a2583e557824c280415 17-Jul-2009 Mike Lockwood <lockwood@android.com> MediaScanner: Add check for null object in empty title handling code.

Signed-off-by: Mike Lockwood <lockwood@android.com>
/frameworks/base/media/java/android/media/MediaScanner.java
5b3f4578452647d867305dd7f7ccfec761a51b84 17-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am 58d19d1f: Merge change 7581 into donut

Merge commit '58d19d1f6321161fdcd10140fe7b9d9053f80bd2'

* commit '58d19d1f6321161fdcd10140fe7b9d9053f80bd2':
Fix bug that would cause files with blank title tags to not be shown in the music app.
55973f1aade915824d2fa7ccab039bcd01a9a80a 16-Jul-2009 Marco Nelissen <marcone@google.com> Fix bug that would cause files with blank title tags to not be shown in the music app.
/frameworks/base/media/java/android/media/MediaScanner.java
5e7e8da04d4a7c5bef51cbb1121f956f1496784e 09-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am b799616d: Merge change 6208 into donut

Merge commit 'b799616d8f0f94e866767fa730f56d82543fb49b'

* commit 'b799616d8f0f94e866767fa730f56d82543fb49b':
Move ExifInterface to android.media package so we can reference it from MediaScanner.
20b03ea70bda3c4fb34e53cdf25cf98c4adb193f 06-Jul-2009 repo sync <raychen@google.com> Move ExifInterface to android.media package so we can reference it from MediaScanner.
Also hide public constructor and wrap common use cases as atomic operation to avoid
race condition in jhead native codes.
/frameworks/base/media/java/android/media/MediaScanner.java
6231e3a778a4ffe61683abefa2479127f4566d4c 06-Jul-2009 Android (Google) Code Review <android-gerrit@google.com> am ef1f21b3: Merge change 6231 into donut

Merge commit 'ef1f21b34f5624adb7436d3da927660ed16c97c7'

* commit 'ef1f21b34f5624adb7436d3da927660ed16c97c7':
Don't trim() in the mediascanner, as that would remove the special "sort first" character.
73bb511adee5444ecd041146fbbd3677fb635949 06-Jul-2009 Marco Nelissen <marcone@google.com> Don't trim() in the mediascanner, as that would remove the special "sort first" character.
/frameworks/base/media/java/android/media/MediaScanner.java
6f3cbac7ebf3e74933e733354afee160475a13c8 19-May-2009 Android (Google) Code Review <android-gerrit@google.com> am 65ff54c4: Merge change 1967 into donut

Merge commit '65ff54c44bbd8c1dd6818d42b7c91c634c644aa9'

* commit '65ff54c44bbd8c1dd6818d42b7c91c634c644aa9':
Document the media scanner's flow through native and java code, since
77f2c4c1f9d1b8b9266a18e8e28fcabdf6599399 19-May-2009 Marco Nelissen <marcone@google.com> Document the media scanner's flow through native and java code, since
I always forget how it works after a while.
/frameworks/base/media/java/android/media/MediaScanner.java
74008f608af0c567456d37e63d48643689388c74 23-Apr-2009 Jean-Baptiste Queru <jbq@google.com> Merge donut into master
9f0b1a48506af8e18162f62570561135b65a4ed1 22-Apr-2009 Marco Nelissen <marcone@google.com> Do case-insensitive matching when determining whether something is music, an alarm sound, notification sound, etc.
/frameworks/base/media/java/android/media/MediaScanner.java
3156bb00dd3ab3d6ec732bb6a64a2e84d08c34f0 13-Apr-2009 Patrick Scott <> AI 145870: Add a build property for the default alarm alert. Update the various
framework classes to deal with the new property. Also update various
documentation that mentions the default ringtones.
Use the build property as the default alert when the user has not chosen
an alert for an alarm. This is also used if the alarm alert is null when
the alarm fires.
BUG=1723684

Automated import of CL 145870
/frameworks/base/media/java/android/media/MediaScanner.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/media/java/android/media/MediaScanner.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/media/java/android/media/MediaScanner.java
d24b8183b93e781080b2c16c487e60d51c12da31 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/frameworks/base/media/java/android/media/MediaScanner.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/media/java/android/media/MediaScanner.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/media/java/android/media/MediaScanner.java