diff options
author | steckbrief <steckbrief@chefmail.de> | 2017-08-06 01:15:13 +0200 |
---|---|---|
committer | steckbrief <steckbrief@chefmail.de> | 2017-08-06 01:15:13 +0200 |
commit | 867afe4c5b888ce3f4f9a867906cc8edb86e7aba (patch) | |
tree | 82d17b5fcb4471ae884a548fa815a653cb00e000 /src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java | |
parent | 6f588444a953a54543661f7603d45a9093b7196a (diff) |
avatar handling refactored
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java')
-rw-r--r-- | src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java b/src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java index 52e23bce..74e29393 100644 --- a/src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java +++ b/src/main/java/de/thedevstack/conversationsplus/parser/PresenceParser.java @@ -7,6 +7,7 @@ import java.util.List; import de.thedevstack.android.logcat.Logging; import de.thedevstack.conversationsplus.persistance.DatabaseBackend; +import de.thedevstack.conversationsplus.services.avatar.AvatarCache; import de.thedevstack.conversationsplus.utils.AvatarUtil; import de.thedevstack.conversationsplus.utils.UiUpdateHelper; @@ -19,11 +20,12 @@ import de.thedevstack.conversationsplus.entities.Message; import de.thedevstack.conversationsplus.entities.MucOptions; import de.thedevstack.conversationsplus.entities.Presence; import de.thedevstack.conversationsplus.generator.PresenceGenerator; -import de.thedevstack.conversationsplus.services.AvatarService; +import de.thedevstack.conversationsplus.services.avatar.AvatarService; import de.thedevstack.conversationsplus.services.XmppConnectionService; import de.thedevstack.conversationsplus.utils.XmppSendUtil; import de.thedevstack.conversationsplus.xml.Element; import de.thedevstack.conversationsplus.xmpp.OnPresencePacketReceived; +import de.thedevstack.conversationsplus.xmpp.avatar.AvatarVcardParser; import de.thedevstack.conversationsplus.xmpp.jid.Jid; import de.thedevstack.conversationsplus.xmpp.pep.Avatar; import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket; @@ -46,7 +48,7 @@ public class PresenceParser extends AbstractParser implements final List<MucOptions.User> tileUserAfter = mucOptions.getUsers(5); if (!tileUserAfter.equals(tileUserBefore)) { Logging.d(Config.LOGTAG, account.getJid().toBareJid() + ": update tiles for " + conversation.getName()); - AvatarService.getInstance().clear(conversation); + AvatarCache.clear(conversation); } if (before != mucOptions.online() || (mucOptions.online() && count != mucOptions.getUserCount())) { UiUpdateHelper.updateConversationUi(); @@ -61,7 +63,7 @@ public class PresenceParser extends AbstractParser implements if (!from.isBareJid()) { final String type = packet.getAttribute("type"); final Element x = packet.findChild("x", "http://jabber.org/protocol/muc#user"); - Avatar avatar = Avatar.parsePresence(packet.findChild("x", "vcard-temp:x:update")); + Avatar avatar = AvatarVcardParser.parseVcardPresenceInformation(packet); final List<String> codes = getStatusCodes(x); if (type == null) { if (x != null) { @@ -103,7 +105,7 @@ public class PresenceParser extends AbstractParser implements avatar.owner = from; if (AvatarUtil.isAvatarCached(avatar)) { if (user.setAvatar(avatar)) { - AvatarService.getInstance().clear(user); + AvatarCache.clear(user); } } else { AvatarService.getInstance().fetchAvatar(mucOptions.getAccount(), avatar); @@ -133,7 +135,7 @@ public class PresenceParser extends AbstractParser implements } else if (!from.isBareJid()){ MucOptions.User user = mucOptions.deleteUser(from.getResourcepart()); if (user != null) { - AvatarService.getInstance().clear(user); + AvatarCache.clear(user); } } } else if (type.equals("error")) { @@ -182,17 +184,17 @@ public class PresenceParser extends AbstractParser implements if (type == null) { final String resource = from.isBareJid() ? "" : from.getResourcepart(); contact.setPresenceName(packet.findChildContent("nick", "http://jabber.org/protocol/nick")); - Avatar avatar = Avatar.parsePresence(packet.findChild("x", "vcard-temp:x:update")); + Avatar avatar = AvatarVcardParser.parseVcardPresenceInformation(packet); if (avatar != null && (!contact.isSelf() || null == account.getAvatar())) { avatar.owner = from.toBareJid(); if (AvatarUtil.isAvatarCached(avatar)) { if (avatar.owner.equals(account.getJid().toBareJid())) { account.setAvatar(avatar.getFilename()); DatabaseBackend.getInstance().updateAccount(account); - AvatarService.getInstance().clear(account); + AvatarCache.clear(account); UiUpdateHelper.updateAccountUi(); } else if (contact.setAvatar(avatar)) { - AvatarService.getInstance().clear(contact); + AvatarCache.clear(contact); UiUpdateHelper.updateRosterUi(); } UiUpdateHelper.updateConversationUi(); |