diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/parser/MessageParser.java | 82 |
1 files changed, 41 insertions, 41 deletions
diff --git a/src/main/java/de/pixart/messenger/parser/MessageParser.java b/src/main/java/de/pixart/messenger/parser/MessageParser.java index e352d0771..77d7b71d6 100644 --- a/src/main/java/de/pixart/messenger/parser/MessageParser.java +++ b/src/main/java/de/pixart/messenger/parser/MessageParser.java @@ -40,9 +40,9 @@ import de.pixart.messenger.utils.Namespace; import de.pixart.messenger.xml.Element; import de.pixart.messenger.xmpp.OnMessagePacketReceived; import de.pixart.messenger.xmpp.chatstate.ChatState; -import de.pixart.messenger.xmpp.jid.Jid; import de.pixart.messenger.xmpp.pep.Avatar; import de.pixart.messenger.xmpp.stanzas.MessagePacket; +import rocks.xmpp.addr.Jid; public class MessageParser extends AbstractParser implements OnMessagePacketReceived { @@ -57,7 +57,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (state != null && c != null) { final Account account = c.getAccount(); Jid from = packet.getFrom(); - if (from.toBareJid().equals(account.getJid().toBareJid())) { + if (from.asBareJid().equals(account.getJid().asBareJid())) { c.setOutgoingChatState(state); if (state == ChatState.ACTIVE || state == ChatState.COMPOSING) { mXmppConnectionService.markRead(c); @@ -85,7 +85,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (from.isBareJid()) { presence = ""; } else { - presence = from.getResourcepart(); + presence = from.getResource(); } if (body.matches("^\\?OTRv\\d{1,2}\\?.*")) { conversation.endOtrIfNeeded(); @@ -120,7 +120,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece return null; } if (clientMightSendHtml(conversation.getAccount(), from)) { - Log.d(Config.LOGTAG, conversation.getAccount().getJid().toBareJid() + ": received OTR message from bad behaving client. escaping HTML…"); + Log.d(Config.LOGTAG, conversation.getAccount().getJid().asBareJid() + ": received OTR message from bad behaving client. escaping HTML…"); if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { body = Html.fromHtml(body, Html.FROM_HTML_MODE_LEGACY).toString(); } else { @@ -141,7 +141,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } private static boolean clientMightSendHtml(Account account, Jid from) { - String resource = from.getResourcepart(); + String resource = from.getResource(); if (resource == null) { return false; } @@ -168,9 +168,9 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece final AxolotlService service = conversation.getAccount().getAxolotlService(); final XmppAxolotlMessage xmppAxolotlMessage; try { - xmppAxolotlMessage = XmppAxolotlMessage.fromElement(axolotlMessage, from.toBareJid()); + xmppAxolotlMessage = XmppAxolotlMessage.fromElement(axolotlMessage, from.asBareJid()); } catch (Exception e) { - Log.d(Config.LOGTAG, conversation.getAccount().getJid().toBareJid() + ": invalid omemo message received " + e.getMessage()); + Log.d(Config.LOGTAG, conversation.getAccount().getJid().asBareJid() + ": invalid omemo message received " + e.getMessage()); return null; } if (xmppAxolotlMessage.hasPayload()) { @@ -182,7 +182,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece return finishedMessage; } } else { - Log.d(Config.LOGTAG, conversation.getAccount().getJid().toBareJid() + ": received OMEMO key transport message"); + Log.d(Config.LOGTAG, conversation.getAccount().getJid().asBareJid() + ": received OMEMO key transport message"); service.processReceivingKeyTransportMessage(xmppAxolotlMessage, postpone); } return null; @@ -238,11 +238,11 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece final Jid by; final boolean safeToExtract; if (isTypeGroupChat) { - by = conversation.getJid().toBareJid(); + by = conversation.getJid().asBareJid(); safeToExtract = conversation.getMucOptions().hasFeature(Namespace.STANZA_IDS); } else { Account account = conversation.getAccount(); - by = account.getJid().toBareJid(); + by = account.getJid().asBareJid(); safeToExtract = account.getXmppConnection().getFeatures().stanzaIds(); } return safeToExtract ? extractStanzaId(packet, by) : null; @@ -265,9 +265,9 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if ("urn:xmpp:avatar:metadata".equals(node)) { Avatar avatar = Avatar.parseMetadata(items); if (avatar != null) { - avatar.owner = from.toBareJid(); + avatar.owner = from.asBareJid(); if (mXmppConnectionService.getFileBackend().isAvatarCached(avatar)) { - if (account.getJid().toBareJid().equals(from)) { + if (account.getJid().asBareJid().equals(from)) { if (account.setAvatar(avatar.getFilename())) { mXmppConnectionService.databaseBackend.updateAccount(account); } @@ -311,7 +311,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece Jid from = packet.getFrom(); if (from != null) { Message message = mXmppConnectionService.markMessage(account, - from.toBareJid(), + from.asBareJid(), packet.getId(), Message.STATUS_SEND_FAILED, extractErrorMessage(packet)); @@ -355,7 +355,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece serverMsgId = result.getAttribute("id"); query.incrementMessageCount(); } else if (query != null) { - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": received mam result from invalid sender"); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": received mam result from invalid sender"); return; } else if (original.fromServer(account)) { Pair<MessagePacket, Long> f; @@ -404,7 +404,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece boolean isTypeGroupChat = packet.getType() == MessagePacket.TYPE_GROUPCHAT; if (query != null && !query.muc() && isTypeGroupChat) { - Log.e(Config.LOGTAG, account.getJid().toBareJid() + ": received groupchat (" + from + ") message on regular MAM request. skipping"); + Log.e(Config.LOGTAG, account.getJid().asBareJid() + ": received groupchat (" + from + ") message on regular MAM request. skipping"); return; } boolean isProperlyAddressed = (to != null) && (!to.isBareJid() || account.countPresences() == 0); @@ -412,7 +412,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece boolean selfAddressed; if (packet.fromAccount(account)) { status = Message.STATUS_SEND; - selfAddressed = to == null || account.getJid().toBareJid().equals(to.toBareJid()); + selfAddressed = to == null || account.getJid().asBareJid().equals(to.asBareJid()); if (selfAddressed) { counterpart = from; } else { @@ -430,7 +430,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } if ((body != null || pgpEncrypted != null || (axolotlEncrypted != null && axolotlEncrypted.hasChild("payload")) || oobUrl != null) && !isMucStatusMessage) { - final Conversation conversation = mXmppConnectionService.findOrCreateConversation(account, counterpart.toBareJid(), isTypeGroupChat, false, query, false); + final Conversation conversation = mXmppConnectionService.findOrCreateConversation(account, counterpart.asBareJid(), isTypeGroupChat, false, query, false); final boolean conversationMultiMode = conversation.getMode() == Conversation.MODE_MULTI; if (serverMsgId == null) { serverMsgId = extractStanzaId(packet, isTypeGroupChat, conversation); @@ -469,7 +469,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece return; } } else { - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": ignoring OTR message from " + from + " isForwarded=" + Boolean.toString(isForwarded) + ", isProperlyAddressed=" + Boolean.valueOf(isProperlyAddressed)); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": ignoring OTR message from " + from + " isForwarded=" + Boolean.toString(isForwarded) + ", isProperlyAddressed=" + Boolean.valueOf(isProperlyAddressed)); message = new Message(conversation, body, Message.ENCRYPTION_NONE, status); } } else if (pgpEncrypted != null && Config.supportOpenPgp()) { @@ -488,7 +488,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } message = parseAxolotlChat(axolotlEncrypted, origin, conversation, status, query != null); if (message == null) { - if (query == null && extractChatState(mXmppConnectionService.find(account, counterpart.toBareJid()), isTypeGroupChat, packet)) { + if (query == null && extractChatState(mXmppConnectionService.find(account, counterpart.asBareJid()), isTypeGroupChat, packet)) { mXmppConnectionService.updateConversationUi(); } if (query != null && status == Message.STATUS_SEND && remoteMsgId != null) { @@ -496,7 +496,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (previouslySent != null && previouslySent.getServerMsgId() == null && serverMsgId != null) { previouslySent.setServerMsgId(serverMsgId); mXmppConnectionService.databaseBackend.updateMessage(previouslySent); - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": encountered previously sent OMEMO message without serverId. updating..."); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": encountered previously sent OMEMO message without serverId. updating..."); } } return; @@ -536,7 +536,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } else { trueCounterpart = fallback; } - if (trueCounterpart != null && trueCounterpart.toBareJid().equals(account.getJid().toBareJid())) { + if (trueCounterpart != null && trueCounterpart.asBareJid().equals(account.getJid().asBareJid())) { status = isTypeGroupChat ? Message.STATUS_SEND_RECEIVED : Message.STATUS_SEND; } message.setStatus(status); @@ -574,7 +574,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (replacedMessage.getStatus() == Message.STATUS_RECEIVED) { replacedMessage.markUnread(); } - extractChatState(mXmppConnectionService.find(account, counterpart.toBareJid()), isTypeGroupChat, packet); + extractChatState(mXmppConnectionService.find(account, counterpart.asBareJid()), isTypeGroupChat, packet); mXmppConnectionService.updateMessage(replacedMessage, uuid); mXmppConnectionService.getNotificationService().updateNotification(false); if (mXmppConnectionService.confirmMessages() @@ -592,14 +592,14 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } return; } else { - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": received message correction but verification didn't check out"); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": received message correction but verification didn't check out"); } } } long deletionDate = mXmppConnectionService.getAutomaticMessageDeletionDate(); if (deletionDate != 0 && message.getTimeSent() < deletionDate) { - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": skipping message from " + message.getCounterpart().toString() + " because it was sent prior to our deletion date"); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": skipping message from " + message.getCounterpart().toString() + " because it was sent prior to our deletion date"); return; } @@ -651,7 +651,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } if (query == null) { - extractChatState(mXmppConnectionService.find(account, counterpart.toBareJid()), isTypeGroupChat, packet); + extractChatState(mXmppConnectionService.find(account, counterpart.asBareJid()), isTypeGroupChat, packet); mXmppConnectionService.updateConversationUi(); } @@ -667,7 +667,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (message.getStatus() == Message.STATUS_RECEIVED && conversation.getOtrSession() != null && !conversation.getOtrSession().getSessionID().getUserID() - .equals(message.getCounterpart().getResourcepart())) { + .equals(message.getCounterpart().getResource())) { conversation.endOtrIfNeeded(); } @@ -683,7 +683,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } } } else if (!packet.hasChild("body")) { //no body - final Conversation conversation = mXmppConnectionService.find(account, from.toBareJid()); + final Conversation conversation = mXmppConnectionService.find(account, from.asBareJid()); if (axolotlEncrypted != null) { Jid origin; if (conversation != null && conversation.getMode() == Conversation.MODE_MULTI) { @@ -699,15 +699,15 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece origin = from; } try { - final XmppAxolotlMessage xmppAxolotlMessage = XmppAxolotlMessage.fromElement(axolotlEncrypted, origin.toBareJid()); + final XmppAxolotlMessage xmppAxolotlMessage = XmppAxolotlMessage.fromElement(axolotlEncrypted, origin.asBareJid()); account.getAxolotlService().processReceivingKeyTransportMessage(xmppAxolotlMessage, query != null); - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": omemo key transport message received from " + origin); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": omemo key transport message received from " + origin); } catch (Exception e) { - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": invalid omemo key transport message received " + e.getMessage()); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": invalid omemo key transport message received " + e.getMessage()); return; } } - if (query == null && extractChatState(mXmppConnectionService.find(account, counterpart.toBareJid()), isTypeGroupChat, packet)) { + if (query == null && extractChatState(mXmppConnectionService.find(account, counterpart.asBareJid()), isTypeGroupChat, packet)) { mXmppConnectionService.updateConversationUi(); } if (isTypeGroupChat) { @@ -743,7 +743,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } } else if ("item".equals(child.getName())) { MucOptions.User user = AbstractParser.parseItem(conversation, child); - Log.d(Config.LOGTAG, account.getJid() + ": changing affiliation for " + user.getRealJid() + " to " + user.getAffiliation() + " in " + conversation.getJid().toBareJid()); + Log.d(Config.LOGTAG, account.getJid() + ": changing affiliation for " + user.getRealJid() + " to " + user.getAffiliation() + " in " + conversation.getJid().asBareJid()); if (!user.realJidMatchesAccount()) { boolean isNew = conversation.getMucOptions().updateUser(user); mXmppConnectionService.getAvatarService().clear(conversation); @@ -754,7 +754,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece Jid jid = user.getRealJid(); List<Jid> cryptoTargets = conversation.getAcceptedCryptoTargets(); if (cryptoTargets.remove(user.getRealJid())) { - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": removed " + jid + " from crypto targets of " + conversation.getName()); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": removed " + jid + " from crypto targets of " + conversation.getName()); conversation.setAcceptedCryptoTargets(cryptoTargets); mXmppConnectionService.updateConversation(conversation); } @@ -783,7 +783,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece query.pendingReceiptRequests.remove(new ReceiptRequest(packet.getTo(), id)); } } else { - mXmppConnectionService.markMessage(account, from.toBareJid(), received.getAttribute("id"), Message.STATUS_SEND_RECEIVED); + mXmppConnectionService.markMessage(account, from.asBareJid(), received.getAttribute("id"), Message.STATUS_SEND_RECEIVED); } } Element displayed = packet.findChild("displayed", "urn:xmpp:chat-markers:0"); @@ -793,13 +793,13 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece if (packet.fromAccount(account) && !selfAddressed) { dismissNotification(account, counterpart, query); } else if (isTypeGroupChat) { - Conversation conversation = mXmppConnectionService.find(account, counterpart.toBareJid()); + Conversation conversation = mXmppConnectionService.find(account, counterpart.asBareJid()); if (conversation != null && id != null && sender != null) { Message message = conversation.findMessageWithRemoteId(id, sender); if (message != null) { 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()); + final boolean trueJidMatchesAccount = account.getJid().asBareJid().equals(trueJid == null ? null : trueJid.asBareJid()); 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); @@ -807,16 +807,16 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } 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() + "'"); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": added read by (" + readByMarker.getRealJid() + ") to message '" + message.getBody() + "'"); mXmppConnectionService.updateMessage(message); - mXmppConnectionService.markMessage(account, from.toBareJid(), id, Message.STATUS_SEND_DISPLAYED); + mXmppConnectionService.markMessage(account, from.asBareJid(), id, Message.STATUS_SEND_DISPLAYED); } } } } } else { - final Message displayedMessage = mXmppConnectionService.markMessage(account, from.toBareJid(), id, Message.STATUS_SEND_DISPLAYED); + final Message displayedMessage = mXmppConnectionService.markMessage(account, from.asBareJid(), id, Message.STATUS_SEND_DISPLAYED); Message message = displayedMessage == null ? null : displayedMessage.prev(); while (message != null && message.getStatus() == Message.STATUS_SEND_RECEIVED @@ -845,7 +845,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece } private void dismissNotification(Account account, Jid counterpart, MessageArchiveService.Query query) { - Conversation conversation = mXmppConnectionService.find(account, counterpart.toBareJid()); + Conversation conversation = mXmppConnectionService.find(account, counterpart.asBareJid()); if (conversation != null && (query == null || query.isCatchup())) { mXmppConnectionService.markRead(conversation); //TODO only mark messages read that are older than timestamp } @@ -886,7 +886,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece private void activateGracePeriod(Account account) { long duration = mXmppConnectionService.getLongPreference("grace_period_length", R.integer.grace_period) * 1000; - Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": activating grace period till " + TIME_FORMAT.format(new Date(System.currentTimeMillis() + duration))); + Log.d(Config.LOGTAG, account.getJid().asBareJid() + ": activating grace period till " + TIME_FORMAT.format(new Date(System.currentTimeMillis() + duration))); account.activateGracePeriod(duration); } } |