From 867afe4c5b888ce3f4f9a867906cc8edb86e7aba Mon Sep 17 00:00:00 2001 From: steckbrief Date: Sun, 6 Aug 2017 01:15:13 +0200 Subject: avatar handling refactored --- .../xmpp/avatar/AvatarVcardParser.java | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarVcardParser.java (limited to 'src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarVcardParser.java') diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarVcardParser.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarVcardParser.java new file mode 100644 index 00000000..32ad6f26 --- /dev/null +++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarVcardParser.java @@ -0,0 +1,29 @@ +package de.thedevstack.conversationsplus.xmpp.avatar; + +import de.thedevstack.conversationsplus.xml.Element; +import de.thedevstack.conversationsplus.xmpp.pep.Avatar; +import de.thedevstack.conversationsplus.xmpp.stanzas.PresencePacket; + +/** + */ +public final class AvatarVcardParser { + private AvatarVcardParser() {} + + public static Avatar parseVcardPresenceInformation(PresencePacket packet) { + return AvatarVcardParser.parsePresence(packet.findChild("x", "vcard-temp:x:update")); + } + + public static Avatar parsePresence(Element x) { + String hash = (x == null) ? null : x.findChildContent("photo"); + if (hash == null) { + return null; + } + if (!Avatar.isValidSHA1(hash)) { + return null; + } + Avatar avatar = new Avatar(); + avatar.sha1sum = hash; + avatar.origin = Avatar.Origin.VCARD; + return avatar; + } +} -- cgit v1.2.3