From 2ab14a6ff2ad97f7b8dba94844219cdc83c09640 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Fri, 15 Aug 2014 13:11:33 +0200 Subject: [PATCH] fixed #356 --- .../conversations/parser/MessageParser.java | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/eu/siacs/conversations/parser/MessageParser.java b/src/eu/siacs/conversations/parser/MessageParser.java index f1b326ac0..7de7e9e13 100644 --- a/src/eu/siacs/conversations/parser/MessageParser.java +++ b/src/eu/siacs/conversations/parser/MessageParser.java @@ -189,7 +189,7 @@ public class MessageParser extends AbstractParser implements } Element message = forwarded.findChild("message"); if ((message == null) || (!message.hasChild("body"))) { - if (status == Message.STATUS_RECIEVED) { + if (status == Message.STATUS_RECIEVED && message.getAttribute("from")!=null) { parseNormal(message, account); } return null; @@ -296,17 +296,19 @@ public class MessageParser extends AbstractParser implements if (node != null) { 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()); + if (avatar!=null) { + 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 { - Contact contact = account.getRoster().getContact(from); - contact.setAvatar(avatar.getFilename()); + mXmppConnectionService.fetchAvatar(account, avatar); } - } else { - mXmppConnectionService.fetchAvatar(account, avatar); } } else { Log.d("xmppService", account.getJid() + ": " + node + " from "