From ba63727f50c192e63e171bedca92d7003981800c Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Tue, 5 Aug 2014 22:58:46 +0200 Subject: fetch missing avatars from server --- src/eu/siacs/conversations/parser/MessageParser.java | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/eu/siacs/conversations/parser/MessageParser.java') diff --git a/src/eu/siacs/conversations/parser/MessageParser.java b/src/eu/siacs/conversations/parser/MessageParser.java index 0a812669..b54f6b98 100644 --- a/src/eu/siacs/conversations/parser/MessageParser.java +++ b/src/eu/siacs/conversations/parser/MessageParser.java @@ -5,12 +5,14 @@ import android.util.Log; import net.java.otr4j.session.Session; import net.java.otr4j.session.SessionStatus; import eu.siacs.conversations.entities.Account; +import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.Conversation; import eu.siacs.conversations.entities.Message; import eu.siacs.conversations.services.XmppConnectionService; import eu.siacs.conversations.utils.CryptoHelper; import eu.siacs.conversations.xml.Element; import eu.siacs.conversations.xmpp.OnMessagePacketReceived; +import eu.siacs.conversations.xmpp.pep.Avatar; import eu.siacs.conversations.xmpp.stanzas.MessagePacket; public class MessageParser extends AbstractParser implements @@ -263,7 +265,22 @@ public class MessageParser extends AbstractParser implements Element items = event.findChild("items"); String node = items.getAttribute("node"); if (node!=null) { - Log.d("xmppService",account.getJid()+": "+node+" from "+from); + if (node.equals("urn:xmpp:avatar:metadata")) { + Avatar avatar = Avatar.parseMetadata(items); + avatar.owner = from; + if (mXmppConnectionService.getFileBackend().isAvatarCached(avatar)) { + if (account.getJid().equals(from)) { + account.setAvatar(avatar.getFilename()); + } else { + Contact contact = account.getRoster().getContact(from); + contact.setAvatar(avatar.getFilename()); + } + } else { + mXmppConnectionService.fetchAvatar(account, avatar); + } + } else { + Log.d("xmppService",account.getJid()+": "+node+" from "+from); + } } else { Log.d("xmppService",event.toString()); } -- cgit v1.2.3