always copy firefoxe’s shared files

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/persistance/FileBackend.java                   | 17 
src/main/java/eu/siacs/conversations/services/AttachFileToConversationRunnable.java |  2 
2 files changed, 17 insertions(+), 2 deletions(-)

Detailed changes

src/main/java/eu/siacs/conversations/persistance/FileBackend.java 🔗

@@ -44,6 +44,7 @@ import java.security.DigestOutputStream;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.text.SimpleDateFormat;
+import java.util.Arrays;
 import java.util.Date;
 import java.util.List;
 import java.util.Locale;
@@ -70,6 +71,8 @@ public class FileBackend {
 
 	private XmppConnectionService mXmppConnectionService;
 
+	private static final List<String> BLACKLISTED_PATH_ELEMENTS = Arrays.asList("org.mozilla.firefox");
+
 	public FileBackend(XmppConnectionService service) {
 		this.mXmppConnectionService = service;
 	}
@@ -233,9 +236,12 @@ public class FileBackend {
 		return result;
 	}
 
+
+
+
 	public boolean useImageAsIs(Uri uri) {
 		String path = getOriginalPath(uri);
-		if (path == null) {
+		if (path == null || isPathBlacklisted(path)) {
 			return false;
 		}
 		File file = new File(path);
@@ -256,6 +262,15 @@ public class FileBackend {
 		}
 	}
 
+	public static boolean isPathBlacklisted(String path) {
+		for(String element : BLACKLISTED_PATH_ELEMENTS) {
+			if (path.contains(element)) {
+				return true;
+			}
+		}
+		return false;
+	}
+
 	public String getOriginalPath(Uri uri) {
 		return FileUtils.getPath(mXmppConnectionService, uri);
 	}

src/main/java/eu/siacs/conversations/services/AttachFileToConversationRunnable.java 🔗

@@ -54,7 +54,7 @@ public class AttachFileToConversationRunnable implements Runnable, MediaTranscod
 
 	private void processAsFile() {
 		final String path = mXmppConnectionService.getFileBackend().getOriginalPath(uri);
-		if (path != null) {
+		if (path != null && !FileBackend.isPathBlacklisted(path)) {
 			message.setRelativeFilePath(path);
 			mXmppConnectionService.getFileBackend().updateFileParams(message);
 			if (message.getEncryption() == Message.ENCRYPTION_DECRYPTED) {