Also removed an unnecessary parameter to MtpDatabase.endSendobject()
BUG: 3352142
Change-Id: I6fd812dcba4814956bc8bc1cbd6bd5c868197790
Signed-off-by: Mike Lockwood <lockwood@android.com>
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
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
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>
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>
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>
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>
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>
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>
Update table columns in MediaStore and adjust media scanner MTP support.
Change-Id: Ide41315a6d7650aadb703f93c7e022fc5c40d4dd
Signed-off-by: Mike Lockwood <lockwood@android.com>
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>
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>
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>
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>
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
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
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.
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.