summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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;