Fixes FS#29: Own Avatar not loaded
This commit is contained in:
parent
34fcdda53f
commit
9ec29bb1dc
1 changed files with 9 additions and 3 deletions
|
@ -6,6 +6,7 @@ import java.util.ArrayList;
|
|||
import java.util.List;
|
||||
|
||||
import de.thedevstack.android.logcat.Logging;
|
||||
import de.thedevstack.conversationsplus.persistance.DatabaseBackend;
|
||||
import de.thedevstack.conversationsplus.utils.AvatarUtil;
|
||||
import de.thedevstack.conversationsplus.utils.UiUpdateHelper;
|
||||
|
||||
|
@ -182,14 +183,19 @@ public class PresenceParser extends AbstractParser implements
|
|||
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"));
|
||||
if (avatar != null && !contact.isSelf()) {
|
||||
if (avatar != null && (!contact.isSelf() || null == account.getAvatar())) {
|
||||
avatar.owner = from.toBareJid();
|
||||
if (AvatarUtil.isAvatarCached(avatar)) {
|
||||
if (contact.setAvatar(avatar)) {
|
||||
if (avatar.owner.equals(account.getJid().toBareJid())) {
|
||||
account.setAvatar(avatar.getFilename());
|
||||
DatabaseBackend.getInstance().updateAccount(account);
|
||||
AvatarService.getInstance().clear(account);
|
||||
UiUpdateHelper.updateAccountUi();
|
||||
} else if (contact.setAvatar(avatar)) {
|
||||
AvatarService.getInstance().clear(contact);
|
||||
UiUpdateHelper.updateConversationUi();
|
||||
UiUpdateHelper.updateRosterUi();
|
||||
}
|
||||
UiUpdateHelper.updateConversationUi();
|
||||
} else {
|
||||
AvatarService.getInstance().fetchAvatar(account, avatar);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue