From 45985f4f64095b6ca31e7c42851126470112fc26 Mon Sep 17 00:00:00 2001 From: nielsandriesse Date: Thu, 21 May 2020 16:08:48 +1000 Subject: [PATCH] Ignore synced ephemeral messages & fix expiration updating bug --- .../securesms/jobs/PushDecryptJob.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java index aeb0178ad9..59cc5121ec 100644 --- a/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java +++ b/src/org/thoughtcrime/securesms/jobs/PushDecryptJob.java @@ -569,8 +569,8 @@ public class PushDecryptJob extends BaseJob implements InjectableType { { try { MmsDatabase database = DatabaseFactory.getMmsDatabase(context); - Recipient recipient = getMessageDestination(content, message); - IncomingMediaMessage mediaMessage = new IncomingMediaMessage(Address.fromSerialized(content.getSender()), + Recipient recipient = getMessageMasterDestination(content.getSender()); + IncomingMediaMessage mediaMessage = new IncomingMediaMessage(getMessageMasterDestination(content.getSender()).getAddress(), message.getTimestamp(), -1, message.getExpiresInSeconds() * 1000L, true, content.isNeedsReceipt(), @@ -642,6 +642,8 @@ public class PushDecryptJob extends BaseJob implements InjectableType { threadId = handleSynchronizeSentTextMessage(message); } + if (threadId == -1L) { threadId = null; } + if (message.getMessage().getGroupInfo().isPresent() && groupDatabase.isUnknownGroup(GroupUtil.getEncodedId(message.getMessage().getGroupInfo().get()))) { handleUnknownGroupMessage(content, message.getMessage().getGroupInfo().get()); } @@ -766,8 +768,8 @@ public class PushDecryptJob extends BaseJob implements InjectableType { MmsDatabase database = DatabaseFactory.getMmsDatabase(context); database.beginTransaction(); - // Ignore message if it has no body and no attachments or anything - if (mediaMessage.getBody().isEmpty() && mediaMessage.getAttachments().isEmpty() && mediaMessage.getSharedContacts().isEmpty() && mediaMessage.getLinkPreviews().isEmpty()) { + // Loki - Ignore message if it has no body and no attachments + if (mediaMessage.getBody().isEmpty() && mediaMessage.getAttachments().isEmpty() && mediaMessage.getLinkPreviews().isEmpty()) { return; } @@ -959,7 +961,7 @@ public class PushDecryptJob extends BaseJob implements InjectableType { IncomingEncryptedMessage textMessage = new IncomingEncryptedMessage(tm, body); - // Ignore the message if the body is empty + // Ignore the message if it has no body if (textMessage.getMessageBody().length() == 0) { return; } // Insert the message into the database @@ -1009,6 +1011,9 @@ public class PushDecryptJob extends BaseJob implements InjectableType { String body = message.getMessage().getBody().or(""); long expiresInMillis = message.getMessage().getExpiresInSeconds() * 1000L; + // Ignore the message if it has no body + if (body.isEmpty()) { return -1; } + if (recipient.getExpireMessages() != message.getMessage().getExpiresInSeconds()) { handleSynchronizeSentExpirationUpdate(message); }