From 58fe9af8ab11e2f0ef08c7aba09f075a7c09e069 Mon Sep 17 00:00:00 2001 From: Thomas Wendt Date: Thu, 14 Feb 2013 01:36:58 +0100 Subject: 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: I65c79923b7aef4c1113e572030c9c7f750b73df0 --- src/com/android/providers/downloads/OpenHelper.java | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/src/com/android/providers/downloads/OpenHelper.java b/src/com/android/providers/downloads/OpenHelper.java index 7eca95c9..5a92316b 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; @@ -63,6 +64,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.setDataAndType( ContentUris.withAppendedId(ALL_DOWNLOADS_CONTENT_URI, id), mimeType); @@ -111,6 +116,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)); } -- cgit v1.2.3