From b116926bb16e0293374f08a845f95ccea6a0cd2a Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Mon, 9 Jan 2017 17:00:08 +0100 Subject: unify getFileUri across share and open intents --- .../conversations/persistance/FileBackend.java | 25 ++++++++++++---------- 1 file changed, 14 insertions(+), 11 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/persistance/FileBackend.java') diff --git a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java index 1cc70d5a..3239ce3d 100644 --- a/src/main/java/eu/siacs/conversations/persistance/FileBackend.java +++ b/src/main/java/eu/siacs/conversations/persistance/FileBackend.java @@ -10,7 +10,6 @@ import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; -import android.graphics.Rect; import android.graphics.RectF; import android.media.MediaMetadataRetriever; import android.net.Uri; @@ -491,18 +490,26 @@ public class FileBackend { file = new File(getTakePhotoPath() + "IMG_" + this.IMAGE_DATE_FORMAT.format(new Date()) + ".jpg"); } file.getParentFile().mkdirs(); + return getUriForFile(mXmppConnectionService,file); + } + + public static Uri getUriForFile(Context context, File file) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N || Config.ONLY_INTERNAL_STORAGE) { - return getUriForFile(mXmppConnectionService,file); + try { + String packageId = context.getPackageName(); + return FileProvider.getUriForFile(context, packageId + FILE_PROVIDER, file); + } catch(IllegalArgumentException e) { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { + throw new SecurityException(); + } else { + return Uri.fromFile(file); + } + } } else { return Uri.fromFile(file); } } - public static Uri getUriForFile(Context context, File file) { - String packageId = context.getPackageName(); - return FileProvider.getUriForFile(context, packageId + FILE_PROVIDER, file); - } - public static Uri getIndexableTakePhotoUri(Uri original) { if (Config.ONLY_INTERNAL_STORAGE || "file".equals(original.getScheme())) { return original; @@ -749,10 +756,6 @@ public class FileBackend { return inSampleSize; } - public Uri getJingleFileUri(Message message) { - return getUriForFile(mXmppConnectionService,getFile(message)); - } - public void updateFileParams(Message message) { updateFileParams(message,null); } -- cgit v1.2.3