aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/thedevstack/conversationsplus/xmpp/avatar/AvatarVcardParser.java
blob: 32ad6f26dc2590d1805a0a9e52b61f53ddde9e40 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
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;
    }
}