From b4fe17af341c99eb125c6d2e6bb2b85fc7c98441 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 27 Mar 2018 09:21:54 -0600 Subject: Return underlying MIME type of download. Only return extension-based MIME types for raw files. Test: none Bug: 73736356 Change-Id: I228916fd408cd95f1acf43817fa43ee8646cbd4e --- .../providers/downloads/DownloadStorageProvider.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/com/android/providers/downloads/DownloadStorageProvider.java b/src/com/android/providers/downloads/DownloadStorageProvider.java index 514afdd3..afcba961 100644 --- a/src/com/android/providers/downloads/DownloadStorageProvider.java +++ b/src/com/android/providers/downloads/DownloadStorageProvider.java @@ -365,6 +365,23 @@ public class DownloadStorageProvider extends FileSystemProvider { return result; } + @Override + public String getDocumentType(String docId) throws FileNotFoundException { + // Delegate to real provider + final long token = Binder.clearCallingIdentity(); + try { + if (RawDocumentsHelper.isRawDocId(docId)) { + return super.getDocumentType(docId); + } + + final long id = Long.parseLong(docId); + final ContentResolver resolver = getContext().getContentResolver(); + return resolver.getType(mDm.getDownloadUri(id)); + } finally { + Binder.restoreCallingIdentity(token); + } + } + @Override public ParcelFileDescriptor openDocument(String docId, String mode, CancellationSignal signal) throws FileNotFoundException { -- cgit v1.2.3