aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/parser
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-12-16 23:37:58 +0100
committerChristian Schneppe <christian@pix-art.de>2017-12-16 23:37:58 +0100
commit08bc3eb58c272d297e0016586ef144cb21153ff0 (patch)
tree49284de0f5985829379cce9adcdcc757fe54c9e6 /src/main/java/de/pixart/messenger/parser
parenta5bfc704a3f16de4d0c30d5d47cc142bc2924cf0 (diff)
ChatMarkers: parse own account from true counterpart
Diffstat (limited to 'src/main/java/de/pixart/messenger/parser')
-rw-r--r--src/main/java/de/pixart/messenger/parser/MessageParser.java9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/de/pixart/messenger/parser/MessageParser.java b/src/main/java/de/pixart/messenger/parser/MessageParser.java
index dd97291a1..dead57709 100644
--- a/src/main/java/de/pixart/messenger/parser/MessageParser.java
+++ b/src/main/java/de/pixart/messenger/parser/MessageParser.java
@@ -732,13 +732,14 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
if (conversation != null && id != null && sender != null) {
Message message = conversation.findMessageWithRemoteId(id, sender);
if (message != null) {
- if (conversation.getMucOptions().isSelf(counterpart)) {
+ final Jid fallback = conversation.getMucOptions().getTrueCounterpart(counterpart);
+ final Jid trueJid = getTrueCounterpart((query != null && query.safeToExtractTrueCounterpart()) ? mucUserElement : null, fallback);
+ final boolean trueJidMatchesAccount = account.getJid().toBareJid().equals(trueJid == null ? null : trueJid.toBareJid());
+ if (trueJidMatchesAccount || conversation.getMucOptions().isSelf(counterpart)) {
if (!message.isRead() && (query == null || query.isCatchup())) { //checking if message is unread fixes race conditions with reflections
mXmppConnectionService.markRead(conversation);
}
- } else {
- final Jid fallback = conversation.getMucOptions().getTrueCounterpart(counterpart);
- Jid trueJid = getTrueCounterpart((query != null && query.safeToExtractTrueCounterpart()) ? mucUserElement : null, fallback);
+ } else if (!counterpart.isBareJid() && trueJid != null){
ReadByMarker readByMarker = ReadByMarker.from(counterpart, trueJid);
if (message.addReadByMarker(readByMarker)) {
Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": added read by (" + readByMarker.getRealJid() + ") to message '" + message.getBody() + "'");