diff options
author | Christian Schneppe <christian@pix-art.de> | 2017-01-09 22:08:47 +0100 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2017-01-09 22:08:47 +0100 |
commit | 06c108c58dd3e4e658534633bf7af7b6f73e3a77 (patch) | |
tree | b997636e55cfff049a4babba80e960bf323d871e /src/main/java/de/pixart/messenger/persistance/FileBackend.java | |
parent | b4be51d2a1b637f0f5da8a343277aea3dd36ee06 (diff) |
unify getFileUri across share and open intents
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/persistance/FileBackend.java | 22 |
1 files changed, 15 insertions, 7 deletions
diff --git a/src/main/java/de/pixart/messenger/persistance/FileBackend.java b/src/main/java/de/pixart/messenger/persistance/FileBackend.java index c85c2c34a..147226b79 100644 --- a/src/main/java/de/pixart/messenger/persistance/FileBackend.java +++ b/src/main/java/de/pixart/messenger/persistance/FileBackend.java @@ -62,7 +62,7 @@ import de.pixart.messenger.xmpp.pep.Avatar; public class FileBackend { private static final SimpleDateFormat fileDateFormat = new SimpleDateFormat("yyyyMMdd_HHmmssSSS", Locale.US); - public static final String CONVERSATIONS_FILE_PROVIDER = "de.pixart.messenger.files"; + private static final String FILE_PROVIDER = ".files"; private XmppConnectionService mXmppConnectionService; @@ -499,8 +499,21 @@ public class FileBackend { public Uri getTakePhotoUri() { File file = new File(getTakePhotoPath() + "IMG_" + fileDateFormat.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) { - return FileProvider.getUriForFile(mXmppConnectionService, CONVERSATIONS_FILE_PROVIDER, 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); } @@ -752,11 +765,6 @@ public class FileBackend { return inSampleSize; } - public Uri getJingleFileUri(Message message) { - File file = getFile(message); - return Uri.parse("file://" + file.getAbsolutePath()); - } - public void updateFileParams(Message message) { updateFileParams(message, null); } |