diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-08-06 18:36:33 +0200 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-08-06 18:36:33 +0200 |
commit | 2b4d9e8b60bdec97cbeedf070188efd6380e2332 (patch) | |
tree | ee65a70764696acb0eb906d2427dd203122b4a9b /src/eu/siacs/conversations/services/XmppConnectionService.java | |
parent | ba63727f50c192e63e171bedca92d7003981800c (diff) |
fixed problems with sha sum calculation on avatar write. delete avatars with non matching sha sum
Diffstat (limited to '')
-rw-r--r-- | src/eu/siacs/conversations/services/XmppConnectionService.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/eu/siacs/conversations/services/XmppConnectionService.java b/src/eu/siacs/conversations/services/XmppConnectionService.java index 71f2cfc2..d94f20da 100644 --- a/src/eu/siacs/conversations/services/XmppConnectionService.java +++ b/src/eu/siacs/conversations/services/XmppConnectionService.java @@ -1201,7 +1201,10 @@ public class XmppConnectionService extends Service { } else if (format.equals(Bitmap.CompressFormat.PNG)) { avatar.type = "image/png"; } - getFileBackend().save(avatar); + if (!getFileBackend().save(avatar)) { + callback.error(R.string.error_saving_avatar, avatar); + return; + } IqPacket packet = this.mIqGenerator.publishAvatar(avatar); this.sendIqPacket(account, packet, new OnIqPacketReceived() { @@ -1232,6 +1235,7 @@ public class XmppConnectionService extends Service { } public void fetchAvatar(Account account, final Avatar avatar) { + Log.d(LOGTAG,account.getJid()+": retrieving avatar for "+avatar.owner); IqPacket packet = this.mIqGenerator.retrieveAvatar(avatar); sendIqPacket(account, packet, new OnIqPacketReceived() { @@ -1239,9 +1243,14 @@ public class XmppConnectionService extends Service { public void onIqPacketReceived(Account account, IqPacket result) { avatar.image = mIqParser.avatarData(result); if (avatar.image!=null) { - getFileBackend().save(avatar); - Contact contact = account.getRoster().getContact(avatar.owner); - contact.setAvatar(avatar.getFilename()); + if (getFileBackend().save(avatar)) { + if (account.getJid().equals(avatar.owner)) { + account.setAvatar(avatar.getFilename()); + } else { + Contact contact = account.getRoster().getContact(avatar.owner); + contact.setAvatar(avatar.getFilename()); + } + } } } }); |