diff --git a/MessengerProj/src/main/AndroidManifest.xml b/MessengerProj/src/main/AndroidManifest.xml
index c9c460cbe..0cd103d1c 100644
--- a/MessengerProj/src/main/AndroidManifest.xml
+++ b/MessengerProj/src/main/AndroidManifest.xml
@@ -227,7 +227,12 @@
-
+
+
sharedFiles = new HashMap<>();
+
public static void openForViewOrShare(Activity activity, int msg_id, String cmd)
{
MrMsg msg = MrMailbox.getMsg(msg_id);
@@ -832,6 +835,7 @@ public class AndroidUtilities {
Uri uri;
if (path.startsWith(MrMailbox.getBlobdir())) {
uri = Uri.parse("content://" + BuildConfig.APPLICATION_ID + ".attachments/" + file.getName());
+ sharedFiles.put("/"+file.getName(), 1); // as different Android version handle uris in putExtra differently, we also check them on our own
} else {
if (Build.VERSION.SDK_INT >= 24) {
uri = FileProvider.getUriForFile(activity, BuildConfig.APPLICATION_ID + ".provider", file);
diff --git a/MessengerProj/src/main/java/com/b44t/messenger/AttachmentsContentProvider.java b/MessengerProj/src/main/java/com/b44t/messenger/AttachmentsContentProvider.java
index 3d4493020..720b5eeb5 100644
--- a/MessengerProj/src/main/java/com/b44t/messenger/AttachmentsContentProvider.java
+++ b/MessengerProj/src/main/java/com/b44t/messenger/AttachmentsContentProvider.java
@@ -48,7 +48,12 @@ public class AttachmentsContentProvider extends ContentProvider {
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
- File privateFile = new File(MrMailbox.getBlobdir(), uri.getPath());
+ String path = uri.getPath();
+ if (!AndroidUtilities.sharedFiles.containsKey(path)) {
+ throw new FileNotFoundException("File was not shared before.");
+ }
+
+ File privateFile = new File(MrMailbox.getBlobdir(), path);
return ParcelFileDescriptor.open(privateFile, ParcelFileDescriptor.MODE_READ_ONLY);
}