check for links in pgp encrypted messages as well

iNPUTmice created

Change summary

src/eu/siacs/conversations/crypto/PgpEngine.java     |  4 ++++
src/eu/siacs/conversations/entities/Message.java     | 11 +++++------
src/eu/siacs/conversations/http/HttpConnection.java  |  2 ++
src/eu/siacs/conversations/parser/MessageParser.java |  2 +-
4 files changed, 12 insertions(+), 7 deletions(-)

Detailed changes

src/eu/siacs/conversations/crypto/PgpEngine.java 🔗

@@ -61,6 +61,10 @@ public class PgpEngine {
 							if (message.getEncryption() == Message.ENCRYPTION_PGP) {
 								message.setBody(os.toString());
 								message.setEncryption(Message.ENCRYPTION_DECRYPTED);
+								if (message.trusted() && message.bodyContainsDownloadable()) {
+									mXmppConnectionService.getHttpConnectionManager()
+											.createNewConnection(message);
+								}
 								callback.success(message);
 							}
 						} catch (IOException e) {

src/eu/siacs/conversations/entities/Message.java 🔗

@@ -7,7 +7,6 @@ import java.util.Arrays;
 import eu.siacs.conversations.Config;
 import android.content.ContentValues;
 import android.database.Cursor;
-import android.util.Log;
 
 public class Message extends AbstractEntity {
 
@@ -367,13 +366,13 @@ public class Message extends AbstractEntity {
 			return prev.mergable(this);
 		}
 	}
+	
+	public boolean trusted() {
+		Contact contact = this.getContact();
+		return (status > STATUS_RECEIVED || (contact != null && contact.trusted()));
+	}
 
 	public boolean bodyContainsDownloadable() {
-		Contact contact = this.getContact();
-		if (status <= STATUS_RECEIVED
-				&& (contact == null || !contact.trusted())) {
-			return false;
-		}
 		try {
 			URL url = new URL(this.getBody());
 			if (!url.getProtocol().equalsIgnoreCase("http")

src/eu/siacs/conversations/http/HttpConnection.java 🔗

@@ -65,6 +65,8 @@ public class HttpConnection implements Downloadable {
 			String path = mUrl.getPath();
 			if (path != null && (path.endsWith(".pgp") || path.endsWith(".gpg"))) {
 				this.message.setEncryption(Message.ENCRYPTION_PGP);
+			} else if (message.getEncryption() != Message.ENCRYPTION_OTR) {
+				this.message.setEncryption(Message.ENCRYPTION_NONE);
 			}
 			this.file = mXmppConnectionService.getFileBackend().getFile(
 					message, false);

src/eu/siacs/conversations/parser/MessageParser.java 🔗

@@ -484,7 +484,7 @@ public class MessageParser extends AbstractParser implements
 				mXmppConnectionService.databaseBackend.createMessage(message);
 			}
 		}
-		if (message.bodyContainsDownloadable()) {
+		if (message.trusted() && message.bodyContainsDownloadable()) {
 			this.mXmppConnectionService.getHttpConnectionManager()
 					.createNewConnection(message);
 			notify = false;