diff options
-rw-r--r-- | src/com/android/providers/media/MediaProvider.java | 7 |
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; |