Commit Graph

73 Commits

Author SHA1 Message Date
Mike Lockwood
242d0cdc1a MediaScanner: Make sure name field is set for file based playlists
Change-Id: I7df1ff783d815d6021ec2432467ba56cb3f3ad1b
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-18 20:29:08 -08:00
Mike Lockwood
7a0bd17bce MTP: Fix problems with modification dates for folders and non-media files
Also removed an unnecessary parameter to MtpDatabase.endSendobject()

BUG: 3352142

Change-Id: I6fd812dcba4814956bc8bc1cbd6bd5c868197790
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-18 11:07:11 -08:00
Marco Nelissen
f679ba7d94 Cherrypick from GB. Do Not Merge.
Send "compilation" tag when inserting into the database.
It's not actually inserted into the database, but the media provider uses it
for disambiguating albums.
b/3311831

Change-Id: I67deb044800a6cb626c69bf3d54d51df4bf830f2
2011-01-13 07:17:20 -08:00
Marco Nelissen
a8a656b0c5 Fix scanning of modified files.
When a media file, particularly a music file, is updated, the media
scanner should use the correct Uri to update it, and not the generic
files Uri. Otherwise, things like artist and album name will not
be properly updated.

Change-Id: I576629c51282bfbeb61c23f1e43b072700084a6c
2011-01-12 14:46:49 -08:00
Mike Lockwood
0dd9f4de3e MediaScanner: Do not update the file path when updating records already in the database
The path should never change (media scanner treats renames as a delete and an insert)
and we want to preserve the mixed case paths in the database to avoid exposing the
lowercase squashing to MTP.

Change-Id: I79ef37e143c607242d438a4a0643d40191965b6a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-12 17:27:37 -05:00
Mike Lockwood
1c4e88d0b0 Media Provider and MTP now use emulated /mnt/sdcard instead of /data/media
This rips out some complicated code that was added since gingerbread
that is no longer necessary.

Change-Id: Iab5ecb7314c06221475ce01ef483f34f17003b06
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-12 12:48:13 -05:00
Mike Lockwood
0cd0136d44 Move MTP Java classes to android.mtp.* package.
Change-Id: Ib18bcaabf314241a95e517d0b93be5845d988e2c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-30 11:54:33 -05:00
Mike Lockwood
fbc4939d2b MediaScanner: Fix handling of .nomedia files in directories
In particular, fix the code that prevents the database triggers from deleting
files when a .nomedia file is added to a directory

Change-Id: Ie913223f3b1bbf9122842a675b96d4baac3b1c6f
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-17 12:27:47 -08:00
Mike Lockwood
076e05b488 MediaScanner: Add support for scanning empty directories
Currently the media scanner does not create database entries for directories
unless they contain a file that is scanned.
Fixing this so we provide a consistent view of the world to MTP.

Change-Id: Ia776acfeae23192183e7192d63cdc34d830ea889
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-16 15:35:36 -08:00
Mike Lockwood
eb46d0601e MediaScanner: No longer delete playlist files that have no valid entries
When copying files from MTP we must keep the file in the database, even
if we cannot find any of the playlist entries (or even if it is not a valid playlist file)

BUG: 3260341

Change-Id: I4b39027ee25ffae6778224cf74830a4b1ca3fecb
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-13 12:10:45 -08:00
Mike Lockwood
f45853af50 MediaScanner: Fix path mismatch in code that check for missing files in postScan()
BUG: 3213640

Change-Id: I102d6c9ae95adadb855e2199380117808ccaa1ee
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-12-02 10:35:49 -05:00
Mike Lockwood
858caeaaa1 MediaScanner: Always use mime type provided to the media scanner
BUG: 3179926

Change-Id: Ib94aea43b83658e3ab31c5eacf7a5135cd14822a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-16 11:28:42 -05:00
Mike Lockwood
caf7e43a40 MediaScanner: Add support for importing file based playlists copied over MTP
Change-Id: I53a9f204297ff29d4df994d2174bd6d6288f2c97
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-12 18:23:19 -05:00
Mike Lockwood
250528e5b2 MediaScanner: Fix mismatch between internal and external file paths.
Change-Id: If2fac90a466c4d63fc90f96e91733c9e9ca14680
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-11-05 17:31:03 -04:00
Gloria Wang
1f89c4f9f8 Use SystemProperties.get() instead of System.getProperty()
Change-Id: I92571fa217e6623345bbd84cf87ab939fbe63b0a
2010-11-02 16:56:42 -07:00
Marco Nelissen
e4eb4d9de3 In java, System.getProperty returns null when the property doesn't exist,
rather than an empty string like it does in native code.
b/3157546

Change-Id: I7985a405e4d2d1f20be0a151aa2cf2e5a83b380b
2010-11-02 13:47:20 -07:00
Gloria Wang
5d143ad4a8 Media scanner support for FL(Forward Lock) DRM file types
Change-Id: Id85edbfc2851d9054a7433d24bb5cf33a457a4e5
2010-11-01 14:08:39 -07:00
Mike Lockwood
6458935331 MediaScanner: don't call pruneDeadThumbnailFiles unless the images table is empty
BUG: 3063257

Change-Id: I648ff8c4d4026e3d2a97853257865c9b5f712712
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-10-07 17:43:57 -04:00
Marco Nelissen
920d649949 Send album artist to the media provider again.
Change-Id: I13f44bab2024adcfbc4b9491ac565cfdf15ef9d9
2010-09-24 09:22:55 -07:00
Mike Lockwood
ff371cf0ed MediaScanner: disable album artist support until MediaProvider really supports it
Fixes a "no such column" exception in MediaProvider.update() that I somehow
missed when testing the MediaProvider refactoring.

Change-Id: Icc502a5c0e3bd150b353972d000b978a9e044abc
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-22 23:25:33 -04:00
Mike Lockwood
c2206a0710 Changes to support MediaProvider refactoring
Update table columns in MediaStore and adjust media scanner MTP support.

Change-Id: Ide41315a6d7650aadb703f93c7e022fc5c40d4dd
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-16 11:49:13 -04:00
Mike Lockwood
d7456c650e MediaScanner: Fix problems with scanner non-file objects from the database
Abstract objects should not be garbage collected and directories should be
removed only if they no longer exist in the file system.

Change-Id: I28b846a39324a7c2968357917089cd4c1238a014
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-14 10:44:30 -04:00
Mike Lockwood
c37255d5d0 Media scanner support for tracking files of arbitrary type.
The native media scanner no longer filters files based on file extension.
Audio, video, image and playlist files are handled as before, but non-media
files are now inserted into the "files" table, which was originally added
to support MTP.

Change-Id: I9053218fb6d2671a3bb181405c34442b94678afc
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-12 23:21:44 -04:00
Mike Lockwood
f73738b78a Add framework resource to specify case sensitivity of the external storage filesystem
Change-Id: I8a433de9188c32214b1f8d6a4490dfe731d68c40
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-09-09 09:58:24 -04:00
Neel Parekh
ed8188711a Have the band tag parsed into album artist.
Some vendors don't use the albumartist tag, but instead put the
album artist tag in the band tag.

Change-Id: Iea3144d55e4db3a28853bcd06bc72366de4421dc
2010-08-24 14:51:47 -07:00
Mike Lockwood
cbaea35759 Add MTP_OBJECT_ID column name to MediaStore.MediaColumns
This column will be added to the images, audio_meta, video and audio_playlist
tables to cross reference to the MTP objects table.

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

Change-Id: I8093485dc0438f408a505e82ffddd0710c7a512c
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-19 09:51:56 -04:00
Mike Lockwood
d815f79766 Integrate host to device file transfer with the media provider.
MTP file transfers happen in two stages.  The SendObjectInfo command sends
some information about the file and reserves an ObjectHandle for the new file.
The file transfer is then performed using the SendObject command.

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

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

Change-Id: I1ebcc63d6bd4404b0d3a93c703a9d3c097381d3a
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-07-12 14:01:22 -04:00
The Android Open Source Project
d398e7a493 merge from open-source master
Change-Id: I17a51b7cebe1486103d4b0af00e7297ddccb60b8
2010-06-18 11:36:35 -07:00
Mikael2 Svensson
ec74abb71f Change in media scanner to set correct date
When the media scanner scanned a single file, the modified
date (DATE_MODIFIED) was not correctly set in the content
provider. It was set as milliseconds but should have been
set as seconds. This caused downloaded media items to display
wrongly in the camera album, since the date was wrong.

Change-Id: I24cd92215c26f579eb33a4a3890f96c6ef9ec8c0
2010-06-06 12:43:51 +02:00
Marco Nelissen
33f49c8377 Don't clear the _data column in the audio_meta table, since it isn't
needed, and causes a sqlite constraint exception.
Bug 2671792.

Change-Id: Ie6e5d0369c3750739fa155e651be4d87c016a41f
2010-05-11 13:09:06 -07:00
Marco Nelissen
c066557378 When updating existing entries in the media database, don't update
the is_music, is_ringtone, etc columns. This ensures that custom
ringtones will still be shown in the ringtone picker after a rescan.
Bug 2594125
Change-Id: I56761240d6f6e699514169d80a445317ba0de9e2
2010-04-20 09:47:31 -07:00
Marco Nelissen
0096b8d7d1 We should pass null for the album artist if it was not set, instead of a copy
of the artist, since the media provider needs to know whether the album artist
was actually set.

Change-Id: I29b885c8293609299a55babadf9ca2a30e20e5bd
2010-03-19 08:07:26 -07:00
Marco Nelissen
abc2819328 Include "album artist" when inserting items in the media provider.
Change-Id: Ic34e2d54557409866dc35c29ee397afdfe874762
2010-03-18 17:15:56 -07:00
Ray Chen
b4ca6ef994 Avoid overriding DATE_TAKEN by unreliable file time. MediaProvider will calculate it if needed.
Change-Id: I05cb8628f2333c26de5c05ee1c7676b8f79a5e9a
2010-03-09 14:23:23 -08:00
Andreas Huber
b2d69e3d77 The MediaScanner is way too obsessed with restricting the files to be scanned.
related-to-bug: 2326148
2010-02-19 09:55:02 -08:00
Marco Nelissen
bfcb22a207 Don't create a genre in the database for genre code 255 (unknown) 2010-02-10 09:31:12 -08:00
Ray Chen
3a8cab88e7 Add GpsDateTime support to ExifInterface and correct images table's date_taken value to UTC timestamp.
http://b/2376777
2010-02-02 18:59:03 -08:00
Marco Nelissen
35b002a9c8 Make the media scanner disregard database entries that do not have
absolute path names. This allows us to store other things (perhaps
with http or content URIs) in the database, without the media scanner
removing them again.
2010-01-21 17:12:45 -08:00
Marco Nelissen
9a488b44cb MediaFile.UNKNOWN_STRING -> MediaStore.UNKNOWN_STRING 2010-01-04 15:09:03 -08:00
Ray Chen
052d9c8b41 Images.Media.DATE_TAKEN should be in milliseconds.
http://b/2297371
2009-12-04 11:51:25 -08:00
Ray Chen
0b6ee9fc5e DATE_TAKEN should be in millisecond instead of second. 2009-11-30 11:07:47 -08:00
Ray Chen
05df33ea74 Fix issue 2265955 Use dateCreated when dateTaken isn't valid when writing images/videos to database. 2009-11-17 10:42:01 -08:00
Marco Nelissen
1851db6804 Always consider m4a files as audio, even when they contain a video track. 2009-09-28 09:03:33 -07:00
Marco Nelissen
d4f3586c93 Check that playlist entries refer to a row in the audio table. 2009-09-27 15:06:03 -07:00
Ray Chen
00c575a3fc Add new thumbnail API. 2009-09-23 11:23:45 -07:00
Chih-Chung Chang
b8f4725d1b Make media scanner read the jpeg orientation tag. 2009-09-22 04:42:02 +08:00
Chih-Chung Chang
872a30ec72 Improve ExifInterface API.
Change-Id: Ic6c4df8244b51b9a0d1c73c3797847220d86604d
2009-09-18 11:30:47 -07:00
Chih-Chung Chang
700beb4846 Clean ExifInterface. Prepare to make it public.
Change-Id: Ibff719d02f525c1e8583d1892737224a0cc42c37
2009-09-16 20:03:48 +08:00
James Stokebrand
a79da2e9b4 RIO-7461: Update media scanner to scan AAC files.
(Change in frameworks/base git)
2009-09-09 11:22:21 -07:00
Marco Nelissen
8b04661700 When encountering a .nomedia file, notify the MediaScannerClient,
so that it can erase the data column for entries that are in the
folder containing the .nomedia file. This prevents us from
deleting (via a delete trigger) files when somebody adds a
.nomedia file after the fact.
2009-09-03 11:22:28 -07:00