diff options
| author | Thomas Wendt <thoemy@gmx.net> | 2014-03-22 20:43:38 +0530 |
|---|---|---|
| committer | LorDClockaN <davor@losinj.com> | 2015-01-16 16:08:06 +0100 |
| commit | 4311757bd14068520da5c2efdc84fbd573a259a4 (patch) | |
| tree | dda7e14eeb7d656bd2a94342bd57bd72a535b905 | |
| parent | 5821f9bfb8afa3444adc39a25e039d1bd1385153 (diff) | |
DownloadProvider: Properly open imageslp5.0
Open images with content://media/ instead of
content://downloads/ URI.
This allows images to be shared directly after opening them with the
DownloadManager.
Change-Id: I3648b1c563acaa80b28a230bdb43ead3476cf3e7
| -rw-r--r-- | src/com/android/providers/downloads/OpenHelper.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/com/android/providers/downloads/OpenHelper.java b/src/com/android/providers/downloads/OpenHelper.java index 4eb319c4..58c8ed69 100644 --- a/src/com/android/providers/downloads/OpenHelper.java +++ b/src/com/android/providers/downloads/OpenHelper.java @@ -18,6 +18,7 @@ package com.android.providers.downloads; import static android.app.DownloadManager.COLUMN_LOCAL_FILENAME; import static android.app.DownloadManager.COLUMN_LOCAL_URI; +import static android.app.DownloadManager.COLUMN_MEDIAPROVIDER_URI; import static android.app.DownloadManager.COLUMN_MEDIA_TYPE; import static android.app.DownloadManager.COLUMN_URI; import static android.provider.Downloads.Impl.ALL_DOWNLOADS_CONTENT_URI; @@ -88,6 +89,10 @@ public class OpenHelper { intent.putExtra(Intent.EXTRA_ORIGINATING_URI, remoteUri); intent.putExtra(Intent.EXTRA_REFERRER, getRefererUri(context, id)); intent.putExtra(Intent.EXTRA_ORIGINATING_UID, getOriginatingUid(context, id)); + } else if (mimeType.startsWith("image/") && !isNull(cursor, COLUMN_MEDIAPROVIDER_URI)) { + final Uri mediaUri = getCursorUri(cursor, COLUMN_MEDIAPROVIDER_URI); + intent.setDataAndType(mediaUri, mimeType); + intent.putExtra("SingleItemOnly", true); } else if ("file".equals(localUri.getScheme())) { intent.setFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION | Intent.FLAG_GRANT_WRITE_URI_PERMISSION); @@ -139,6 +144,10 @@ public class OpenHelper { return -1; } + private static Boolean isNull(Cursor cursor, String column) { + return cursor.isNull(cursor.getColumnIndexOrThrow(column)); + } + private static String getCursorString(Cursor cursor, String column) { return cursor.getString(cursor.getColumnIndexOrThrow(column)); } |
