From 25149defde861359845cb8e5563e5478f7b95788 Mon Sep 17 00:00:00 2001 From: Chirag Maheshwari Date: Wed, 18 Oct 2017 02:22:05 +0530 Subject: [PATCH] Use FileProvider to get file URI for API 24+ (#280) --- src/main/java/org/amahi/anywhere/util/Downloader.java | 9 ++++++++- src/main/res/xml/file_paths.xml | 7 +++++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/amahi/anywhere/util/Downloader.java b/src/main/java/org/amahi/anywhere/util/Downloader.java index 821e0eca4..5aeb4b158 100644 --- a/src/main/java/org/amahi/anywhere/util/Downloader.java +++ b/src/main/java/org/amahi/anywhere/util/Downloader.java @@ -27,6 +27,7 @@ import android.database.Cursor; import android.net.Uri; import android.os.Environment; +import android.support.v4.content.FileProvider; import org.amahi.anywhere.bus.BusProvider; import org.amahi.anywhere.bus.FileDownloadFailedEvent; @@ -114,7 +115,13 @@ private void finishDownloading() { String downloadUri = downloadInformation.getString( downloadInformation.getColumnIndex(DownloadManager.COLUMN_LOCAL_URI)); - BusProvider.getBus().post(new FileDownloadedEvent(Uri.parse(downloadUri))); + if (downloadUri.substring(0, 7).matches("file://")) { + downloadUri = downloadUri.substring(7); + } + File file = new File(downloadUri); + Uri contentUri = FileProvider.getUriForFile(context, "org.amahi.anywhere.fileprovider", file); + + BusProvider.getBus().post(new FileDownloadedEvent(contentUri)); } else { BusProvider.getBus().post(new FileDownloadFailedEvent()); } diff --git a/src/main/res/xml/file_paths.xml b/src/main/res/xml/file_paths.xml index c1c842c40..808320e16 100644 --- a/src/main/res/xml/file_paths.xml +++ b/src/main/res/xml/file_paths.xml @@ -2,5 +2,8 @@ - + path="Android/data/org.amahi.anywhere/files/Pictures"/> + + \ No newline at end of file