diff options
author | iNPUTmice <daniel@gultsch.de> | 2014-08-05 22:58:46 +0200 |
---|---|---|
committer | iNPUTmice <daniel@gultsch.de> | 2014-08-05 22:58:46 +0200 |
commit | ba63727f50c192e63e171bedca92d7003981800c (patch) | |
tree | 6b4956817a46266ec3de683bc6d7a4e46681a656 /src/eu/siacs/conversations/xmpp/pep/Avatar.java | |
parent | 08755e56a5bf861c97eefd545f629ac67a804275 (diff) |
fetch missing avatars from server
Diffstat (limited to '')
-rw-r--r-- | src/eu/siacs/conversations/xmpp/pep/Avatar.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/eu/siacs/conversations/xmpp/pep/Avatar.java b/src/eu/siacs/conversations/xmpp/pep/Avatar.java index b000c055..b99a2fe3 100644 --- a/src/eu/siacs/conversations/xmpp/pep/Avatar.java +++ b/src/eu/siacs/conversations/xmpp/pep/Avatar.java @@ -1,5 +1,6 @@ package eu.siacs.conversations.xmpp.pep; +import eu.siacs.conversations.xml.Element; import android.util.Base64; public class Avatar { @@ -9,6 +10,7 @@ public class Avatar { public int height; public int width; public long size; + public String owner; public byte[] getImageAsBytes() { return Base64.decode(image, Base64.DEFAULT); } @@ -23,4 +25,43 @@ public class Avatar { return sha1sum; } } + public static Avatar parseMetadata(Element items) { + Element item = items.findChild("item"); + if (item==null) { + return null; + } + Element metadata = item.findChild("metadata"); + if (metadata==null) { + return null; + } + String primaryId = item.getAttribute("id"); + if (primaryId==null) { + return null; + } + for(Element child : metadata.getChildren()) { + if (child.getName().equals("info") && primaryId.equals(child.getAttribute("id"))) { + Avatar avatar = new Avatar(); + String height = child.getAttribute("height"); + String width = child.getAttribute("width"); + String size = child.getAttribute("bytes"); + try { + if (height!=null) { + avatar.height = Integer.parseInt(height); + } + if (width!=null) { + avatar.width = Integer.parseInt(width); + } + if (size!=null) { + avatar.size = Long.parseLong(size); + } + } catch (NumberFormatException e) { + return null; + } + avatar.type = child.getAttribute("type"); + avatar.sha1sum = child.getAttribute("id"); + return avatar; + } + } + return null; + } } |