aboutsummaryrefslogtreecommitdiffstats
path: root/src/eu/siacs/conversations/services
diff options
context:
space:
mode:
authoriNPUTmice <daniel@gultsch.de>2014-08-06 18:36:33 +0200
committeriNPUTmice <daniel@gultsch.de>2014-08-06 18:36:33 +0200
commit2b4d9e8b60bdec97cbeedf070188efd6380e2332 (patch)
treeee65a70764696acb0eb906d2427dd203122b4a9b /src/eu/siacs/conversations/services
parentba63727f50c192e63e171bedca92d7003981800c (diff)
fixed problems with sha sum calculation on avatar write. delete avatars with non matching sha sum
Diffstat (limited to 'src/eu/siacs/conversations/services')
-rw-r--r--src/eu/siacs/conversations/services/XmppConnectionService.java17
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());
+ }
+ }
}
}
});