diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2016-09-09 11:04:05 +0200 |
---|---|---|
committer | Christian Schneppe <christian@pix-art.de> | 2016-09-09 22:30:45 +0200 |
commit | 49f53c12c2b57d4f7cc765fd552a887668713a97 (patch) | |
tree | cc4e8ea0535d736fd5cd6b86ecc2278daac9f3b9 /src/main/java/de/pixart/messenger/services/XmppConnectionService.java | |
parent | 95d6e3f1dce82ce1bb17f58755cfdc62d6238835 (diff) |
download own vcard avatar if none is set. fixes #2008
Diffstat (limited to 'src/main/java/de/pixart/messenger/services/XmppConnectionService.java')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/XmppConnectionService.java | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index 38cb67b2a..6be77bf9a 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -2117,7 +2117,7 @@ public class XmppConnectionService extends Service { @Override public void onFetchFailed(final Conversation conversation, Element error) { if (error != null && "remote-server-not-found".equals(error.getName())) { - conversation.getMucOptions().setError(MucOptions.Error.SEVRER_NOT_FOUND); + conversation.getMucOptions().setError(MucOptions.Error.SERVER_NOT_FOUND); } else { join(conversation); fetchConferenceConfiguration(conversation); @@ -2820,12 +2820,19 @@ public class XmppConnectionService extends Service { Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": successfully fetched vCard avatar for " + avatar.owner); if (avatar.owner.isBareJid()) { - Contact contact = account.getRoster() - .getContact(avatar.owner); - contact.setAvatar(avatar); - getAvatarService().clear(contact); + if (account.getJid().toBareJid().equals(avatar.owner) && account.getAvatar() == null) { + Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": had no avatar. replacing with vcard"); + account.setAvatar(avatar.getFilename()); + databaseBackend.updateAccount(account); + getAvatarService().clear(account); + updateAccountUi(); + } else { + Contact contact = account.getRoster().getContact(avatar.owner); + contact.setAvatar(avatar); + getAvatarService().clear(contact); + updateRosterUi(); + } updateConversationUi(); - updateRosterUi(); } else { Conversation conversation = find(account, avatar.owner.toBareJid()); if (conversation != null && conversation.getMode() == Conversation.MODE_MULTI) { |