summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2018-04-25 12:25:24 -0700
committerMarco Nelissen <marcone@google.com>2018-04-27 11:09:12 -0700
commitff93c6cb125b4f0634071a1022a8ddf39533f0e6 (patch)
tree9f010b0801fa88ec0a7b425305a20b42ecea1db0
parent881c0bb35f8c895040afc3c198f0cf522585c855 (diff)
downloadMediaProvider-ff93c6cb125b4f0634071a1022a8ddf39533f0e6.tar.gz
Don't treat failed scans as valid media files
Instead, add them to the MediaProvider as non-media files. Bug: 77656952 Test: manual, CTS Change-Id: I3816e258bd092307280d93dca8c7ce8f539ffcf5
-rw-r--r--src/com/android/providers/media/MediaProvider.java7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/com/android/providers/media/MediaProvider.java b/src/com/android/providers/media/MediaProvider.java
index 659894597..9d2e9961a 100644
--- a/src/com/android/providers/media/MediaProvider.java
+++ b/src/com/android/providers/media/MediaProvider.java
@@ -2281,10 +2281,15 @@ public class MediaProvider extends ContentProvider {
if (mimeType == null && path != null && format != MtpConstants.FORMAT_ASSOCIATION) {
mimeType = MediaFile.getMimeTypeForFile(path);
}
+
if (mimeType != null) {
values.put(FileColumns.MIME_TYPE, mimeType);
- if (mediaType == FileColumns.MEDIA_TYPE_NONE && !MediaScanner.isNoMediaPath(path)) {
+ // If 'values' contained the media type, then the caller wants us
+ // to use that exact type, so don't override it based on mimetype
+ if (!values.containsKey(FileColumns.MEDIA_TYPE) &&
+ mediaType == FileColumns.MEDIA_TYPE_NONE &&
+ !MediaScanner.isNoMediaPath(path)) {
int fileType = MediaFile.getFileTypeForMimeType(mimeType);
if (MediaFile.isAudioFileType(fileType)) {
mediaType = FileColumns.MEDIA_TYPE_AUDIO;