replace corrected messages in decryption queue

Daniel Gultsch created

Change summary

src/main/java/eu/siacs/conversations/crypto/PgpDecryptionService.java | 5 
src/main/java/eu/siacs/conversations/parser/MessageParser.java        | 1 
2 files changed, 6 insertions(+)

Detailed changes

src/main/java/eu/siacs/conversations/crypto/PgpDecryptionService.java 🔗

@@ -64,6 +64,11 @@ public class PgpDecryptionService {
         this.pendingNotifications.removeAll(discards);
     }
 
+    public synchronized void discard(Message message) {
+        this.messages.remove(message);
+        this.pendingNotifications.remove(message);
+    }
+
 	protected synchronized void decryptNext() {
 		if (pendingIntent == null
                 && getOpenPgpApi() != null

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

@@ -483,6 +483,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
 							sendMessageReceipts(account, packet);
 						}
 						if (replacedMessage.getEncryption() == Message.ENCRYPTION_PGP) {
+							conversation.getAccount().getPgpDecryptionService().discard(replacedMessage);
 							conversation.getAccount().getPgpDecryptionService().decrypt(replacedMessage, false);
 						}
 						return;