summaryrefslogtreecommitdiffstats
path: root/src/com/android/providers/downloads
diff options
context:
space:
mode:
authorThomas Wendt <thoemy@gmx.net>2013-02-14 01:36:58 +0100
committerMichael Bestas <mikeioannina@cyanogenmod.org>2016-01-24 20:02:15 +0200
commit4110d83fa620e5b968dcbd411a28c5ef229e701d (patch)
tree687ddfd2b6a139892d8905e25e364e7de2f6fc8d /src/com/android/providers/downloads
parente9a479c8d5c39b65d76ad551e69243f5660c6615 (diff)
downloadandroid_packages_providers_DownloadProvider-4110d83fa620e5b968dcbd411a28c5ef229e701d.tar.gz
android_packages_providers_DownloadProvider-4110d83fa620e5b968dcbd411a28c5ef229e701d.tar.bz2
android_packages_providers_DownloadProvider-4110d83fa620e5b968dcbd411a28c5ef229e701d.zip
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
Diffstat (limited to 'src/com/android/providers/downloads')
-rw-r--r--src/com/android/providers/downloads/OpenHelper.java9
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 0a12daac..8cca9bed 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;
@@ -97,6 +98,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);
@@ -148,6 +153,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));
}