From be1992ce897d3b0551e545646a3e0f45cc6dd8c2 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Sun, 6 Aug 2017 14:28:00 +0200 Subject: Implements XEP-0202 Entity Time, moves Software Version to xmpp package, moves namespace definitions for mam, carbons and avatar to xmpp package --- .../conversationsplus/parser/MessageParser.java | 50 ++++++++++++---------- 1 file changed, 28 insertions(+), 22 deletions(-) (limited to 'src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java') diff --git a/src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java b/src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java index f282ae01..52d35f58 100644 --- a/src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java +++ b/src/main/java/de/thedevstack/conversationsplus/parser/MessageParser.java @@ -5,12 +5,18 @@ import android.util.Pair; import de.thedevstack.conversationsplus.entities.FileParams; import de.thedevstack.conversationsplus.enums.FileStatus; +import de.thedevstack.conversationsplus.persistance.DatabaseBackend; import de.thedevstack.conversationsplus.services.avatar.AvatarCache; import de.thedevstack.conversationsplus.services.filetransfer.http.download.AutomaticFileDownload; import de.thedevstack.conversationsplus.services.filetransfer.http.download.HttpRetrieveHead; import de.thedevstack.conversationsplus.utils.MessageUtil; +import de.thedevstack.conversationsplus.utils.UiUpdateHelper; +import de.thedevstack.conversationsplus.utils.XmppSendUtil; +import de.thedevstack.conversationsplus.xmpp.avatar.AvatarPacket; import de.thedevstack.conversationsplus.xmpp.avatar.AvatarPacketParser; +import de.thedevstack.conversationsplus.xmpp.carbons.Carbons; import de.thedevstack.conversationsplus.xmpp.httpuploadim.HttpUploadHint; +import de.thedevstack.conversationsplus.xmpp.mam.Mam; import de.tzur.conversations.Settings; import net.java.otr4j.session.Session; @@ -99,7 +105,7 @@ public class MessageParser extends AbstractParser implements return null; } else if (body == null && status == SessionStatus.FINISHED) { conversation.resetOtrSession(); - mXmppConnectionService.updateConversationUi(); + UiUpdateHelper.updateConversationUi(); return null; } else if (body == null || (body.isEmpty())) { return null; @@ -148,9 +154,9 @@ public class MessageParser extends AbstractParser implements Conversation conversation = mXmppConnectionService.findOrCreateConversation(account, jid, true); if (!conversation.getMucOptions().online()) { conversation.getMucOptions().setPassword(password); - mXmppConnectionService.databaseBackend.updateConversation(conversation); + DatabaseBackend.getInstance().updateConversation(conversation); mXmppConnectionService.joinMuc(conversation); - mXmppConnectionService.updateConversationUi(); + UiUpdateHelper.updateConversationUi(); } return true; } @@ -189,24 +195,24 @@ public class MessageParser extends AbstractParser implements private void parseEvent(final Element event, final Jid from, final Account account) { Element items = event.findChild("items"); String node = items == null ? null : items.getAttribute("node"); - if ("urn:xmpp:avatar:metadata".equals(node)) { + if (AvatarPacket.NAMESPACE_AVATAR_METADATA.equals(node)) { Avatar avatar = AvatarPacketParser.parseMetadata(items); if (avatar != null) { avatar.owner = from.toBareJid(); if (AvatarUtil.isAvatarCached(avatar)) { if (account.getJid().toBareJid().equals(from)) { if (account.setAvatar(avatar.getFilename())) { - mXmppConnectionService.databaseBackend.updateAccount(account); + DatabaseBackend.getInstance().updateAccount(account); } AvatarCache.clear(account); - mXmppConnectionService.updateConversationUi(); - mXmppConnectionService.updateAccountUi(); + UiUpdateHelper.updateConversationUi(); + UiUpdateHelper.updateAccountUi(); } else { Contact contact = account.getRoster().getContact(from); contact.setAvatar(avatar); AvatarCache.clear(contact); - mXmppConnectionService.updateConversationUi(); - mXmppConnectionService.updateRosterUi(); + UiUpdateHelper.updateConversationUi(); + UiUpdateHelper.updateRosterUi(); } } else { AvatarService.getInstance().fetchAvatar(account, avatar); @@ -219,8 +225,8 @@ public class MessageParser extends AbstractParser implements Contact contact = account.getRoster().getContact(from); contact.setPresenceName(nick.getContent()); AvatarCache.clear(account); - mXmppConnectionService.updateConversationUi(); - mXmppConnectionService.updateAccountUi(); + UiUpdateHelper.updateConversationUi(); + UiUpdateHelper.updateAccountUi(); } } else if (ConversationsPlusPreferences.omemoEnabled() && AxolotlService.PEP_DEVICE_LIST.equals(node)) { Log.d(Config.LOGTAG, AxolotlServiceImpl.getLogprefix(account)+"Received PEP device list update from "+ from + ", processing..."); @@ -228,7 +234,7 @@ public class MessageParser extends AbstractParser implements Set deviceIds = mXmppConnectionService.getIqParser().deviceIds(item); AxolotlService axolotlService = account.getAxolotlService(); axolotlService.registerDevices(from, deviceIds); - mXmppConnectionService.updateAccountUi(); + UiUpdateHelper.updateAccountUi(); } } @@ -266,15 +272,15 @@ public class MessageParser extends AbstractParser implements final boolean isForwarded; boolean isCarbon = false; String serverMsgId = null; - final Element fin = original.findChild("fin", "urn:xmpp:mam:0"); + final Element fin = original.findChild("fin", Mam.NAMESPACE); if (fin != null) { mXmppConnectionService.getMessageArchiveService().processFin(fin,original.getFrom()); return; } - final Element result = original.findChild("result","urn:xmpp:mam:0"); + final Element result = original.findChild("result", Mam.NAMESPACE); final MessageArchiveService.Query query = result == null ? null : mXmppConnectionService.getMessageArchiveService().findQuery(result.getAttribute("queryid")); if (query != null && query.validFrom(original.getFrom())) { - Pair f = original.getForwardedMessagePacket("result", "urn:xmpp:mam:0"); + Pair f = original.getForwardedMessagePacket("result", Mam.NAMESPACE); if (f == null) { return; } @@ -288,8 +294,8 @@ public class MessageParser extends AbstractParser implements return; } else if (original.fromServer(account)) { Pair f; - f = original.getForwardedMessagePacket("received", "urn:xmpp:carbons:2"); - f = f == null ? original.getForwardedMessagePacket("sent", "urn:xmpp:carbons:2") : f; + f = original.getForwardedMessagePacket("received", Carbons.NAMESPACE); + f = f == null ? original.getForwardedMessagePacket("sent", Carbons.NAMESPACE) : f; packet = f != null ? f.first : original; if (handleErrorMessage(account, packet)) { return; @@ -339,7 +345,7 @@ public class MessageParser extends AbstractParser implements } if (extractChatState(mXmppConnectionService.find(account, counterpart.toBareJid()), packet)) { - mXmppConnectionService.updateConversationUi(); + UiUpdateHelper.updateConversationUi(); } if ((body != null || pgpEncrypted != null || axolotlEncrypted != null) && !isMucStatusMessage) { @@ -455,7 +461,7 @@ public class MessageParser extends AbstractParser implements } if (query == null) { - mXmppConnectionService.updateConversationUi(); + UiUpdateHelper.updateConversationUi(); } if (Settings.CONFIRM_MESSAGE_READ && remoteMsgId != null && !isForwarded && !isTypeGroupChat) { @@ -477,7 +483,7 @@ public class MessageParser extends AbstractParser implements } } if (message.getEncryption() == Message.ENCRYPTION_NONE || !ConversationsPlusPreferences.dontSaveEncrypted()) { - mXmppConnectionService.databaseBackend.createMessage(message); + DatabaseBackend.getInstance().createMessage(message); } if (message.trusted() && message.treatAsDownloadable() != Message.Decision.NEVER @@ -511,7 +517,7 @@ public class MessageParser extends AbstractParser implements mXmppConnectionService.pushBookmarks(account); } } - mXmppConnectionService.updateConversationUi(); + UiUpdateHelper.updateConversationUi(); return; } } @@ -580,7 +586,7 @@ public class MessageParser extends AbstractParser implements packet, receiptsNamespaces, packet.getType()); - mXmppConnectionService.sendMessagePacket(account, receipt); + XmppSendUtil.sendMessagePacket(account, receipt); } } } -- cgit v1.2.3