History log of /packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
3fa4c1f0f2d9631aa41567b6c2efb2716421ba40 14-Nov-2013 Marco Nelissen <marcone@google.com> Fix argument references

The bucket id and display names references were off by one, resulting
in brokenness when renaming a directory via MTP
b/10835798
b/11655617

Change-Id: I9e6c510027a37deed55887393e388805f06b86b0
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
6ab6373dea9c980c41c1cb1d5f59e0fd78bbf8a7 30-Oct-2013 Marco Nelissen <marcone@google.com> Check granted permissions for all paths

b/9604671
b/10345049
b/11380658

Change-Id: Ifa4db10261f39e5af5fe84902f7221075a78bad3
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d5fdded86912e9c6a3b28034803989656e9a80ad 23-Oct-2013 Marco Nelissen <marcone@google.com> resolved conflicts for merge of d8eb423a to klp-dev

Change-Id: I44c7c7d0e1da8fd169a0bf57696e308631fa9f25
d8eb423a1088b53a5a3b31e7e78fb095d8100c9d 23-Oct-2013 Marco Nelissen <marcone@google.com> am cefdabeb: am 49f75ad3: am d2727762: am b4a53aa4: am 5943bf87: Also check legacy path

* commit 'cefdabebd2003272d3e2a799b606e877a32d9304':
Also check legacy path
cefdabebd2003272d3e2a799b606e877a32d9304 23-Oct-2013 Marco Nelissen <marcone@google.com> am 49f75ad3: am d2727762: am b4a53aa4: am 5943bf87: Also check legacy path

* commit '49f75ad325c29ff9a7f0e7d8213fbfba1b8cffff':
Also check legacy path
49f75ad325c29ff9a7f0e7d8213fbfba1b8cffff 23-Oct-2013 Marco Nelissen <marcone@google.com> am d2727762: am b4a53aa4: am 5943bf87: Also check legacy path

* commit 'd2727762072f02778fea0bd3bb56c22094fceb16':
Also check legacy path
5943bf87fe6511fa688cb29ccef87ace5ccda522 23-Oct-2013 Marco Nelissen <marcone@google.com> Also check legacy path

b/9604671

Change-Id: I49035ed53dab71cdacb7f3cdd59c18e8bb5ba850
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5d36def3fe5c6a7ec3d04e2f555c47bb4a8babed 17-Oct-2013 Jeff Sharkey <jsharkey@android.com> Get FAT volume ID through vold.

Now that storage volumes are FUSE-wrapped, userspace apps no longer
have access to perform the direct ioctl().

Bug: 11175082
Change-Id: I08b8367a89e4f325dd28c29789165e95c70e9944
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
c52e76d303c6539179b898c444c844787ba44dd4 10-Oct-2013 Marco Nelissen <marcone@google.com> am 81df095d: am e9a60faf: am e9052856: am 1cb04c3a: am b75caaed: am 28680dd8: am 39955731: am dc906ab2: Fix access to secondary storage

* commit '81df095d28df9f1609fb9407262e0e1c3f733231':
Fix access to secondary storage
81df095d28df9f1609fb9407262e0e1c3f733231 10-Oct-2013 Marco Nelissen <marcone@google.com> am e9a60faf: am e9052856: am 1cb04c3a: am b75caaed: am 28680dd8: am 39955731: am dc906ab2: Fix access to secondary storage

* commit 'e9a60faf42d67647812a127ebad18b61ad774f87':
Fix access to secondary storage
e9a60faf42d67647812a127ebad18b61ad774f87 10-Oct-2013 Marco Nelissen <marcone@google.com> am e9052856: am 1cb04c3a: am b75caaed: am 28680dd8: am 39955731: am dc906ab2: Fix access to secondary storage

* commit 'e9052856b016d2ff81e2bf025a2a2df929dc1778':
Fix access to secondary storage
e9052856b016d2ff81e2bf025a2a2df929dc1778 10-Oct-2013 Marco Nelissen <marcone@google.com> am 1cb04c3a: am b75caaed: am 28680dd8: am 39955731: am dc906ab2: Fix access to secondary storage

* commit '1cb04c3a410b2d4586c1b2444bf4c8af4becab69':
Fix access to secondary storage
28680dd8a84f80666bf0ec1361c072790ca4a69e 10-Oct-2013 Marco Nelissen <marcone@google.com> am 39955731: am dc906ab2: Fix access to secondary storage

* commit '399557315f462a5209931b1c6419ab5bdc9ac349':
Fix access to secondary storage
399557315f462a5209931b1c6419ab5bdc9ac349 10-Oct-2013 Marco Nelissen <marcone@google.com> am dc906ab2: Fix access to secondary storage

* commit 'dc906ab2d86f6138cd29a25b432c91835702244f':
Fix access to secondary storage
dc906ab2d86f6138cd29a25b432c91835702244f 05-Oct-2013 Marco Nelissen <marcone@google.com> Fix access to secondary storage

b/9604671

Change-Id: Icc3a0b06e066c71d12634dc11ef934f3ac1c2c2b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b39b32d96e938d5a5792bb56e4c37f3e752493cd 26-Sep-2013 Jeff Sharkey <jsharkey@android.com> Revoke grants when media is deleted.

When deleting images, videos, or audio, revoke any Uri permission
grants, which removes from getPersistedUriPermissions().

Bug: 10928851
Change-Id: Id2fedd5258f9674df1a786b06028b458dda1af17
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ca709d4f9f6ef66337b96010a150e30a5888855e 24-Sep-2013 Jeff Sharkey <jsharkey@android.com> Notify when media roots go non-empty.

If we reported that Images, Videos, or Audio were empty, notify
when they become non-empty so RootsCache is updated and they appear
in UI.

Bug: 10745490
Change-Id: I0b10ca1b8a08ef7f5bd8bbee1eca62ca871aa4e6
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a2bd8dfeac57dc09727c6d16ebf9bac1061df23d 20-Sep-2013 Adam Lesinski <adamlesinski@google.com> Change call to ContentResolver#modeToMode()

ContentResolver#modeToMode() has been moved to
ParcelFileDescriptor#parseMode()

bug:10711271

Change-Id: I487bf2260475c726dd4818b433d0d32bd7a8d1a3
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
01e706a024fc4ac6865718922ebceef6dfef54e1 13-Sep-2013 Marco Nelissen <marcone@google.com> Add basic support for Uri canonicalization

b/10130785

Change-Id: Ia51fa033d3a9ee8482a9828c6066b2d7d126ddab
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
76611f01202d47396de5f5e9a3341ecc572900c4 11-Sep-2013 Marco Nelissen <marcone@google.com> Use null instead of empty string to clear path

Multiple nulls don't violate the uniqueness constraint, but multiple
empty strings do.

b/10493391
https://code.google.com/p/android/issues/detail?id=59429

Change-Id: I79f7bcd1a83d3e514ba8e77b6231462d9082330d
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a8fe0cb0c22e9ccfb680df647cbcd90ee173aafe 10-Sep-2013 Marco Nelissen <marcone@google.com> Merge "Fix existing image entries timestamps" into klp-dev
b2c3695f8a7303469db2909e3ad8fdc090b99caa 28-Aug-2013 Marco Nelissen <marcone@google.com> Check permissions when deleting files.

When images or videos are deleted from the media provider, only delete
the underlying files if the caller is allowed to.

b/9818756

Change-Id: Iddf50b1fcf56220886ed9b6d953d97960cda0ec6
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3e6a42887a17a93b8906ff05693587e25158f2b1 27-Aug-2013 Marco Nelissen <marcone@google.com> Check for path-permissions when opening a file.

When an app is trying to open a Uri, check whether it has been granted
read or write permission by another app via the Intent.FLAG_GRANT_... flags,
instead of only checking whether the app itself has external storage read
or write permissions.

b/10345049

Change-Id: Idbc87fe34a05be9d8220ee7a0223d039480c3ffe
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
2a83ace1b13b45c048c5315dab506842e99e080c 21-Aug-2013 Marco Nelissen <marcone@google.com> Fix existing image entries timestamps

Screenshots were being inserted into the database with the wrong
"date taken" timestamp. Fix existing entries so they are correct
again and appear in the right order in gallery.

b/10424911

Change-Id: I6ff7283ac10be94b0e159b72da7e072084ef5a2b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9cd6e1522d2a8cdeaa93e34a2fdbfd41f48fed47 07-Aug-2013 Marco Nelissen <marcone@google.com> am 67785e03: am 3617eb6c: am e57c5ae4: am 355d65b9: am c015f8e1: am 940b951d: am d0fd622e: am d96863a0: Backport path validation changes.

* commit '67785e0398fa1267d7e2c76d1a709878344c70f5':
Backport path validation changes.
67785e0398fa1267d7e2c76d1a709878344c70f5 06-Aug-2013 Marco Nelissen <marcone@google.com> am 3617eb6c: am e57c5ae4: am 355d65b9: am c015f8e1: am 940b951d: am d0fd622e: am d96863a0: Backport path validation changes.

* commit '3617eb6c97c41c4e9f4120d9eac5ce1730506d3e':
Backport path validation changes.
3617eb6c97c41c4e9f4120d9eac5ce1730506d3e 06-Aug-2013 Marco Nelissen <marcone@google.com> am e57c5ae4: am 355d65b9: am c015f8e1: am 940b951d: am d0fd622e: am d96863a0: Backport path validation changes.

* commit 'e57c5ae4764ace4c6712655ccc007ce4c7eb6f3d':
Backport path validation changes.
e57c5ae4764ace4c6712655ccc007ce4c7eb6f3d 06-Aug-2013 Marco Nelissen <marcone@google.com> am 355d65b9: am c015f8e1: am 940b951d: am d0fd622e: am d96863a0: Backport path validation changes.

* commit '355d65b93a7d97698bf80461e70e600cafbb6404':
Backport path validation changes.
940b951d430a3d03e0cd84c7d73185f198e9e1dc 06-Aug-2013 Marco Nelissen <marcone@google.com> am d0fd622e: am d96863a0: Backport path validation changes.

* commit 'd0fd622ed8507e0af5d1eec42c326c11645cb62e':
Backport path validation changes.
d0fd622ed8507e0af5d1eec42c326c11645cb62e 06-Aug-2013 Marco Nelissen <marcone@google.com> am d96863a0: Backport path validation changes.

* commit 'd96863a0705ae5fcb108645a22e021ea1127ea16':
Backport path validation changes.
e1af9dc9249bb034590af86c2d5abfdb921642c1 02-Aug-2013 Marco Nelissen <marcone@google.com> am e9512423: Merge "Skip albumart when the size of image file bigger than maximal heap size."

* commit 'e95124236863ebcc0450c7eead1ed643f64537d0':
Skip albumart when the size of image file bigger than maximal heap size.
2c3a3d48a78c794c304ed4345d6fa7089d6b1579 01-Aug-2013 Birdson Chen <birdson_chen@pegatroncorp.com> Skip albumart when the size of image file bigger than maximal heap size.

When the audio doesn't contain embedded art, MediaProvider
will help to look for a suitable image file in the same
directory as the media file, excpet if that directory is
the root directory of the sd card or download directory.

MediaProvider looks for, in order of preference:
1 AlbumArt.jpg
2 AlbumArt*Large.jpg
3 Any other jpg image with 'albumart' anywhere in the name
4 Any other jpg image
5 any other png image

If we put a image file and a audio file in same directory of
sdcard, and the size of a image should large than maximal heap size.
It will cause hte process android.process.media stop because OOM.
As a result, we need catch OutOfMemoryError exception to avoid this issue.

Change-Id: I4131188b4b75454f5bdb20c50b930ff8b7a370fa

Change-Id: I4131188b4b75454f5bdb20c50b930ff8b7a370fa
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d96863a0705ae5fcb108645a22e021ea1127ea16 09-Mar-2012 Marco Nelissen <marcone@google.com> Backport path validation changes.

Change-Id: I2f30b3f01fe61306d89a8bd83fbd375a324e5e55
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
70eadbf4eb99cd373d23ac3bb988c1e94e445927 12-Jul-2013 Marco Nelissen <marcone@google.com> Add permissions check

For paths that do not point to the sdcard or cache partitions (for which
READ_EXTERNAL_STORAGE, WRITE_EXTERNAL_STORAGE and ACCESS_CACHE_FILESYSTEM
permissions are checked as needed), check that they are world-readable.

b/9604671

Change-Id: Ib3b8c745139f356e9cb070c0862e0ce63c7bb1ba
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
67865d555bfd38484f3510cfc153a01f6783ac96 12-Jul-2013 Marco Nelissen <marcone@google.com> am d2511f5b: am 411252cd: Merge "Guarantee that db, shm and wal files are deleted together."

* commit 'd2511f5bc176bca10b212f745a457c4b9d32fda2':
Guarantee that db, shm and wal files are deleted together.
d2511f5bc176bca10b212f745a457c4b9d32fda2 12-Jul-2013 Marco Nelissen <marcone@google.com> am 411252cd: Merge "Guarantee that db, shm and wal files are deleted together."

* commit '411252cd75a29c7e184ee13cd15e8598851afb64':
Guarantee that db, shm and wal files are deleted together.
450d884f1bd5de323a645ce1acfae40fb91b8cb0 11-Jul-2013 jangwon.lee <jangwon.lee@lge.com> Guarantee that db, shm and wal files are deleted together.

If media provider failed to open the database during an upgrade,
it deletes the database file and tries again.
But when deleing the file, it doesn't delete wal and shm files.
This commit is to guarantee that
all related files (db, wal, shm) are deleted together.

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

Change-Id: I7b4e3cf71d0b285399794ee9b45791c6a112a00c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d02f90a94d66ba67c0f5ab6e4a2110e763a88d81 08-Jul-2013 Jean-Baptiste Queru <jbq@google.com> am be2c8031: resolved conflicts for merge of 0fc8e0bc to stage-aosp-master

* commit 'be2c803157a3a1c0927e3cd4c0853119067c9b53':
Make sure date taken time is set
be2c803157a3a1c0927e3cd4c0853119067c9b53 08-Jul-2013 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 0fc8e0bc to stage-aosp-master

Change-Id: Ib65aa24251d8f34834f20fa4301782520c9554f6
20368a558593c685623bfff6df1f4545d53f8291 05-Sep-2012 Jia Su <jia.su@sonymobile.com> Make sure date taken time is set

computeTakenTime() depends on the value DATE_MODIFED,
so call it after DATE_MODIFIED are set to ensure it
works correctly.

Change-Id: Ib4f3b03c487b45dd081dab5bd4ddfa72221b434f
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
184b7a6af68be4868a398b5c53a8acbcd88ec931 31-May-2013 marcone@google.com <marcone@google.com> am a8293053: resolved conflicts for merge of f72fde49 to stage-aosp-master

* commit 'a82930532f35f34da696dd00f1f511fcdbb56c8a':
Simplify DB query with "COLLATE nocase" instead of "LIKE" and "substr"
a82930532f35f34da696dd00f1f511fcdbb56c8a 31-May-2013 repo sync <marcone@google.com> resolved conflicts for merge of f72fde49 to stage-aosp-master

Change-Id: Id3f8e5514828c2f2ad053d8db8b64c048db9f8ab
f72fde49a6c6e98635339cf5347ea5668e28a9e1 30-May-2013 Marco Nelissen <marcone@google.com> Merge "Simplify DB query with "COLLATE nocase" instead of "LIKE" and "substr""
f87e5f24e0d24353bbbd783618080e559f8f69e8 29-May-2013 Jeff Brown <jeffbrown@android.com> am f2c2497c: am ac690856: Merge ""isMediaDatabaseName" API has to return true only if a parameter is database file path."

* commit 'f2c2497c17dc5b4e97cae8ab2bba3c302dddfb4b':
"isMediaDatabaseName" API has to return true only if a parameter is database file path.
3e643381e617955239bf3860058530ed0bd30fe4 29-May-2013 Jeff Brown <jeffbrown@android.com> am dfcdce9e: am 1d382199: Merge "Fix logic that delete "-wal" file."

* commit 'dfcdce9e940c6bdd797a258b8d14f0f76fe89d39':
Fix logic that delete "-wal" file.
f2c2497c17dc5b4e97cae8ab2bba3c302dddfb4b 29-May-2013 Jeff Brown <jeffbrown@android.com> am ac690856: Merge ""isMediaDatabaseName" API has to return true only if a parameter is database file path."

* commit 'ac69085601826db935d811c63862355346e04e08':
"isMediaDatabaseName" API has to return true only if a parameter is database file path.
dfcdce9e940c6bdd797a258b8d14f0f76fe89d39 29-May-2013 Jeff Brown <jeffbrown@android.com> am 1d382199: Merge "Fix logic that delete "-wal" file."

* commit '1d382199339e07c05aa1b5679864f6543b4de5c0':
Fix logic that delete "-wal" file.
ac69085601826db935d811c63862355346e04e08 28-May-2013 Jeff Brown <jeffbrown@android.com> Merge ""isMediaDatabaseName" API has to return true only if a parameter is database file path."
a68a3f24c605b319d575abe9bef66a6f5ad99b80 23-May-2013 yi.jang <yi.jang@lge.com> Simplify DB query with "COLLATE nocase" instead of "LIKE" and "substr"

Nocase comparation with "LIKE" and "substr" DB query can be changed to
"COLLATE nocase" on SQLite.

Change-Id: I66e4e22758d1cf8fbb3e3e3eb3920576eb61d93d
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
c39ac19aa7a228f30e314175f707210c8e2c4c46 06-May-2013 Marco Nelissen <marcone@google.com> am f95e6b1a: Column in log table is not unique

* commit 'f95e6b1acab8beb27a719aa368ae8d2525853bef':
Column in log table is not unique
f95e6b1acab8beb27a719aa368ae8d2525853bef 05-Mar-2013 Marco Nelissen <marcone@google.com> Column in log table is not unique

DATETIME was set as primary key but that value is not always unique.
This solution is to remove primary key constraint from column "time"
to avoid SQLiteConstraintException caused in case same DATETIME value
is attempted to be inserted into log table.

(this is externally contributed change ef8c5a3947f592154e443e7c63c3e6f2ebde8a07
which was skipped in an earlier automerge)
b/8832525

Change-Id: I26ba5356f54b589882447f4aa51892e6b2928acd
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d63eb65db514ad7064951f221f0278a3f2293411 25-Apr-2013 Jeff Sharkey <jsharkey@android.com> Avoid leaking thumbnails PFDs.

Change-Id: I2059eff0a4e7d93a3d4e3a434242e69ce193be7e
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ae6d97e6bc6a03385909f939be6e35e47520dc99 03-Apr-2013 kwangjung.kim <kwangjung.kim@lge.com> Fix logic that delete "-wal" file.

"databaseList()" method, All files in database folder are returned.
Such as "-wal" file, "-shm" file and so on.

In case of media provider, it uses WAL mode.
If "-wal" file is deleted, side effects appear to SQLITE_IOERR_SHORT_READ and user data is deleted.
Therefore, When deleting a database file, ".db" extension should be checked.

Signed-off-by : kwangjung kim <kwangjung.kim@lge.com>

Change-Id: Ie833d3990f1988929665d4c1b2ea77ad92bd2ded
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
168d49e39a356cdbd0fa04c356e3480e413d6f34 03-Apr-2013 kwangjung.kim <kwangjung.kim@lge.com> "isMediaDatabaseName" API has to return true only if a parameter is database file path.

But it check only prefix with 'external-'.
Media provider uses Write Ahead Logging that makes wal and shm files.
In case of wal and shm files, the API can also return true.
So additionally, the API has to confirm that the file path has '.db' extension.

Signed-off-by : kwangjung kim <kwangjung.kim@lge.com>

Change-Id: Ibc394ab5dac169b126bce58d9416d2196b1afe61
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9f635dd94465e4dc324c6c4c15d081d1b18b5693 06-Mar-2013 Jeff Sharkey <jsharkey@android.com> Use Environment to translate storage paths.

Change-Id: I96f13628d39c93dddefb7cb4b42c77a5fef5ca74
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ca99ed311aa68cc668799d1a89c353e3d2eb0d02 05-Mar-2013 Marco Nelissen <marcone@google.com> am ff714c7e: Merge "Delete the code that does not use"

* commit 'ff714c7e4d036a621631dc1064feaae28fb10527':
Delete the code that does not use
ad9c7d31647955176d0492201c9b511861d96489 05-Mar-2013 Hyoseong Kim <muzbit.kim@lge.com> Delete the code that does not use

Collator.getInstance() returns new Collator object.
But, new Collator object is not used in function.

Change-Id: Ie6ef4ecb5de8e47ac797aebed58fe5c8a0693cc0
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
50c62ef29017f94bd7b83dd4650aebb23be477df 01-Mar-2013 Marco Nelissen <marcone@google.com> Fix album art extraction

Change 92013781ab1573eee3d5d75682f320fe3a6076f2 broke album art
scanning, because it requires the caller to ensure the parent
folder exists, which the album art scanner didn't do.

Change-Id: I4c619f3dbd75c3afa898b69059126493ea77cc07
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ef8c5a3947f592154e443e7c63c3e6f2ebde8a07 27-Feb-2013 Daniel Bonnevier <daniel.bonnevier@sonymobile.com> Column in log table is not unique

DATETIME was set as primary key but that value is not always unique.
This solution is to remove primary key constraint from column "time"
to avoid SQLiteConstraintException caused in case same DATETIME value
is attempted to be inserted into log table.

Change-Id: I06f1cd36a6f4f7becdb444599e4de7866813c9cd
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
20e23658bac72ce379583ea32a006c0f093197e3 12-Feb-2013 Marco Nelissen <marcone@google.com> Fix media provider deadlock

It was possible for the media provider to deadlock if writing album
art failed. In this case, it would call back in to the content provider
while inside a transaction. That new call would attempt to synchronize
on sGetTableAndWhereParam. If another thread happened to be doing an
update at the same time, then that thread could have already synchronized
on sGetTableAndWhereParam and be blocked on starting a transaction.
Moving the call outside of the transaction should fix this problem.
b/8114247

Change-Id: Ic8ca14b09de6221c4f99bfb323fd8c87c51c0225
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
89ae5b2dc9fb8a5fb3bfba83e0caf69dc5d3d6a4 07-Feb-2013 Marco Nelissen <marcone@google.com> am edfa644d: Merge "Notify change of movePlaylistEntry after transaction ends"

# By Oscar Rydhé
# Via Gerrit Code Review (1) and Henrik Baard (1)
* commit 'edfa644dd785f91949b3cb865e28037bf0acae14':
Notify change of movePlaylistEntry after transaction ends
5e7f74c68fd89c385bc1f4a08e4ddd439c930c7e 02-Feb-2012 Oscar Rydhé <oscar.rydhe@sonyericsson.com> Notify change of movePlaylistEntry after transaction ends

When a client asks the Media Provider to rearrange a playlist
the notifyChange callback function is called before the database
transaction is ended resulting in that listeners can't get the
new data when they get the callback.

notifyChange() is called before the database transaction is ended
resulting in that listeners can't get the new data when they get the
callback.

This fix will wait until the database transaction is finished
to do the callback.

Change-Id: Ifdfbb047b809bd5fba4752bcdd299927f9082eee
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
375446bd790c091597cbdc1509b1746dcceb59a1 08-Nov-2012 Marco Nelissen <marcone@google.com> am cccd07ba: am 8f7e3e0f: Merge "AlbumArt image of songs in the non-primary storage root dir are images in the same dir"

* commit 'cccd07babf0b6cc2ac6979edbf780e32a02addd6':
AlbumArt image of songs in the non-primary storage root dir are images in the same dir
cccd07babf0b6cc2ac6979edbf780e32a02addd6 08-Nov-2012 Marco Nelissen <marcone@google.com> am 8f7e3e0f: Merge "AlbumArt image of songs in the non-primary storage root dir are images in the same dir"

* commit '8f7e3e0f996494cca5054005b9befa456e1087e1':
AlbumArt image of songs in the non-primary storage root dir are images in the same dir
f5b95460c7b93029bf16634dbefe4185d461410a 21-Aug-2012 guoyin.chen <guoyin.chen@freescale.com> AlbumArt image of songs in the non-primary storage root dir are images in the same dir

MediaProvider will fall back to the image in the same folder of music,
if MetadataRetriver failed to extract the AlbumArt image from those mp3 files.
MediaProvider will only bypass the albumArt image search if the music located
in the root director of the primary external storage. Add this bypass for all
external storages.

Change-Id: I972586b2f92bd439f51ee932f09e824fc5507236
Signed-off-by: guoyin.chen <guoyin.chen@freescale.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
934af0229b25901e61a030f17bf220722ccfb427 07-Nov-2012 Marco Nelissen <marcone@google.com> Protect against duplicate timestamps

Despite the timestamp having millisecond granulatiry, it was still
possible to get a duplicate one for very short scans. Instead of
throwing an exception, just overwrite the previous one.

Change-Id: Ia468838c6aca79384cf1fa571be8262d19ddd382
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ff55c35921e1215d39adf620db7d71f9839103c1 03-Nov-2012 Marco Nelissen <marcone@google.com> Let apps decide not to have change notifications

It turns out that setting a notification Uri for a Cursor is quite
expensive. If the app doesn't need it (because it will only access
the cursor once and then throw it away, for example), let it specify
that change notifications are not needed.
b/6751354

Change-Id: I225415e0c29ca3b87a1630e2d2895b6569583fb4
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e870bcda353ccda42bf677f643036c130e10ce2b 01-Nov-2012 Marco Nelissen <marcone@google.com> Switch _data column to be case insensitive and unique

Update media provider to use case-insensitive _data column for the external
database, and enforce uniqueness (no duplicate _data entries) for both
internal and external.
b/5751208
b/6751354

Change-Id: I4790e4ddc241cbbfb87e1638c8b4e462d207b21a
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
92013781ab1573eee3d5d75682f320fe3a6076f2 30-Oct-2012 Marco Nelissen <marcone@google.com> Don't create files when inserting entries

Don't automatically create files when inserting an image or video entry,
instead just generate the filename and store it in the database, and
defer creation of the file until the app calls openFile().
This could potentially break apps, but Camera and Gallery seem fine with
it, and CTS tests still pass.
b/7298303

Change-Id: Iaa311eecd6ae84f5748d8c7c3927a885f3b8c33f
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5226337c1165cb76583c318d639fdc7be4979e88 20-Sep-2012 Mike Lockwood <lockwood@google.com> am b4cce184: am 9bc0e811: Update bucket_display_list and bucket_id columns when renaming directories via MTP

* commit 'b4cce1845336fe11dfd41b0eda14892e26799abf':
Update bucket_display_list and bucket_id columns when renaming directories via MTP
68e1c22d854abe268f387f59cb4bfa9a590a013c 20-Sep-2012 Jeff Sharkey <jsharkey@android.com> am 96ed5dcd: am 6d1fac3d: Merge "Update buckets after path changes." into jb-mr1-dev

* commit '96ed5dcd7f84926c1224914a4ad25f94a722d245':
Update buckets after path changes.
9bc0e811f06c871f8263855bcff32bc8e58d8d20 19-Sep-2012 Mike Lockwood <lockwood@google.com> Update bucket_display_list and bucket_id columns when renaming directories via MTP

Bug: 6949231

Change-Id: Ib301b250c40a6abc3cab17658e19308951b4cd4a
Signed-off-by: Mike Lockwood <lockwood@google.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
8bd4260d1b6c02252130f8c319ca6f4c3aed6297 19-Sep-2012 Jeff Sharkey <jsharkey@android.com> Update buckets after path changes.

Bug: 7174672
Change-Id: Ib44a52ad337ca6df135955e71e6cec3261da780d
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
7e0851411d4450634e8e91acad810a3931a5db87 13-Sep-2012 Jeff Sharkey <jsharkey@android.com> am 7e3afafd: am 57b65f10: Leave trigger intact during upgrade.

* commit '7e3afafd1bf57a071fafcd0a99819597884c16f0':
Leave trigger intact during upgrade.
88b779ec82f5da2a8a494df96c22ee4ea9213f96 13-Sep-2012 Jeff Sharkey <jsharkey@android.com> am 9d22e88c: am 395ad259: Include user identifier in external storage paths.

* commit '9d22e88c3befa0491fc2267c90df321af9f9d164':
Include user identifier in external storage paths.
57b65f10aaafc4bf42a0fa59eb2bbe6c8371c2e6 12-Sep-2012 Jeff Sharkey <jsharkey@android.com> Leave trigger intact during upgrade.

Change-Id: I55a93be5e1edd0f00c318d07363242388936aa63
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
395ad2597601ccf285cfe679c7263a1b1feee231 09-Sep-2012 Jeff Sharkey <jsharkey@android.com> Include user identifier in external storage paths.

When building external storage paths, always include user in path
to enable cross-user paths and aid debugging.

Bug: 7131382
Change-Id: I85f9eeed418a4fcced6633c579642e947fba65d7
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9c65f96b4a3a07601f9db377dfa7d645f7fc9212 14-Aug-2012 Marco Nelissen <marcone@google.com> am dcbeb813: am 9b1fff74: Fix mediaprovider stats

* commit 'dcbeb813d0a88159202ad711209e90dfca1f596a':
Fix mediaprovider stats
9b1fff741d2dc2b5f64727417c1ae74a051f9b02 14-Aug-2012 Marco Nelissen <marcone@google.com> Fix mediaprovider stats

Increment delete/update counters in a few places I missed, and add
an extra log for unmounted storage to help diagnose b/6094111

Change-Id: I8118f67bb6114526dfe2839055ff447937266436
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
34d6cfab3faf234d36ac3da63dcc50ef3d5fc1a5 02-Aug-2012 Marco Nelissen <marcone@google.com> Only set file size if the app didn't

This lets apps specify the eventual file size if it wants to,
while the provider will fill it in with the current file size
if the app didn't specify it.
b/6857704

Change-Id: Ide12957180a5826404821459368abd2de4f6d2ba
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
753f04a0e9fc9da857623dc14d5f8f5bce3eb0bc 23-Jul-2012 Marco Nelissen <marcone@google.com> Use fractional seconds for timestamp

This should prevent key uniqueness issues like in b/6700936

Change-Id: Ie0416024f39b2e2c4a84512adede55b4a49755d4
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
32fce221950565c87cc1d04f8f9d5d664952f01b 19-Jun-2012 Dave Burke <daveburke@google.com> am 2dc83e22: Move MTP communication for inserted files outside of db transaction.

* commit '2dc83e226f1016c117e9dc377aa6bcbc7328e10e':
Move MTP communication for inserted files outside of db transaction.
2dc83e226f1016c117e9dc377aa6bcbc7328e10e 18-Jun-2012 Dave Burke <daveburke@google.com> Move MTP communication for inserted files outside of db transaction.

Bug: 6613558
Change-Id: I29f5c01b283ab34291bee740926229b61aa56f64
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
c8bb9ee1bd6bea082550fc2479500da092f0c665 24-May-2012 Jeff Sharkey <jsharkey@android.com> am 877f0a4d: Merge "Treat missing Cursor as FNFE." into jb-dev

* commit '877f0a4d23d4be09a2c3b2f3e637cc3d1332e160':
Treat missing Cursor as FNFE.
877f0a4d23d4be09a2c3b2f3e637cc3d1332e160 24-May-2012 Jeff Sharkey <jsharkey@android.com> Merge "Treat missing Cursor as FNFE." into jb-dev
91842bef7759efbeb3830ce1728289dc6b7d17c8 24-May-2012 Jeff Sharkey <jsharkey@android.com> am 090b69b2: Merge "Handle the case case." into jb-dev

* commit '090b69b2def68199dfa5206fc8f03b7f7d084985':
Handle the case case.
090b69b2def68199dfa5206fc8f03b7f7d084985 24-May-2012 Jeff Sharkey <jsharkey@android.com> Merge "Handle the case case." into jb-dev
8ea255e83eb38aa6a33d0e02698149799f77672a 24-May-2012 Jeff Sharkey <jsharkey@android.com> Treat missing Cursor as FNFE.

Bug: 6543820
Change-Id: I215921f9bc2196ec16df40bacdc249b5c079254a
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
dfd97076b0542e8f27a62e4ba64e1121c8b127f5 23-May-2012 Jeff Sharkey <jsharkey@android.com> Handle the case case.

Since external storage is case-insensitive, check if we have an
exact match on internal storage before opening directly. When it
doesn't match exactly, we fall back to letting the sdcard daemon
resolve the path.

Bug: 6544070
Change-Id: I6e6094f4b639ac70feae6549648c1e486480ed71
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ff42294a2b050913c172b580a892a9e40aae24d2 23-May-2012 Marco Nelissen <marcone@google.com> am 16f31d6f: Merge "Handle _ and % in paths" into jb-dev

* commit '16f31d6fbe946ce7912ee6ddddd4b3660d3e66e7':
Handle _ and % in paths
16f31d6fbe946ce7912ee6ddddd4b3660d3e66e7 23-May-2012 Marco Nelissen <marcone@google.com> Merge "Handle _ and % in paths" into jb-dev
52e925fc3b61fdef0e7218fb89d7e154b95ff447 23-May-2012 Jeff Sharkey <jsharkey@android.com> am f3329452: Open file directly when external storage emulated.

* commit 'f3329452c5554f4a3bcd3c41d7ec669a0d55c997':
Open file directly when external storage emulated.
f3329452c5554f4a3bcd3c41d7ec669a0d55c997 23-May-2012 Jeff Sharkey <jsharkey@android.com> Open file directly when external storage emulated.

For the special case where (1) a file lives on external storage,
(2) it's being opened for reading, and (3) external storage is
emulated, this change rewrites the path at the last moment to open
the file directly from internal storage.

This avoids the overhead of forcing I/O through the emulated storage
layer when we've already asserted the caller has permission. This is
only possible because MediaProvider is running with the media_rw GID.

Bug: 6539384
Change-Id: Ieda6b30e819340d46466f8db2e34b47bbf06ee08
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5461887800a42bdcbcaaad5d2da0bf97ea867b7a 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: I3912dd70b842ccba2652385a7733965b6691d303
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4b6b8d02415b23d1e98d7f320e7aee6c8ffcae4f 17-May-2012 Jean-Baptiste Queru <jbq@google.com> am 086f6926: Merge "Check external storage volume ID to ensure media is actually mounted."

* commit '086f6926e70b3269af0bdf66dd8501ebf49469f9':
Check external storage volume ID to ensure media is actually mounted.
988280a7b7cba5888b943a6db05aab703fd9c35a 15-May-2012 Marco Nelissen <marcone@google.com> Optimize bucket name, enhance logging

Small optimization to bucket field updater: reuse the same ContentValues
and not needlessly convert to/from integer.
Also add a mechanism to store short messages in the database, in order to get
better information from bugreports.

b/6467624

Change-Id: I2777d58e5fefe98a0e91794ef25e1be0d2408304
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
677d5c9a353fd956c9cb981ca38d9fb351c0421d 15-May-2012 Marco Nelissen <marcone@google.com> Speed up schema update

Restrict updating the "bucket" columns to just images and videos,
instead of all files.

b/6344917

Change-Id: I93bb236556220a05dffc633219302cda43facbd7
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d4e1312b4927b2bdd1f47e3d989f7293635c1125 14-May-2012 Marco Nelissen <marcone@google.com> Set the right parent id

The media provider was filling the parent-cache with bogus values during
a media scan, causing all files to appear in the MTP root instead of in
their proper locations.
b/6487442

Change-Id: I3dacd6c69072be13e75ddf59662b16682e806d68
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ae1e6c5632ff08bcdacb7c75662398db122ac850 04-Mar-2012 Mike Kasick <mike@kasick.org> Check external storage volume ID to ensure media is actually mounted.

Programs may request to media scan files (via MediaScannerConnection::scanFile)
before external storage is mounted. If that happens, MediaProvider creates
an external-ffffffff.db (volume ID -1) database once external storage is
mounted, instead of the one with the expected volume ID.

Later, if android.process.media is killed and respawned, the real external
database (that is, the one corresponding to the actual external storage
volume ID) is attached. At best, that database contains stale records.
However, in conjunction with another bug (where the LRU database garbage
collector prunes all but one external database), most often a new, empty
database is created. This results in the sudden disappearance of all
ringtones and media from programs that depend on the media database.

Change-Id: If4e23b52cd09a640e26852916eef53710c27d933
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5619dbb4338e9acea165f4cc0f1791d00e8df445 08-May-2012 Marco Nelissen <marcone@google.com> Fix media provider dumpsys

MediaProvider would not set the scan start time in some cases, which
would then make it skip some dumpsys output. This fixes the problem
by ensuring that the scan start time is set when attaching to the
volume.
b/6456260

Change-Id: I99f25ff5f2dd44cf92b08bbdf8fb015cd062e958
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
46e56db35b1ac30062db31f38b04cb719bba6bd8 03-May-2012 Marco Nelissen <marcone@google.com> Don't insert duplicate entries into the genre map

b/5702487

Change-Id: Ie0392b60a6c258dc378ac5d2bfe73aa7f9b47c4e
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
007645ee2c67b83ffdd90d0e583ec866c60c4614 09-Mar-2012 Jeff Sharkey <jsharkey@android.com> Enforce permissions on path in _DATA column.

Since _DATA can be supplied by external apps, ensure they hold any
required permissions before opening.

Bug: 6131916
Change-Id: I7dd4e4d1e1a1a2fc690a2d0f5e9f432451e73832
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
34fa8b5146353268880de4dcb61bb4fdffc10543 19-Apr-2012 Marco Nelissen <marcone@google.com> Fix album art retrieval edge case

When re-retrieving album art that had previously been deleted, a
NullPointerException might occur.
b/6359924

Change-Id: Icb1aa1bd52583025893e5b8cc7a73c47a4bfe8f3
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
10a901b7fb5cfabfdfd785b5508859a2b0c135c8 18-Apr-2012 Marco Nelissen <marcone@google.com> Fix bug exposed by CTS

b/6293272

Change-Id: I1b4288b5637452cc19101e78ed32e5c50330afe2
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a2466a7a8613b61fa570a4e68bff9460c1ab1920 16-Apr-2012 Owen Lin <owenlin@google.com> Update the bucket_id since we changed the values in _data.

Change-Id: I82f90b0762a6b3342e7a84ec40b205e5b9377905
fix: 6326240
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
59f8f11eaef252b82d62bfd5e763ccf350aa48b6 13-Apr-2012 Marco Nelissen <marcone@google.com> Fix media database after sdcard mountpoint move

The internal "sd card" storage is now in /storage/sdcard0. However
since /mnt/sdcard still exists for compatibility, the media scanner
will see a bunch of new files in /storage, in addition to the existing
files in /mnt/sdcard, resulting in two entries in the database for
every file.
This change removes any entries that were already scanned in /storage,
then updates the paths for the existing /mnt/sdcard entries to point
to /storage instead. This will handle both updates from ICS, as well
as fix the database for people that ran a build inbetween the move
to /storage and this change.

b/6131916

Change-Id: I1c071187651544be0fdb69e1cdb6367b636fc6d5
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4eff7fef57715b2247f9cfc98c7f69809ab35ade 06-Apr-2012 Marco Nelissen <marcone@google.com> Fix playlist issues.

If an item was removed from a playlist, the play_order field of the following
items would not be adjusted. Because of a bug in the code for reordering items
in playlists, this would prevent reordering of items after the deleted item,
and could confuse apps that appended more items to the playlist after that,
causing them to insert with duplicate play_order values.
This change both makes it safe to have gaps in the play_order sequence, and
ensures that when deleting items, the following items have their play_order
adjusted downward so as to not leave any gaps if there weren't any before.

b/6299084

Change-Id: I0709fa7167790a86b966059184e15b97da2ed74f
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f0b229bef169b9c7197ec630ef79a36bf5ba9969 05-Apr-2012 Marco Nelissen <marcone@google.com> Internal db does not have genres or playlists.

b/6293320

Change-Id: I11297ce78ede748b37d7f6c2cec361bc5f837d3b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
7074cb9b72666fc300605abe5fa4d28f7f9f4c0d 04-Apr-2012 Marco Nelissen <marcone@google.com> Force rescan of video files to fill in width/height

b/5820120

Change-Id: Ied554557627dcc29577c316ad30e4f5c3dd8e7f8
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
0e2a2386b39972286df21f4db5a9dd1df548c34d 23-Mar-2012 Jeff Brown <jeffbrown@google.com> Enable WAL mode using new API, which is more efficient.

Bug: 6124556
Change-Id: I7f4f03554b29f89d6b467350e2d9f14eb820da24
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9311c7ff9d35ca3acc908da3da7a79fbf7a8da6b 17-Feb-2012 Marco Nelissen <marcone@google.com> Fix build.

Change-Id: I2807d1aa2786534f2858a6bac2b359ad64195b14
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
90c7da0610b7c3f4d9f4f3b2767e0bae5f3ab258 17-Feb-2012 Marco Nelissen <marcone@google.com> Add index, change the way db version is specified

Instead of specifying the database version as a constant in code,
tie it to the apk version code, and add a version code to the
manifest.
Also add a new index on files._data, to aid in doing case-insensitive matches.

Change-Id: Ib5b623cfd5a3120603dcf43bcbb9d3f3e5533bf6
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5118dba282c95fda77e03e63b6dd11505c474ee5 10-Feb-2012 Marco Nelissen <marcone@google.com> Remove more triggers

Remove the audio_delete and audio_meta_cleanup triggers and perform
their function in provider code.
Note that the audio_delete trigger was was incorrectly recreated in
the recreateAudioView() method, which made it so the trigger was
never actually used (since we're not deleting on the audio view anymore),
and even if you managed to use it somehow, it would have failed (because
one of its trigger actions was a delete on audio_meta, which is a view).

Change-Id: I846c3e24ae9b8ad539233f84714ef117e8ce6a9c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d1983eb3406c26342fd5da4657e819a905fd4beb 07-Feb-2012 Marco Nelissen <marcone@google.com> Add parameter to allow speeding up deletes

In some cases we don't want the underlying file to be deleted when its
database entry is deleted. The media scanner does this by updating the
row and clearing its _data column before deleting it. This adds quite
a bit of overhead and slows down the scan when lots of entries are deleted.
This change adds support for a new parameter to be added to Uris when
deleting entries from the media provider, which makes the media provider
skip deleting the underlying file, which allows the media scanner to
delete entries from the database without first having to update them.

Change-Id: I9f83e6dd02d84166d9ee95cd466e763ab5624459
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5afff430a4ebb751dadeb0112a1fe2052c6f5c05 06-Feb-2012 Marco Nelissen <marcone@google.com> Remove _DELETE_FILE trigger for videos

Change-Id: Ie49d5ab7529ba80f1cf30aa019ee2eeec0b5f1f1
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a6207286f6e1cc4a13d44194f25ecfc40796e024 04-Feb-2012 Marco Nelissen <marcone@google.com> Remove a few more triggers.

This removes the _DELETE_FILE triggers related to images and image thumbnails.

Change-Id: I8efe72c9df3ff5dea12dedc64d0ddfd54badf9ef
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
166204590e5f58008dbc0b4d3abdfa7ab4619867 03-Feb-2012 Marco Nelissen <marcone@google.com> Don't use delete file trigger for video thumbnails

A first step towards getting rid of all _DELETE_FILE triggers

Change-Id: I62ebdaa346553360983d018f5d12acf0d5567c79
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
38b4364a731875c8f5a845f7543da3494a5424d0 27-Jan-2012 Marco Nelissen <marcone@google.com> Handle adding/removing/renaming nomedia paths

b/5849015

Change-Id: Icb2bc0f0b9f132d082f5c4d5f0d3c5701ff3e857
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
dc025ab2edc8d74170ae54dd33860adcca3ad31c 20-Jan-2012 Marco Nelissen <marcone@google.com> Fix bug when renaming folders via MTP

Lack of where-clause and use of replace() made it so that additional,
unrelated entries could also be renamed (though only in the database,
not on disk).
b/5892654

Change-Id: I0a3062a2d5f61838b587c6f315dd36e276016da1
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5809eb2b5fd77bd7d14548669c70e4a672e43df6 06-Jan-2012 Marco Nelissen <marcone@google.com> Rebuild the genres.

A bug that prevented non-parenthesized numeric genre codes from being
parsed was fixed, so rebuild the genres.

Change-Id: Ic1b80f1d56069ff62a3903565a0d4209134c156b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
10af34f31704509a71d02b0b4a15cfa07bbfede3 17-Dec-2011 Marco Nelissen <marcone@google.com> Make MediaProvider dump some info into bugreports.

Change-Id: Ia156579a37648db24540a81b1476e5a54d625c9a
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
7f36494e085c26c69cd5925e54028822025eff29 12-Dec-2011 Marco Nelissen <marcone@google.com> Speed up media scan by caching parent directories

During a media scan, a substantial amount of time was spent querying the
database for the id of the parent directory. Caching these in memory helps
to speed this up.
b/5739292

Change-Id: I6bd7555b5879b59902deb80035cf4a5729b1b046
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
bdcd6c157b84f26bd006188c18c8c07a543afe8c 20-Sep-2011 Chih-Chung Chang <chihchung@google.com> Fix 5224359: add width and height columns.

Change-Id: Ic93b5be579d3e0bd416d7d918d7717c1b3aff0ea
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
63b4ed85f500e23297ad5eb530318e06b9ab2289 16-Mar-2011 Dongwon Kang <dwkang@google.com> To fix the condition for device created playlists.

Background:
To create a playlist, Music app passes null and
cts.MediaStore_Audio_Playlists_MembersTest passes an empty string for
DATA(path) field.

Change-Id: Ifa4a8f304a22825f9ab8a6cd66b7984c7aaf40e2
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
971a2ef5165e2072c76bf25049fdda94187019c2 22-Aug-2011 Dianne Hackborn <hackbod@google.com> Add boot message when upgrading databases.

Change-Id: Ieb3b68e4c28641b86b20b0cbb567be4d333ec788
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3530a7b839b08141084026b8a6e0276fb9d8c51e 20-Aug-2011 Marco Nelissen <marcone@google.com> Merge "Performance improvements for db schema update."
9491c3bd011644f5fe69fd47f73d0e1245b33feb 20-Aug-2011 Marco Nelissen <marcone@google.com> Performance improvements for db schema update.

Creating a temporary index to use while performing certain update
steps shaved 26.5 seconds off a 27 second update step.
Using a where clause with arguments instead of creating a new
hardcoded where clause for every update shaved another 2 seconds
off a 4 second update step.
b/5149066

Change-Id: I79a263995cce00a5427ea3851df664dfc5c1da8c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
fd8402c8904368ad9e90a7fffe4237c87e11273c 19-Aug-2011 Dianne Hackborn <hackbod@google.com> Fix issue #5149066: ANRs in media provider when booting after update from GB

We now do the update in a pre boot receiver.

Unfortunately this update can take a long time -- over 8 minutes on my device
-- so we'll need to do something about giving the user feedback or such.

Change-Id: I5c97501690744439d9c938ec68aa00dae9006288
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4b230ed7c44706e56574d8d7481169b0ad2d0108 14-Aug-2011 Mike Lockwood <lockwood@android.com> Clear file path before deleting records on secondary storage unmount to avoid accidental file deletions

Also broadcast change on all media Uris rather than just the files table

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

Change-Id: I3947cd17e1e07ff39858772232495a739919d76a
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b8f9b763105fb19dc4d955edc3095a64b94d2a58 31-Jul-2011 Mike Lockwood <lockwood@android.com> Move genre table management from MediaScanner to MediaProvider

Fixes problems introduced with bulk insert support

Change-Id: I1fd5810f896ba44cb266c6f1ee2b0d5301d72360
Bug: 5092877

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e9ee0248d62f3badef8a554f35f78e9116ef8a5c 29-Jul-2011 Mike Lockwood <lockwood@android.com> Fix NPE in detachVolume()

Bug: 5093450

Change-Id: I5a3d6fb4b1572cf478e8563f2e241191929de78c
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ff3f46664174bc1b042f48a33b4a86ce53e73683 22-Jul-2011 Mike Lockwood <lockwood@android.com> Remove logic that computed the media type based on the file extension.

This was added for the earlier media scanner bulk insert implementation,
but should not be here because it defeats the .nomedia feature

Bug: 5052436

Change-Id: I05e3904925f33a45e355335d365756db16016b4c
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
bc442ef681710cca3d8eb1a57d6e81471c9987c0 20-Jul-2011 Mike Lockwood <lockwood@android.com> Revert two changes related to bulk insert support

The bulk insert code in the media scanner will now insert using media Uris
so this code is no longer needed

Revert "Fix copy & paste error from previous change"

This reverts commit 480d82ad87533b60280f666eadb6deaf2f6999a6.

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

This reverts commit 1363e8abff85bb374c61c663b000c53bd396d26d.

Change-Id: I466d9a02be99340fe65753e5f2798d8eb954abfe
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
480d82ad87533b60280f666eadb6deaf2f6999a6 15-Jul-2011 Mike Lockwood <lockwood@android.com> Fix copy & paste error from previous change

Change-Id: Ie1fb7d7aa48008c01a159d71343010986c914b61
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
1363e8abff85bb374c61c663b000c53bd396d26d 15-Jul-2011 Mike Lockwood <lockwood@android.com> Add virtual NO_MEDIA column to fix support for .nomedia files

Change-Id: I36aa1d6a6fd5ddb33a33a3d83d912584c0db9af0
Bug: 5025615

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3357a35c94d4d0821150deee6e5469d7e5503f3b 11-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Eliminate single-process mode. Bug: 5010576"
73b813f0d186eaa99d6c5818ef36e3279f63f1d0 11-Jul-2011 Gloria Wang <gwang@google.com> Merge "Rescan the MediaStore to set new column is_drm."
801ba04ac37ee06dccb8bf4081b29a162795e3a6 08-Jul-2011 Mike Lockwood <lockwood@android.com> Changes to support bulk insert in media scanner

Bug: 4948188

Change-Id: Id6d8055e6961708662aa0366a09a4dd8a102aa11
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
75392afde5217038b0c98077758bb9329c2431b2 09-Jul-2011 Jeff Brown <jeffbrown@google.com> Eliminate single-process mode.
Bug: 5010576

Change-Id: I0c6323bb21e9dd946d2a4ce439e3f7688091d981
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
92be385568284e6351ab49f5799eca0e35b9d98d 05-Jul-2011 Mike Lockwood <lockwood@android.com> Preserve database IDs for audio files when upgrading from gingerbread

We do this to avoid breaking media Uris for ringtones

Bug: 4947948
Change-Id: I02c8b47de1ec82f1b93cdf73370b8e5ca60c70ce

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
7ee82723c70fc02b168cfa9b6ff7d5fdd0c16d53 01-Jul-2011 Gloria Wang <gwang@google.com> Rescan the MediaStore to set new column is_drm.

Change-Id: I60fe94f54630259bbd5493631cc0106180347a25
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
957002d42eec79c6f7ce11c98483d7aa3f224e51 29-Jun-2011 Gloria Wang <gwang@google.com> Add column is_drm in MediaProvider database to indicate
whether a file is drm-protected or now.

Change-Id: Ib23dbad978b94b2e180651ecc698eb705e0d123e
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9289cbe6396b92365563206050caf3a5efb1f5c8 07-Jun-2011 Marco Nelissen <marcone@google.com> Fix database update.

When updating entries in the database, we may need the path in order
to distinguish albums. Not taking the path into account can cause
same-named albums that were previously seperate to be merged together
when updating from GB to ICS.

Change-Id: I59f801157cf2d7c9aa7420d2b66216b833441e05
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
91be0e7626d6cb8d74826fb462c71b686681dcbc 25-May-2011 Mike Lockwood <lockwood@android.com> am 01968fce: am da9793b0: am 1f3014aa: Optimize database pruning when secondary storage is unmounted

* commit '01968fce5a8769143b2d79464c0d94122b1ce9ac':
Optimize database pruning when secondary storage is unmounted
1f3014aa084584f4b0e788e3a67c19057b9ea292 24-May-2011 Mike Lockwood <lockwood@android.com> Optimize database pruning when secondary storage is unmounted

Instead of running the media scanner, just delete the database entries
directly from the files table

Change-Id: I1b09f966a36cdbb156252a1cf89c7d9aefc3eabb
Bug: 4450723
Bug: 4394710

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
baffe34089b74c09d549c963da24ffb80f6682f4 23-May-2011 Marco Nelissen <marcone@google.com> Use argument binding in more places.

There were a number of places in the media provider where it would
construct the query by calling QueryBuilder.appendWhere() like so
for example: qb.appendWhere("_id = " + uri.getPathSegments().get(3));
This prevents effective use of the statement cache, because now
there is a compiled statement with a hardcoded id.
This change improves that by using argument binding, so it adds
"_id=?" to the where clause, and adds the value to substitute
to the selection args list.
b/3043992

Change-Id: I68641e59da9cd74f565b1d462a7dad44826785c8
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ef8ada386d3acfbc2e6b32881c45f9b72365c473 17-May-2011 Marco Nelissen <marcone@google.com> Merge "Add audio/genres/all/members uri for querying"
bfbc30ff3b9e3a96b08c525d0971d8d8543ab000 17-May-2011 Marco Nelissen <marcone@google.com> Add audio/genres/all/members uri for querying

Querying audio/genres/all/members allows an application to get
information about which songs belong to which genres across all
genres and songs, with only one query.
b/3191214

Change-Id: Ibfce7eaf0bd383a64953093a2e1cc078ca8123aa
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f216ca7a44a1e6a582c857528720a35c80f75238 16-May-2011 Mike Lockwood <lockwood@android.com> am 536f01ad: am 9eb1a6d6: am c47e4f29: Update to new Storage Manager volume list

* commit '536f01ad0424a6445d721f0779170bb01c0da07e':
Update to new Storage Manager volume list
c47e4f2921312098eddc5fe49b080e0f2df60e81 10-May-2011 Mike Lockwood <lockwood@android.com> Update to new Storage Manager volume list

Change-Id: I2156727522e1987be690439371a43351f5be741f
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
78b2885edc406273d688536b0eadfea006b20662 11-May-2011 Marco Nelissen <marcone@google.com> Fixes for genre querying

This fixes a number of issues when peforming operations by genre:
- having to use _id instead of audio_id (b/3191652), and the audio_id
and genre_id columns not actually being queryable. These queries
are now implemented much the same way as querying members of a playlist.
For backwards compatibility, _id is kept and equivalent to audio_id
- not being able to remove members of a genre
- queries for the audio/genre/N/members/M path used to return the item
with id M from the audio table, which is wrong. Since this is a fairly
useless query for an app to perform, and hard to implement in the provider,
remove support for it altogether.

Change-Id: I9c7b2322945761d929759625f2b813d9c98b7a97
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
915ba2d71679b0e518585cfa5fb92f6a093f01ec 24-Apr-2011 Mike Lockwood <lockwood@android.com> DO NOT MERGE Disable logic for computing media type from mime type when .nomedia is present

Bug: 3405327

Change-Id: Ic502e3a6f3abcebfdf2f351e81c8fb29227d18a4
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
c2498d20d2aa1b3ab4306563bf3635018eb68491 21-Apr-2011 Dianne Hackborn <hackbod@google.com> DO NOT MERGE Remove no longer needed config.

Change-Id: I3a90e3928e38c55c9e9164f9ff6d79dc51d44a48
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
0136413e3561a31057afcf857f2803e28ec6f4ba 06-Apr-2011 Mike Lockwood <lockwood@android.com> DO NOT MERGE Add the storage_id column to the internal database too

Fixes media scanner. You can have your ringtones again.

Change-Id: I7eb22ac1a70b5bc4a82a1d4a1ffe6b16e8e48f25
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d3709e80446eb8abc3bb9c60db0d5c9473930611 05-Apr-2011 Mike Lockwood <lockwood@android.com> DO NOT MERGE Add support for multiple volumes to the media provider and MTP

In MTP each volume will appear as a separate storage unit.
However, in the provider, the database provides a unified view all the volumes.
We use the new storage_id column to tell which volume a given file is on.

Still to do: run the media scanner when volumes are added or removed.

Change-Id: Ia6d1b610916438a1110b1900b66b7dca3d65d9a5
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4dd469ae374d01e65448006c7d310b9cfbb17370 30-Mar-2011 Marco Nelissen <marcone@google.com> DO NOT MERGE Fix media provider database upgrade

Support updating both GB and HC device to ICS.
b/4081769

Change-Id: I1ee2e243d216c096cc6303b4580f74a041e10084
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
dcbe8bfa97e59d21954d97664d83127e5e751c3d 14-Mar-2011 Marco Nelissen <marcone@google.com> DO NOT MERGE Backport album artist support from Honeycomb.

MediaProvider was already receiving album artist info (for album
disambiguation), and now it stores it in the database too.
b/4081769

Change-Id: I0a93bae9984cf88d51950da05848ae57fd2d4c8d
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f1f6a9e343033de33fc748f659b9221f8d5b06e1 24-Apr-2011 Mike Lockwood <lockwood@android.com> Disable logic for computing media type from mime type when .nomedia is present

Bug: 3405327

Change-Id: I76ca4e24f3020d125745192f8c55637646daff15
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
7d4f72d8ab71e28e9d40da87ec8c75ded254dd08 21-Apr-2011 Dianne Hackborn <hackbod@google.com> Remove no longer needed config.

Change-Id: Ieca98a8f9bbaf53d469890015f1fe2a7674e7fc3
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4f63f7c1e6f602a77abd43b189f296b9eb36635b 06-Apr-2011 Mike Lockwood <lockwood@android.com> Add the storage_id column to the internal database too

Fixes media scanner. You can have your ringtones again.

Change-Id: I9c46e36f979f59f19ab6f8b862436406ffe1265f
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9be33f8b8588043b1d104d831fe600a6b7e9d63b 05-Apr-2011 Mike Lockwood <lockwood@android.com> Add support for multiple volumes to the media provider and MTP

In MTP each volume will appear as a separate storage unit.
However, in the provider, the database provides a unified view all the volumes.
We use the new storage_id column to tell which volume a given file is on.

Still to do: run the media scanner when volumes are added or removed.

Change-Id: I31f728beeb0f3b9a464343f0735b405b9f0ce79e
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d6dc8dc70ae177c37be1c63ce6ebd97f27c44bd8 30-Mar-2011 Marco Nelissen <marcone@google.com> Fix media provider database upgrade

Support updating both GB and HC device to ICS.
b/4081769

Change-Id: I0d07d1137e7888874716fbc1a1093327a85d9fa0
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b5f293f3888b304e0b78c0039d7326c20e778b9f 09-Mar-2011 Marco Nelissen <marcone@google.com> Fix querying a member of a playlist.

The audio/playlists/#/members/# query was using the wrong table.
b/4026284

Change-Id: I5e1897915b882973fb2091a8801d2687e617b870
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
65587f9c204abb2d179527dfdca009f4780e9743 24-Feb-2011 Ray Chen <raychen@google.com> Force rescan of image entries to update DATE_TAKEN by either GPSTimeStamp or EXIF local time.

Change-Id: I17e9e72c8554d6adb48916bac2bb0fb8c2162a89
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a9bb89771934314157dd26253195dc16bddc2cfa 28-Feb-2011 Dongwon Kang <dwkang@google.com> Speed improvement on getParent(): adding a condition in order to expoit the index on 'format' field.

Change-Id: I677b4b5aa4e3418f2f6d729348cc7d4956349a38
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
fda522dc66b94057f9c6676cb8ba10bc3b13daea 14-Feb-2011 Marco Nelissen <marcone@google.com> Fix database upgrade.

The internal db doesn't have genres.
b/3450125

Change-Id: I4401324a9a74324abfc4d60cfc5a25d852997b6d
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
efe0bcdf5ed215a5cb76c8a48aad1333056636f4 10-Feb-2011 Marco Nelissen <marcone@google.com> Force a rebuild of the genres tables.

The media scanner's list of genres was expanded, and the way genre strings are
parsed was changed, so rebuild the genres list.
b/3349415

Change-Id: I6619121286ff418d81312a3af2fb9de5d79a8c51
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
704a8b507b7aa61a09457075ed6f80c95914d731 03-Feb-2011 Marco Nelissen <marcone@google.com> Add a URI to query the media provider version.

b/3350571

Change-Id: I95a844a6344a6d543a9db4bd6a5e73cab7675488
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
cf1c94a6c8bd4b56751ccc70d72c0a86a1737cd8 28-Jan-2011 Mike Lockwood <lockwood@android.com> am 4b7ba483: am 4b5963f1: Don\'t add files_cleanup database trigger on the internal database

* commit '4b7ba483bd6ab1591903ae7d9bc0791915f11455':
Don't add files_cleanup database trigger on the internal database
4b7ba483bd6ab1591903ae7d9bc0791915f11455 28-Jan-2011 Mike Lockwood <lockwood@android.com> am 4b5963f1: Don\'t add files_cleanup database trigger on the internal database

* commit '4b5963f15c1563c613ec505ca7962f93aec44321':
Don't add files_cleanup database trigger on the internal database
4b5963f15c1563c613ec505ca7962f93aec44321 27-Jan-2011 Mike Lockwood <lockwood@android.com> Don't add files_cleanup database trigger on the internal database

BUG: 3398542

Change-Id: Ie1a65c935507b75162088a03738c053c4c9e1d28
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
fc83598dbc2dd3168c1220d0a2b6ab675dd4c11a 26-Jan-2011 Mike Lockwood <lockwood@android.com> am efcc6f1e: am 2d114cff: Fix problem renaming directories in MTP when name contains a single quote

* commit 'efcc6f1e4f5a09c1d4dcb71975a32aa24bb5dff8':
Fix problem renaming directories in MTP when name contains a single quote
efcc6f1e4f5a09c1d4dcb71975a32aa24bb5dff8 26-Jan-2011 Mike Lockwood <lockwood@android.com> am 2d114cff: Fix problem renaming directories in MTP when name contains a single quote

* commit '2d114cff87e8cd61123dce29e87d469abae98f6c':
Fix problem renaming directories in MTP when name contains a single quote
2d114cff87e8cd61123dce29e87d469abae98f6c 26-Jan-2011 Mike Lockwood <lockwood@android.com> Fix problem renaming directories in MTP when name contains a single quote

BUG: 3394437

Change-Id: Ie42ae3bf26de95547426b81a0123b73b884e3783
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
92f38113beb55ea584632957424349351d1a176b 25-Jan-2011 Marco Nelissen <marcone@google.com> am f53b8b0d: am 898a9c83: am 51cba5e1: Replace blank artist/album names with "unknown".

* commit 'f53b8b0d9885be62f427c67f3f4e0aa2363db69a':
Replace blank artist/album names with "unknown".
f53b8b0d9885be62f427c67f3f4e0aa2363db69a 25-Jan-2011 Marco Nelissen <marcone@google.com> am 898a9c83: am 51cba5e1: Replace blank artist/album names with "unknown".

* commit '898a9c830e2a806c6ce6b7a46d5517f924c065bf':
Replace blank artist/album names with "unknown".
898a9c830e2a806c6ce6b7a46d5517f924c065bf 25-Jan-2011 Marco Nelissen <marcone@google.com> am 51cba5e1: Replace blank artist/album names with "unknown".

* commit '51cba5e1acf1c56be3dc6c7c46a73a5a0409b452':
Replace blank artist/album names with "unknown".
51cba5e1acf1c56be3dc6c7c46a73a5a0409b452 24-Jan-2011 Marco Nelissen <marcone@google.com> Replace blank artist/album names with "unknown".

When inserting something into the database and not providing an album
or artist name, -1 would be used as the album and artist id. By
substituting MediaStore.UNKNOWN_STRING, we ensure this is handled
consistently with the way the media scanner does it.
b/3371305

Change-Id: Ia292d2c8c095e4cf9c5999e5ba4d3c893cd90989
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
50d04c25d1670d967b693fcaefa48a62d0732f4c 24-Jan-2011 Vasu Nori <vnori@google.com> Merge "turn on sqlite WAL feature for better reader concurrency"
34be4a25e4374a934ac4627fb5fed06bbf6f72fa 23-Jan-2011 Mike Lockwood <lockwood@android.com> Fix MtpService connection/disconnection

In addition to fixing up synchronization, this avoids a problem where we
were trying to disconnect from MtpService when it was not connected.
This only occurred when USB was connected before the device was provisioned,
in which case the MediaProvider had not ever connected to MtpService
at the time USB was connected.

BUG: 3381229

Change-Id: I49e7090f5185ea6a158ae8f3e6656ae1767ff8fb
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
652c337bac290c7dfcde8725e7c771193a7f7ed6 20-Jan-2011 Vasu Nori <vnori@google.com> turn on sqlite WAL feature for better reader concurrency

and if there are problems with the feature, we should debug...

Change-Id: I585907eb24a4c3acad2d8e8a1711aae225eff354
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
044ba53a65fd083a0f6b5b0b477e1215b5202e10 22-Jan-2011 Mike Lockwood <lockwood@android.com> Remove MTP related log spam

Change-Id: Ib0e86b7eb04581fd297ff1f1de6020545ca8ad11
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
819cafdb3d4c3ce8a74d3b572b8ca0a0b639e8b2 22-Jan-2011 Mike Lockwood <lockwood@android.com> MTP: Clean up MtpService life cycle

Improves reliability when connecting to Windows XP

BUG: 3331077

Change-Id: I9e96f782e6c37d718142107068a928c9069ceaa3
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
993b6f0019bcc3d34f13d73ecef54621b7647d1c 19-Jan-2011 Mike Lockwood <lockwood@android.com> Disable multiple external database support on devices without removable storage

On such devices, the media database file will be called external.db
Add upgrade path to handle devices running earlier builds before this change.
In such cases, we find the most recently modified database and rename it to external.db
and delete any other older external database files.

BUG: 3298715

Change-Id: I3d01fe1f31deef2e1d500cf48972cd4f34cda123
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
51d6c5d233f78de2db9b3f63514b20b1ce768dd5 21-Jan-2011 Mike Lockwood <lockwood@android.com> Reconnect database trigger for MTP object deleted notifications

This was accidentally removed in a previous change

BUG: 3371424

Change-Id: Ieacb66261335e5c2e34a639c5ab74da95f54c4b9
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
51604d64e431c24546697e8151bf30575c7bf925 21-Jan-2011 Mike Lockwood <lockwood@android.com> am 4cf489b1: Disable multiple external database support on devices without removable storage

* commit '4cf489b12280eafcc7f41a3f6adaaa7afa7750ef':
Disable multiple external database support on devices without removable storage
4cf489b12280eafcc7f41a3f6adaaa7afa7750ef 19-Jan-2011 Mike Lockwood <lockwood@android.com> Disable multiple external database support on devices without removable storage

On such devices, the media database file will be called external.db
Add upgrade path to handle devices running earlier builds before this change.
In such cases, we find the most recently modified database and rename it to external.db
and delete any other older external database files.

BUG: 3298715

Change-Id: Ifcfe0b3d754ffa175703e3a4afb7f2488b2cf9d1
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f2921d9af0a43c4be56a88990b55efe86fc7bb29 18-Jan-2011 Mike Lockwood <lockwood@android.com> Make sure modification date and file size are set when inserting new files and directories

Since we do not run the media scanner on non-media files, we cannot rely on it for this.

Change-Id: I910bee5ca239f33bb357f19c642699718d999df2
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3fa7593ce394cdaad4a3db622d415fd8497f4a9d 11-Jan-2011 Marco Nelissen <marcone@google.com> Cherry pick from GB. Do not merge.

Fix double album art fetch.

b/3341452

Change-Id: I33b36033ab7657362905dc473d655a16380a4d84
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
2658ef46ac41dfd83e385cee5ab96d7f8acbdec5 13-Jan-2011 Marco Nelissen <marcone@google.com> Merge back from HC+AOSP. Do not merge.

Original change in GB was 10a6f9a6ce9bfe08960017f93aa6fbc44ea70791, which
required some changes to merge into HC+AOSP, so merging back from there.

Change-Id: I8e0954897688568e8e20c3a6022d4909bf9c3c5b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ea7681708e317a62a42e4537d3d7640be269894f 13-Jan-2011 Mike Lockwood <lockwood@android.com> Merge "Use case insensitive comparison when looking for a file's parent directory." into honeycomb
f7cc647081f0421c0247de275fa0754b29938c07 13-Jan-2011 Mike Lockwood <lockwood@android.com> Use case insensitive comparison when looking for a file's parent directory.

This fixes a problem that could cause a duplicate chain of directories
to be created in the media database when the media scanner finds a new file.

Change-Id: Id47a86fb4fe798daf9734eb1c764826b4ae4af29
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
43cd18920fe8f75e778b294a118244bcc9bffae3 13-Jan-2011 Mike Lockwood <lockwood@android.com> Merge "Create default folders in media storage" into honeycomb
ed9bbc4fa47d545b81248dd749aa0ee4fc598d25 13-Jan-2011 Mike Lockwood <lockwood@android.com> Create default folders in media storage

On first boot, the media provider will create the folders:
Music, Podcasts, Ringtones, Alarms, Notifications, Pictures, Movies, Downloads and DCIM
The folders will not get recreated if they are deleted by the user.

Change-Id: I8acbcc282453bbd6b947c6808558f708721887b4
BUG: 3248872

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
70676508bd3a081edd909875e141f2c48d79c1ac 12-Jan-2011 Daniel Lehmann <lehmannd@google.com> Use bigger thumbnails on xlarge. Use higher quality JPEG

Bug:3339040
Change-Id: I8fae930e63c661185e131f5c10419e92b9542d0b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
17ad80b32f839ccddac3911799ff732d1ca3a006 12-Jan-2011 Mike Lockwood <lockwood@android.com> Media Provider and MTP now run on emulated /mnt/sdcard file system instead of /data/media

Change-Id: I78ac177ebe3bdc2ddf537f8b8e0a18128799c390
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f950834eba0588630d41c90e4f96fd58148bced6 12-Jan-2011 Marco Nelissen <marcone@google.com> am 948eeae9: Fix double album art fetch.

* commit '948eeae9166384b32b5b3f420594fcef1f8129c9':
Fix double album art fetch.
948eeae9166384b32b5b3f420594fcef1f8129c9 11-Jan-2011 Marco Nelissen <marcone@google.com> Fix double album art fetch.

b/3341452

Change-Id: I2a2fecb5452e87054ac5abeb833d737c87ab61bd
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3c01a83fa9f122e0b12dd2f320123c8b714107b5 07-Jan-2011 Marco Nelissen <marcone@google.com> resolved conflicts for merge of 10a6f9a6 to gingerbread-plus-aosp

Change-Id: I7b2869b814092f43ec1447bb085834183071d02e
363fde788be6b1350503c98e656376bbd13bf74d 06-Jan-2011 Mike Lockwood <lockwood@android.com> Fix permissions problem in thumbnail creation.

Change-Id: Ie9e34f607bb807d6297d1c8a0cd63eff6fd9ac8e
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
10a6f9a6ce9bfe08960017f93aa6fbc44ea70791 07-Jan-2011 Marco Nelissen <marcone@google.com> Use album artist or compilation tag to disambiguate albums if possible.
b/3311831

Change-Id: Iccbfe7cd2542d040480fb9252e32a5b90ed5ef78
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
90345783ad297da6059398cab174687de6f36a5b 30-Dec-2010 Mike Lockwood <lockwood@android.com> Move MTP Java classes to android.mtp.* package.

Change-Id: Ief5f00ed68e4c4a36ea5be4456d8e3b655ac7726
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5fde670987a55d69442566dcbdb7830d5f1587c6 17-Dec-2010 Chih-Chung Chang <chihchung@google.com> Fix 3250911: Add null checking for database (in case the disk is full).

This does not handle all cases, but is an improvement.

Change-Id: I651f8347ed22c7bef06e36901b52b85156fd6a8c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
20405fab4cf752dbdec6f1020bfc70a2bf87590e 15-Dec-2010 Mike Lockwood <lockwood@android.com> Add file table index for parent and format columns to speed up MTP queries

Change-Id: I64b3133aa3aa343db9bf6374326da2049c18239b
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
db8357b2b2888ce3778278e9cd9e698347ca6105 07-Dec-2010 Owen Lin <owenlin@google.com> Improve/add index for the gallery app.

And add a general "distinct" support in query() as well.

Change-Id: I573454b1c3618b0b530e5be91a03770a6ad34a7a
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4382d5ecf11d3c70eed9ba7b09970ef254774b6d 03-Dec-2010 Mike Lockwood <lockwood@android.com> Only use optimized playlist member query if selection is null or just playlist_id.

Change-Id: I23e019e3490ceacc57767d28c216679b6c4d9578
BUG: 3248125

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e6300fefefc68417851efcc455cc01a4aaa60678 01-Dec-2010 Mike Lockwood <lockwood@android.com> Optimize playlist member queries that do not need any columns from the audio table

BUG: 3227888

Change-Id: I578ebf0d622c20a47da5b58c4a9f9b7076ebf0da
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a36cfaef630ef5df7bef80b25f6bd493d040c7e4 30-Nov-2010 Brian Muramatsu <btmura@google.com> Remove DATE_MODIFIED Reinsertion

Remove the lines where DATE_MODIFIED was retrieved from the map as
an int and being reinserted as an int. These lines weren't doing
anything besides getting the value and putting it back...

There is probably no impact, because the value for DATE_MODIFIED is
supposed to be in seconds. A CTS test that was using milliseconds
overflowed and caught this instance.

Change-Id: I185917d94805da98d1ff56fdcb2e4b0f5f857595
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a08bc533a5f7bf9aea49b25a549b4f5b3c14f47d 30-Nov-2010 Mike Lockwood <lockwood@android.com> MTP: Fix bug in how we handle missing playlist items.

Change-Id: I18c1f037a55e51ad42c969a4a310d5ec8e681ba9
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
fb598dd5ac235f6282aac23b7b9c214f2fd62a7a 16-Nov-2010 Mike Lockwood <lockwood@android.com> Compute bucket values and date added columns for all files

Change-Id: I43ef51ec8626c40d8e57817e9696297834e16204
BUG: 3197714

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
282dc90a0e201d992cdd0d0176028da6a565f9d5 12-Nov-2010 Mike Lockwood <lockwood@android.com> MTP: Fix support for file based playlists (like m3u files)

BUG: 3176432

Change-Id: I7fbaeb121549dc8a6e1b21d021e4694511fb073d
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3631d46b679a64a16918698121916b60d7c86e97 10-Nov-2010 Mike Lockwood <lockwood@android.com> Call notifyChange on the entire volume when deleting from the media store.

Since there are multiple Uris that can refer to the same files and deletes
can affect other objects in storage (like subdirectories or playlists)
we will notify a change on the entire volume to make sure no listeners
miss the notification.

Change-Id: I2562c5321c9aeb343b2ec2d61467b84ad0216efd
BUG: 3179767

Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3572ac7fc911cda5e4ac60af9455820a7ddf6593 05-Nov-2010 Marco Nelissen <marcone@google.com> Fix crash when inserting a playlist.
b/3170431

Change-Id: Ifeed8940b37407316501f5cea24366bf38c4d07b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b0344f3357caabb0c9a34a3d1dc3899f0e6a5d74 04-Nov-2010 Jason Chen <jasonchen@google.com> resolved conflicts for merge of 40ccdb83 to master

Change-Id: Ia7fdd9ba342a7f8dcb9096535c9c74d9865e61b5
40ccdb8351b30b1e42e13f97670105c54a16b49b 03-Nov-2010 Jean-Baptiste Queru <jbq@google.com> resolved conflicts for merge of 86f165b6 to gingerbread-plus-aosp

Change-Id: I4dab7b6377b960f2f0deff6d1791de9da151b0d9
86f165b636baa8c6e0f4568fb07699ff5cfbcf8a 03-Nov-2010 Marco Nelissen <marcone@google.com> Force a rebuild of the "key" fields, since ICU changed and generates
different collation keys now.
b/3159376

Change-Id: Iab63dc01d44e56f987598a6c4f5230fa8e3389a1
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d0d809c65db7d4936266c8f6a18511046c84fd15 01-Nov-2010 Mike Lockwood <lockwood@android.com> /data/media lockdown:

Media provider now stores paths with /mnt/sdcard prefix instead of /data/media
and returns /mnt/sdcard paths for all query results

Media scanner, MTP and ContentProvider.openFile() use /data/media paths
to avoid the overhead of the FUSE layer.

Give MediaProvider write permission to the /data/media directory.

Change-Id: I246f82fd4c0aa3eea57a0fbbb1264a5618446d24
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
983e9fea86579e53cb6cdd70f5fa7b857c96740d 01-Nov-2010 Jean-Baptiste Queru <jbq@google.com> am 5649b685: am 8ad64896: Merge "MediaProvider: catch OutOfMemoryError when creating thumbnails."

* commit '5649b6858f0d0ce03d82d23ab39c60c992f951d2':
MediaProvider: catch OutOfMemoryError when creating thumbnails.
5649b6858f0d0ce03d82d23ab39c60c992f951d2 01-Nov-2010 Jean-Baptiste Queru <jbq@google.com> am 8ad64896: Merge "MediaProvider: catch OutOfMemoryError when creating thumbnails."

* commit '8ad6489603705e28a4bb38355da74a47b0f067ce':
MediaProvider: catch OutOfMemoryError when creating thumbnails.
fc824ed365b03ae272a3241b202367b1bdec18bc 26-Oct-2010 Mike Lockwood <lockwood@android.com> Fix Uri returned by MediaProvider.insert() for non-media files.

Change-Id: I9e699ae807739cb732b156565293a6894b6d1f14
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
50d8650456d93e2107b9163e119c2eb9de73f804 18-Oct-2010 Mike Lockwood <lockwood@google.com> MTP: Fix syncing playlists from PC to device.

The code that enforces that only audio files be added to playlists was mistakenly
checking for playlist files instead.

Change-Id: I5318c9f3e2a094e52cc8372f457df83e0d9997d1
Signed-off-by: Mike Lockwood <lockwood@google.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
22c5095b70a9fd6304fcf2366e8e40e37ae95764 13-Oct-2010 Erik Rydgren <erik.rydgren@sonyericsson.com> MediaProvider: catch OutOfMemoryError when creating thumbnails.

When creating image thumbnails the memory will sometimes run out
resulting in a java.lang.OutOfMemoryError. With this change, this
error will be caught so that a generic thumbnail placeholder
is used instead of the one we failed to create.

The OutOfMemoryError may be caused by unreasonably large and/or
broken images. Rather than crashing the process the code now
logs the error and resumes loading the next thumbnail in queue.

Change-Id: I4ed644c7973060832e6c05b2b920f273c819e3f1
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
1d4a47c46bd6476f624f2fa41f99d28c44a2ab0d 12-Oct-2010 Mike Lockwood <lockwood@android.com> MTP: Add support for renaming directories

When directories are renamed we must also go through and update the paths
for any files contained in the directories

Change-Id: Id10c519cf936403946fe6a1d1b844ee127a9238c
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9541d036d207aba5f940ae8093aed20c9c229e1b 11-Oct-2010 Mike Lockwood <lockwood@android.com> Use external storage path instead of media path as hash key for bucket IDs.

Also rename mExternalStoragePath to mMediaStoragePath and
mLegacyExternalStoragePath to mExternalStoragePath, to be consistent with
other files in this package.

BUG: 3053286

Change-Id: Ie00b388093affbc997d600684dd0472553261af5
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
8e2b7b051b70bf207227ad1d3eadf10df6b3c8ff 11-Oct-2010 Joakim Johansson <joakim.c.johansson@sonyericsson.com> am 6ca41722: am d8c10024: Adding null check on Cursor c in MediaProvider.getAlbumArtOutputUri

Merge commit '6ca41722fc7338908f4ccdd19bb786afe599d2ee'

* commit '6ca41722fc7338908f4ccdd19bb786afe599d2ee':
Adding null check on Cursor c in MediaProvider.getAlbumArtOutputUri
6ca41722fc7338908f4ccdd19bb786afe599d2ee 08-Oct-2010 Joakim Johansson <joakim.c.johansson@sonyericsson.com> am d8c10024: Adding null check on Cursor c in MediaProvider.getAlbumArtOutputUri

Merge commit 'd8c100241c1c8983deeae6329111e2bce997294d' into gingerbread-plus-aosp

* commit 'd8c100241c1c8983deeae6329111e2bce997294d':
Adding null check on Cursor c in MediaProvider.getAlbumArtOutputUri
d8c100241c1c8983deeae6329111e2bce997294d 06-Oct-2010 Joakim Johansson <joakim.c.johansson@sonyericsson.com> Adding null check on Cursor c in MediaProvider.getAlbumArtOutputUri

The Cursor c in MediaProvider.getAlbumArtOutputUri.
MediaProvider.query() can clearly return null.

Adding a null check, setting albumart_uri to null in that case,
should solve the problem, and should be safe as the only caller
of getAlbumArtOutputUri expects and handles a null return.

Change-Id: I5f71dc41a4516d343fe6638117cdd9bdf3eb8f82
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
00a22306f6c99d1f1b4424f8f6a1cad8fb332d85 05-Oct-2010 Ray Chen <raychen@google.com> Make _id of table 'files' AUTOINCREMENT so we can use it as cache key.

Change-Id: Ie11304af38da5a3766e1f358713d2f9de281e345
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
49dea76284f7693ba452c05cfd59c1d9c9584343 05-Oct-2010 Ray Chen <raychen@google.com> Fix the video clean-up trigger.

Change-Id: I130a1d260a29242c3754688d931157c7519b3969
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5bf5c26a3499d584332074baab97392696ed9614 03-Oct-2010 Ray Chen <raychen@google.com> Avoid making thumbnail in the background whenever new images are inserted to MediaProvider.

Change-Id: Id00888f813cd8b5da7fba46d10b69cd43b8fdd37
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
36d7136bebac6ea5738fb653a74dcd6c71e4cd58 27-Sep-2010 Dmitry Dolinsky <dmitryd@google.com> Disable WAL in media provider database

Change-Id: I11d294f23576417f98b63e770bc4b60446ea7ce9
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
0c93b04f830c0762b61fe9a7babd87128fa40e28 24-Sep-2010 Mike Lockwood <lockwood@android.com> Make sure files and directories are created with SD card style permissions

Change-Id: Iafefe033e06b1a180fbfd90a532a8bd057893378
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
805b0b734dd5a73e2f77cd8d818a07a8627a8c1e 24-Sep-2010 Marco Nelissen <marcone@google.com> Add album artist to the database. We currently don't do anything fancy
with this field like normalizing it into the artists table.

Change-Id: I451e82eaaa17729691213837bf3c5d69582daed0
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
afa157c5799e410210af7d6b343cec8a9907afd2 15-Sep-2010 Mike Lockwood <lockwood@android.com> Replace images, audio_meta, videos and audio_playlists with a single "files" table

Backward compatibility is maintained by replacing the obsoleted tables with views.
This change is needed to support managing arbitrary file types in the provider
and to provide simpler and more robust support for MTP.
This also paves the way for expanding MTP metadata support.

BUG: 2984284
BUG: 2879661
BUG: 2869730

Change-Id: Ifb4ad7b08fe1d0a0c287fdbcfa42424d7d4f80a2
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5524b8957701b458a24605ff4f1d953e7b847c8f 23-Sep-2010 Mike Lockwood <lockwood@android.com> Delete database file and start from scratch if database upgrade fails.

This change is to handle a situation where we are unable to upgrade database
version due to lack of disk space or some other unusual condition.
If this occurs, then we simply delete the database file and try again.
This should result in an empty database file with the latest schema,
which will hopefully be repopulated when the media scanner runs at boot.

Change-Id: I0b00afc698a2d0761575d72223a6f8dd47ad4f70
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
795fcfcfea623b2bd27d291eae575dfa20350e34 14-Sep-2010 Mike Lockwood <lockwood@android.com> Fix up /mnt/sdcard paths passed in via ContentValues for insert and update

BUG: 2995940

Change-Id: If30e3c7805c3ae24d44ccfa8ca11fdb5e8a936a2
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
c198bd976a754d94863d1b50fe392376ded122a0 10-Sep-2010 Mike Lockwood <lockwood@android.com> Changes to support managing files of arbitrary type.

Change-Id: I0bf0d93cc06c5fc322369202814c42c42743d726
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
36339ae4a18855b6e26d82db9d3afd26dc6150a1 10-Sep-2010 Mike Lockwood <lockwood@android.com> Use a database trigger to keep media tables in sync when deleting from files table

This is needed to allow deleting multiple files simultaneously.

Also move _OBJECT_REMOVED custom trigger to the new trigger so it will work for
non media files.

And while we are bumping the database version, also add a "title" column to the files
table, since we will be needing that soon.

Change-Id: I1d28cf9ba98c7c26c82738a908b7445e77b0bc85
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e2c981f26abf2b46d0ff2175dc996fd680073b7b 10-Sep-2010 Mike Lockwood <lockwood@android.com> Use separate Uris for MTP to the media provider files table

Separating the Uris for local and MTP access to the database will
allow us to handle MTP originated queries differently in the provider.

Change-Id: I0bb05bb952f124a490cfa7e0be98ab8666e29520
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
16dc0fdb9a80e09adb68864a7888c2ab6f3dc7af 08-Sep-2010 Mike Lockwood <lockwood@android.com> Rename the media database's "objects" table to "files"

We will be using this table for more than just MTP,
so it deserves a more general name.

Also add a mime type column to the files table, which we will start using
in a subsequent change.

Change-Id: I48e68da615a308dc3a207f5012f5213ffaac9cd4
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d917b0cbb31aa42af584f79d587a06aeae437ca1 03-Sep-2010 Marco Nelissen <marcone@google.com> am 0f8e6ac6: am c38530b8: Add support for a query parameter to do filtering.

Merge commit '0f8e6ac6d860fdfd8687b02f73dc152985676d88'

* commit '0f8e6ac6d860fdfd8687b02f73dc152985676d88':
Add support for a query parameter to do filtering.
0f8e6ac6d860fdfd8687b02f73dc152985676d88 03-Sep-2010 Marco Nelissen <marcone@google.com> am c38530b8: Add support for a query parameter to do filtering.

Merge commit 'c38530b8c1935f629023df6e9a478c2c801bddda' into gingerbread-plus-aosp

* commit 'c38530b8c1935f629023df6e9a478c2c801bddda':
Add support for a query parameter to do filtering.
c38530b8c1935f629023df6e9a478c2c801bddda 02-Sep-2010 Marco Nelissen <marcone@google.com> Add support for a query parameter to do filtering.

Change-Id: I9b4c11d9e99dd0aa225762a231cec315352dd60c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9114b186ffb26cf0ec6af6eb01ccdf47228a355f 30-Aug-2010 Mike Lockwood <lockwood@android.com> Update for new location of MTP protocol constants.

Change-Id: I98751656da93b7b79175ae0bd31900ad20b7dc19
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
804f5fe841d4a96f9335ea60d60853352f726227 14-Aug-2010 Marco Nelissen <marcone@google.com> Make getType() work for album art too.

Change-Id: Ic56f60b2f18ecf36347d3a0a3a6851b710e11fc1
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a4d7f8a140c9a66bfcb28c5197521db6d62e13be 25-Aug-2010 Marco Nelissen <marcone@google.com> When looking for album art for an album, look at the first track on the
album, instead of the first one in the database, since it is more likely
to have the album art.

Change-Id: I8853250cc46597d66124868535cad56aab9c38c1
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4f2186758ee1c6eaa702bf1511b233b26143b631 24-Aug-2010 Mike Lockwood <lockwood@android.com> Add support for fuse based SD card emulation

On devices with no SD card we emulate external storage with a directory
on the internal data partition. For backward compatibility purposes
(mainly emulating file system permissions), the internal directory is
mirrored at the /mnt/sdcard mount point via FUSE.

The problem now is that files can exist in two places on the device's
file system. To avoid the performance penalty of the FUSE emulation,
the media provider and MTP will use paths to real files in the /data/media
directory. To support applications that use the legacy location,
all paths that begin with /mnt/sdcard will be remapped to the real location
in /data/media internally within the media provider.

Change-Id: I81cada1bf65a3d4b28c7178214116d4a78208ed0
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
24001394f571b1f0378840cbf299288e4df10508 14-Apr-2010 Bjorn Bringert <bringert@android.com> Use new public API for memory-backed file descriptors

Bug http://b/issue?id=2595601

Change-Id: Ie6690cca95c9750bdb84a722feab46b5d786663a
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
bdd3b8337b01920822c128b1ad1be202e22d070c 13-Jul-2010 Owen Lin <owenlin@google.com> Add "distinct" query parameter support to video media.
Also build new indexs on table images and video, so that we can query
media items in each bucket faster.

Change-Id: I9f994c5a6683614aa4e716f0817f770e23e7d7e2
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
557470a45773bc40c13c35af9af5cca056c9db44 09-Aug-2010 Owen Lin <owenlin@google.com> resolved conflicts for merge of 654f7dc8 to gingerbread-plus-aosp

Change-Id: I0576ea6ba298dcc19bedeff6a905777bd8623f3a
654f7dc8e1dced528344e18370b4889fc5b55118 13-Jul-2010 Owen Lin <owenlin@google.com> DO NOT MERGE. Add "distinct" query parameter support to video media.
Also build new indexs on table images and video, so that we can query
media items in each bucket faster.

Change-Id: Icc6da0a9e288b0e6b64e3812050a8898bfb15a59
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e2eb1e85bbac2675c78c92cb1181b652ccd0b0f5 29-Jul-2010 Mike Lockwood <lockwood@android.com> Add support for mapping MTP object references to audio playlists

This allows MTP playlists to map to the existing playlist support in MediaProvider.

Change-Id: Id91e4b27217923d6fbab02642075dc5cf7ed2548
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
abf5daf6a8c2f9441af98b489398a476e7c6564c 31-Jul-2010 Mike Lockwood <lockwood@android.com> MTP: Don't start MTP server unless MTP is enabled and connected.

In particular, start less of MTP on devices that do not have MTP support.
Also do not send "object added" events to the host when the new object
was sent via MTP.

BUG: 2883217

Change-Id: Ibf7ea72f2ea6144b234708fdb89bd7d169572aac
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
bcfc5b237fff32ef05b7cfa516cb68dad03ff240 30-Jul-2010 Marco Nelissen <marcone@google.com> am a40e34e9: am 3001ef33: Fix media provider search.

Merge commit 'a40e34e91c45f8340595029be24c95bd493a15a1'

* commit 'a40e34e91c45f8340595029be24c95bd493a15a1':
Fix media provider search.
a40e34e91c45f8340595029be24c95bd493a15a1 30-Jul-2010 Marco Nelissen <marcone@google.com> am 3001ef33: Fix media provider search.

Merge commit '3001ef332046c69cbb70289be29442fcc0ad5f6f' into gingerbread-plus-aosp

* commit '3001ef332046c69cbb70289be29442fcc0ad5f6f':
Fix media provider search.
3001ef332046c69cbb70289be29442fcc0ad5f6f 30-Jul-2010 Marco Nelissen <marcone@google.com> Fix media provider search.

Change-Id: I521121952404a86b5c3bba1ad3820dfe68fb178f
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
cec8df8a90209fc4df5d1ff5f02dc364d0d2edc6 20-Jul-2010 Mike Lockwood <lockwood@android.com> Fix typos and database upgrade problems from previous change

DATABASE_VERSION 94 was a real loser.

Change-Id: Id0db6e4c079ef1fbd556e7b834cc315515a60c85
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d186c64cdd590e6491ee46dd8fcd52600d2edc5c 14-Jul-2010 Mike Lockwood <lockwood@android.com> Implement MTP device to host notifications when files are added and removed.

Now MTP events are sent to the host when objects are added and deleted
due to device-side changes (rather than MTP initiated).

Also clean up MTP database upgrade path, fixing bug 2841422
This change is incompatible with the state of master over the last couple weeks
but will not be a problem for upgrades from earlier releases.

BUG: 2841422

Change-Id: I138d252e9b2b01371711eb7db723a908dc97e75b
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
5d7e71a87b085817aef6e77cd4c2a6dc7d983f9f 12-Jul-2010 Mike Lockwood <lockwood@android.com> Integrate MTP host to device file transfer

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: I2f007bf46bec27f87049a0f637e3f95ad9898dee
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9ea338b3f2720a16a334990bf2bb6afc5011b60e 12-Jul-2010 Mike Lockwood <lockwood@android.com> Add triggers to clean up MTP objects table when media files are deleted.

Change-Id: If74761205d6c8a3cdeb0be8bf7d689defa261be5
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
1717955cb3b68424ee7dbf7c644000cf82788253 09-Jul-2010 Mike Lockwood <lockwood@android.com> Add support for deleting objects via MTP

Also add cross reference from objects table to audio_meta, images, video and
audio_playlist tables.
This is needed for MTP delete and will also be used for accessing metadata
over MTP.

Change-Id: Ib23c4db2b4aafce1c29f00013138d689df3e3bd7
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b78ad0d07a40f0d72dbe6c9ff365ddcfef316eb0 03-Jul-2010 Mike Lockwood <lockwood@android.com> Support for serving MTP device support from media provider database

Add new "MTP Objects" table to support MTP.
This supports basic MTP file enumeration.
Adding and deleting files and accessing media file metadata not yet implemented.

Change-Id: I408d7b8e9a41786b7d37fb014bab7280dd22ef59
Signed-off-by: Mike Lockwood <lockwood@android.com>
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
270ca8b2c24f5111f8b741cc47b8f8b922ab096a 15-Jun-2010 The Android Open Source Project <initial-contribution@android.com> merge from open-source master

Change-Id: I23c66eff5b4a8c88a88bb21ac1b645b97ca38c64
ae62a1d602e7ed2e0e30e271bddbb27aa71469f6 05-Jun-2010 Christian Mehlmauer <FireFart@gmail.com> Disabled verbose logging

Change-Id: I38079209472919c67ca07ff25a95f146f22ebb8c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
18c787fb045725bf10bf630ac0917a48def9ace5 04-May-2010 Marco Nelissen <marcone@google.com> Fix handling of search URIs with uri parameters.
Fixes bug 2652114.

Change-Id: Ie07db3fd2c38ebe75cff9d672d555fd9c7b0cd08
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d9672f4d28ab9038333a0037fe30e386ac0ce610 27-Apr-2010 Marco Nelissen <marcone@google.com> Fix null pointer exception.
Bug 2630469.

Change-Id: I40b9a4e983331070ca12124a61a623521ace13fa
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ea8ed74e997619531921fb4138728b7d65c35089 23-Apr-2010 Marco Nelissen <marcone@google.com> Add fast paths for some queries which are 3-4 times faster than the normal path.
Specifically, this replaces "select count(*) from artist_info" with
"select count(distinct artist_id) from audio_meta where is_music=1",
replaces "select count(*) from album_info" with
"select count(distinct album_id) from audio_meta where is_music=1", and
replaces "select count(*) from audio where is_music=1" with
"select count(*) from audio_meta where is_music=1".
The substituted queries give the same results, but are faster because they
omit one or more joins with other tables that aren't needed in this case.
Bug 2622926
Change-Id: I65a33490ec9eabb331accba8446e0c00804bb821
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
022eb71bfe8ec65b8817eaa432a530194210ec23 16-Apr-2010 Marco Nelissen <marcone@google.com> Fix botched database update step.

Change-Id: Ida7c0cbf4831eb5ab8bd6ff041a2c7fe7361a6d0
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
403ebe07562bb44334724fde9749c22479204662 14-Apr-2010 Wei-Ta Chen <weita@google.com> Fix 2520688 by explicitly updating the bucket_id of an image/video to the hash value of its new diretory path name.

The directory name of images and videos was changed to "/mnt/sdcard/..." from "/sdcard/..." in Froyo.
However, we didn't explicitly update the bucket_id of an image/video to reflect the new directory name.
After flashing a device from Eclair to Froyo without wiping data, tt would turn out some images/videos' bucket_id are updated, due to other update operations, and some are not.
In result, two bucket ids might map to the same bucket name, say "Camera" for example, and thus, Gallery shows two Camera albums.

Bug: 2520688

Change-Id: I31fc4139a4c5912e267005458134f5b92f177e38
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
acfb9a20e1131f7dc2521331ee3856c8586c35bd 14-Apr-2010 Marco Nelissen <marcone@google.com> Revert several changes to support album artist, which were causing a variety
of problems. We're now mostly back to the Eclair state of things.
Fixes bug 2593945

Change-Id: I6c2c656f251be005915957ab1f942eed7f6b9fe0
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ad189fb4a03da9a9ef4125207421ad755269d6f8 07-Apr-2010 Marco Nelissen <marcone@google.com> Add additional indices to the database to help with fast scroll,
and use case insensitive matching for checking whether a file is
in any of the special directories.
Fixes bug 2571711 and part of bug 2578244.

Change-Id: Ifee2c0fd19b4381f8a378c08cf349a1e60605dd2
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
26f297abf92299b21ad5ddc8f722bd83805e1bc7 06-Apr-2010 Ray Chen <raychen@google.com> Fix issue 2572875 MediaProvider does not close cursor properly for images.

Change-Id: I737a81ddeda02fde236dc4f7691ecead33e41d1e
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
1d4a8ec9e1e62427088dc40f08872a10c863535e 03-Apr-2010 Marco Nelissen <marcone@google.com> Fix severe media provider performance issues by adding new columns to the
the artists and albums tables, to store things like number of songs for an
album or artist, instead of calculating those values on the fly from other
tables when doing queries.
For some queries, this improves performance about 250x.
Also fix some recently introduced bugs that caused CTS tests to fail,
and remove a table we weren't using.
Bugs: 2552981,2557627,2540833

Change-Id: I97a7b815772f5aad554aaa727d277e957995474c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
65092175eff6b5e7c518170ec34ecfa766f9493a 29-Mar-2010 Marco Nelissen <marcone@google.com> Fix problem with duplicate artists and speed up artist_info view.

Change-Id: I74cc229a7816d1feaadbc741227bd1f9ce502941
related-to-bug: 2540833
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
6006570c27674c47fcea8e674832a715cfd653ea 26-Mar-2010 Marco Nelissen <marcone@google.com> We need to remove artist, album_artist and album from the ContentValues
even if they're null, since the table just doesn't have those fields.

Change-Id: I59434098cbeb0bea86e4b8b767638dec13c329cf
related-to-bug: 2540833
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
c535f0a0cc837ce8bc048057313cc1a8fd78334a 24-Mar-2010 Marco Nelissen <marcone@google.com> Add support for "album artist", so we can properly attribute compilations
to the album artist, instead of a random performer, and order albums
correctly in landscape mode.

Change-Id: Ibea66d89061a1ccd8da21140a93cf10db7612bfc
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
07656cccafca173c6ab54c681a69538dcf0516dd 23-Mar-2010 Marco Nelissen <marcone@google.com> Ignore album_artist for update as well.

Change-Id: I91965a3c23708f09c9d1bec79f8ca04db19301bc
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
498b62c2912302a23532c73a028a7684c5df33ca 22-Mar-2010 Ray Chen <raychen@google.com> Copy taken time from date_modified only if we lost the original value after reset.
http://b/2514604

Change-Id: I38c6e945e092f5e1075a0559131f13009ce38d0c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
68be6615bb5e634c3598f696de0745dd34731845 19-Mar-2010 Marco Nelissen <marcone@google.com> Ignore "album artist" for now, because we don't have a column for it in the database yet.

Change-Id: I53e653164e6d619e882d7eafcb0c49c32f5aaa6b
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a9987fc4a9a54afe6f5a4e8bf91586dc234fa2e9 10-Mar-2010 Marco Nelissen <marcone@google.com> Revert "Make the media provider follow paths to other content providers."

This reverts commit 95d21e8f20bbddc5495051771ae2a4f19da73332.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b9842a182cb761dbcac82ff2024e38d0cd9a9e73 09-Mar-2010 Ray Chen <raychen@google.com> Avoid overriding DATE_TAKEN in MediaScanner and let MediaProvider to calculate if needed.
http://b/2376777

Change-Id: I8130fb8cc9380c36745a04e6994ce8b86b1f2419
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
216ec3f0643cd9a9ea9daf96a0ed98d1cc4b1751 08-Mar-2010 Marco Nelissen <marcone@google.com> Fix for broken database update step 81.
Create audio_meta._data with a unique constraint.
Add finally clause to make sure we always close the cursor.
Add basic sanity check.

Change-Id: If52c27e34569c03d2d57bd452fec465ac255bf7c
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
84403f9475c71ba53fa9bedfc9953d9f0ad0fc2c 03-Mar-2010 Marco Nelissen <marcone@google.com> Albums should be distinguished by key, not by name.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
166a4e3cc66a645cc5e11d2f06d059512def0ace 26-Feb-2010 Marco Nelissen <marcone@google.com> Skip internal db update to version 81, since it crashes, and is not needed anyway.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
0ba6af212288010ca16b08f8be3985edb287cb0f 25-Feb-2010 Marco Nelissen <marcone@google.com> Update/fix database to take in to account the new sd card mount point.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ab43e1853533e4d9352c251d53c36fb645077e43 17-Feb-2010 Chih-Chung Chang <chihchung@google.com> Fix 2447764: Worker duplicates the framework's HandlerThread.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
2f07f572bc574b685b491ee07a6209c7f2dcb13f 17-Feb-2010 Marco Nelissen <marcone@google.com> Fix build
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
0fe3097230b324e65a874bd7c8c0f430d2fb8cbe 17-Feb-2010 Marco Nelissen <marcone@google.com> Use Environment constant for download folder
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
044b029d9023f55e8e8861ed2f6e192f1b34f9bb 15-Jan-2010 Ray Chen <raychen@google.com> Force rescan to update images DATE_TAKEN as UTC timestamp.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
8b29060b0563b6a17b21b909bc4a9af14636021c 27-Jan-2010 Marco Nelissen <marcone@google.com> Further reduce object churn when adding to a playlist.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ccf3e3c938fa9777cb6297b4e910cb6a58558671 26-Jan-2010 Marco Nelissen <marcone@google.com> Optimize playlist bulk insert.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
95d21e8f20bbddc5495051771ae2a4f19da73332 22-Jan-2010 Marco Nelissen <marcone@google.com> Make the media provider follow paths to other content providers.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
0027019c6190f6bfa6935904107f23c8e75b1ffd 08-Jan-2010 Marco Nelissen <marcone@google.com> Add a uri to query for the current card ID. Get rid of MediaScannerCursor and just use MatrixCursor instead.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e31cfb1a2c21e7ac7a646d40afbb48f49fab6907 05-Jan-2010 Marco Nelissen <marcone@google.com> MediaFile.UNKNOWN_STRING -> MediaStore.UNKNOWN_STRING
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
3f9c37ea95a3bdf5f84dc79eb199256c4deda29a 11-Dec-2009 Marco Nelissen <marcone@google.com> Don't use pictures from the root or download folder as album art.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f5f9eca3e7237c0aa12ea9e58bd980af041adbc4 09-Dec-2009 Marco Nelissen <marcone@google.com> Add a way to move an entry in a playlist with a single content provider operation.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
cb0c5a6863b073d142b1fd3b4168cd665b72ae80 08-Dec-2009 Marco Nelissen <marcone@google.com> Add support for batch operations to the media provider.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
268435e85a053ac447baed4a401ca12b3ea7e6e1 08-Dec-2009 Marco Nelissen <marcone@google.com> Move the album thumb cache folder to /sdcard/android/data/com.android.providers.media/albumthumbs
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
48f3c0f6d7d1ff32dfc6eadc2f28a241e7029961 04-Dec-2009 Ray Chen <raychen@google.com> am 1769168a: Upgrade database version so MediaScanner can rescan images/video files to update DATE_TAKEN field. http://b/2297371

Merge commit '1769168ade7b67f8695a4e4f3c69625aca0811d5' into eclair-mr2

* commit '1769168ade7b67f8695a4e4f3c69625aca0811d5':
Upgrade database version so MediaScanner can rescan images/video files to
1769168ade7b67f8695a4e4f3c69625aca0811d5 04-Dec-2009 Ray Chen <raychen@google.com> Upgrade database version so MediaScanner can rescan images/video files to
update DATE_TAKEN field.
http://b/2297371
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9299727714ad25618a1a77eeca7f1e9c72f1e510 09-Oct-2009 Ray Chen <raychen@google.com> Add magic parameter to MediaThumbRequest.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d721e448d658b9f4b0688e6462608af8f1a50db8 12-Oct-2009 Ray Chen <raychen@google.com> Catch UnsupportedOperationException in case a MediaThumbRequest arrives after external storage had been detached.
http://b/2286724
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
1d6eba9e1e28c722aa73a651d86a2efe2b937bf2 12-Oct-2009 Ray Chen <raychen@google.com> Catch UnsupportedOperationException for MediaThumbRequest.execute().
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a7953f20fc1f893712b07f9216d7b0e452eec779 14-Oct-2009 Marco Nelissen <marcone@google.com> Fix problem that thirdeye caught (http://b/issue?id=2181781), and be more proactive
about recycling bitmaps we no longer need, which might solve http://b/issue?id=2188410
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e7219b83c17d75151746d6cad1b61d447910ae92 05-Oct-2009 Ray Chen <raychen@google.com> Add group id to cancel MediaThumbRequest.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
20434e032e498b716f87cce2f23dd646819218bf 30-Sep-2009 Ray Chen <raychen@google.com> Add cancelThumbnailRequest API.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e263c2a4b880ef8a5314bb4379c74bf5f9292bd0 29-Sep-2009 Ray Chen <raychen@google.com> Check magic before making media thumbnail request.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4d96d72ea42c2ec41a891f65623270473ae8eebd 26-Sep-2009 Ray Chen <raychen@google.com> Adjust getThumbnail's priority to HIGH to utilize priority queue, and check original file exists before we generate thumbnails.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
01a6f2f96c5b483f5281f6d3066380a129c06021 24-Sep-2009 Ray Chen <raychen@google.com> Avoid duplicate thumbnail requests and fix a thumbnail uri issue.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b386112a8c5e5bd2d3d77e5398bea26b2172dffc 08-Sep-2009 Ray Chen <raychen@google.com> Thumbnail generation queue and runtime to support new thumbnail API.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
95ff0f28fc2c15fea233e3d2ce71eeea3f1a4942 21-Sep-2009 Ray Chen <raychen@google.com> Remove trailing spaces for easier code review.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a9c4e330dacb37cfffa9c00f7da83cafde4accef 31-Jul-2009 Marco Nelissen <marcone@google.com> Fix bug in media provider that caused it to not generate the album
art cache during the initial media scan.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
4574e03055af60fada50481f2b34e19a687d5866 30-Jul-2009 Marco Nelissen <marcone@google.com> Allow apps to specify a limit parameter when doing media queries.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
724addb36a6374348e5227309af64cc574ae3d6a 15-Jul-2009 Marco Nelissen <marcone@google.com> am e96c1d96: Strip the title also when doing an update.

Merge commit 'e96c1d9637e89b5f99c7002fd06f7f35a9164849'

* commit 'e96c1d9637e89b5f99c7002fd06f7f35a9164849':
Strip the title also when doing an update.
e96c1d9637e89b5f99c7002fd06f7f35a9164849 15-Jul-2009 Marco Nelissen <marcone@google.com> Strip the title also when doing an update.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
34b7ef9b12835ae0243998b88dafdeb2990be0a0 09-Jul-2009 Jean-Baptiste Queru <jbq@google.com> Merge branch 'master' of git://android.git.kernel.org/platform/packages/providers/MediaProvider into merge_korg_master

* 'master' of git://android.git.kernel.org/platform/packages/providers/MediaProvider:
Resolving issue with IMAGE_MEDIA: Bug 2861
5bc0e60428b7d6e8816272fed71bcd032528affd 06-Jul-2009 Marco Nelissen <marcone@google.com> am 358cfed9: Trim title before inserting in to the database.

Merge commit '358cfed9391de9b39ecb2a3dbefcf5e392915954'

* commit '358cfed9391de9b39ecb2a3dbefcf5e392915954':
Trim title before inserting in to the database.
358cfed9391de9b39ecb2a3dbefcf5e392915954 06-Jul-2009 Marco Nelissen <marcone@google.com> Trim title before inserting in to the database.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
d239857cc84099d32b0439993c4e3eef2129f771 02-Jul-2009 Marco Nelissen <marcone@google.com> Look for other image files in addition to AlbumArt.jpg when getting album art.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
0a052a870a7a850814eb0ade04b713832d9ff4b0 02-Jul-2009 Satish Sampath <satish@android.com> am 63f748ff: Update music/media content provider for global search.

Merge commit '63f748ff8b258d9110038778a006b3000164fbee'

* commit '63f748ff8b258d9110038778a006b3000164fbee':
Update music/media content provider for global search.
63f748ff8b258d9110038778a006b3000164fbee 30-Jun-2009 Satish Sampath <satish@android.com> Update music/media content provider for global search.

Updated the icons with the ones we were using in global search.
Updated the sql for fetching search results to match the latest agreed format.
Changes to Global search and music app will follow.

Related bug - http://b/issue?id=1819601
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
611d35fea332393f99899b0f623b8aee48505e0d 30-Jun-2009 Marco Nelissen <marcone@google.com> am a4d451b5: Add the artist name to the key for the \'unknown\' album, so we can distinguish between unknown albums by different artists, but more importantly so we don\'t pick any random artist as the \'owner\' of the unknown album.

Merge commit 'a4d451b5aecc8b2aed0bc6ea341e097697aeeeb2'

* commit 'a4d451b5aecc8b2aed0bc6ea341e097697aeeeb2':
Add the artist name to the key for the 'unknown' album, so we can
a4d451b5aecc8b2aed0bc6ea341e097697aeeeb2 27-Jun-2009 Marco Nelissen <marcone@google.com> Add the artist name to the key for the 'unknown' album, so we can
distinguish between unknown albums by different artists, but more
importantly so we don't pick any random artist as the 'owner' of
the unknown album.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
71ece60b1465f2289851fe3fc5fa7c867ba5804d 16-Jun-2009 Marco Nelissen <marcone@google.com> Rework the way album art is handled in the media provider:
- opening album art files with openFile() now actually creates the thumbnail
right away and returns it, instead of returning null and then creating the
thumbnail asynchronously.
- added a new URI to get album art for a specific file
- renamed some of the methods involved
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f75dba4941649c19bfe9c14a6ef152af21346056 16-Jun-2009 Marco Nelissen <marcone@google.com> In order to take full advantage of the scheduling groups stuff, the priority
of the thread needs to be Process.THREAD_PRIORITY_BACKGROUND. Setting it to
Thread.MIN_PRIORITY gives the thread worse priority, but still results in
higher CPU usage because it won't be in the background scheduling group.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9f02f449f6951b15bb9daaa3fc6e1d648b36b08a 04-Jun-2009 Goodwin <reddoordesign@gmail.com> Resolving issue with IMAGE_MEDIA: Bug 2861

Adding blank line to provide consistency to the code
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
15d7507838ad66cfebc7d730d143d27ea04736f8 22-May-2009 Marco Nelissen <marcone@google.com> Update the database to remove double quotes from existing media keys.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
59948d12c73d9132fbf3930eb93897baab1a94da 05-May-2009 Marco Nelissen <marcone@google.com> To distinguish between different albums with the same name (e.g. "Greatest Hits"),
add a hash of the path to the album key, so that we at least distinguish them
when they're in different folders. At some point we will take CDDB info from
metadata in to account.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
ea74c8add2d5b4215dfeb69183632d9e9797ac5a 01-May-2009 Marco Nelissen <marcone@google.com> Oops, the 'itemorder' column doesn't exist anymore, so fake it.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
a65c5443d17d497703272b7ae2f0aa5b165bff3f 24-Apr-2009 Marco Nelissen <marcone@google.com> Improve performance and memory usage of the big media search union query.
Memory usage is reduced by encouraging sqlite to use an index when traversing
the audio table, which means it doesn't need to do a separate sorting pass,
so it no longer runs out of memory on very large datasets.
It's also about 35% faster on my sample large dataset.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
8d85ef81ed5f1604d40eb8a321fafd2079ada030 22-Apr-2009 Marco Nelissen <marcone@google.com> Fix up existing media database entries to take the new case insensitive matching in to account.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
97e61d89d90a1bd6989a254660aa80553662e002 22-Apr-2009 Marco Nelissen <marcone@google.com> Fix bug 1559913, a null pointer exception when querying members of a playlist using a null projection.
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
8a4de789c3eafb17dd1eed82bc94fd9c2eb59e52 21-Apr-2009 Andreas Huber <andih@google.com> Various performance improvements related to album art generation in MediaProvider.

Avoid duplicating (or, in actuality 5-plicating) the amount of effort
we spend on creating album art thumbnails.

Process thumbnail creation requests in LIFO order rather than FIFO,
the assumption being that the user is looking at the items just added
to the queue and older ones may have already scrolled out of view.

Don't recompress thumbnail data if it's already of appropriate size,
instead, write the compressed data out as is.

related to bug 1742501
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
702152725052b7b3903ed647cf53f04724886a1b 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
926d74259c0b723054a818fde377c6f46f0fe28a 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9627a079062d841f7cc14fdd8cdf7bbbdb9718b9 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@132589
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
791dd07e74dca4c4c74c3000f1e0ac2305ba3dea 03-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@137055
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
9e7f4b1ae2e96d4604a63b577bc92d2cccb99071 11-Feb-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@130745
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
f414462bdd8715a39e24a7eaee0863e5b29302ce 20-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@127101
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
6911fe3b867bd9404ef65cef9a46d0acdd5a7f0c 16-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@126645
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
be8c7c4ca005f210ffcc455c8f32ea5d06922b90 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
e3cc725934758f4ef732b5c7d1507b653071a412 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java
b80ba9251102fc785a5f231f41a61af1781723a2 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/packages/providers/MediaProvider/src/com/android/providers/media/MediaProvider.java