aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/entities/Conversation.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-12-04 21:14:53 +0100
committerChristian Schneppe <christian@pix-art.de>2018-12-04 21:14:53 +0100
commit72a6e378646f0d42cce97616bd2f01b84870049c (patch)
tree6625d3d2d08dfa0dc8f13d53452ed5e8dacd08fa /src/main/java/de/pixart/messenger/entities/Conversation.java
parent50dbd4077f825bb6e594d652745cd5461db3a9df (diff)
implement self healing omemo
after receiving a SignalMessage that can’t be decrypted because of broken sessions Conversations will attempt to grab a new pre key bundle and send a new PreKeySignalMessage wrapped in a key transport message.
Diffstat (limited to '')
-rw-r--r--src/main/java/de/pixart/messenger/entities/Conversation.java14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/de/pixart/messenger/entities/Conversation.java b/src/main/java/de/pixart/messenger/entities/Conversation.java
index 809cee166..502f2638d 100644
--- a/src/main/java/de/pixart/messenger/entities/Conversation.java
+++ b/src/main/java/de/pixart/messenger/entities/Conversation.java
@@ -897,6 +897,20 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
}
}
+ public boolean possibleDuplicate(final String serverMsgId, final String remoteMsgId) {
+ if (serverMsgId == null || remoteMsgId == null) {
+ return false;
+ }
+ synchronized (this.messages) {
+ for (Message message : this.messages) {
+ if (serverMsgId.equals(message.getServerMsgId()) || remoteMsgId.equals(message.getRemoteMsgId())) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
public MamReference getLastMessageTransmitted() {
final MamReference lastClear = getLastClearHistory();
MamReference lastReceived = new MamReference(0);