Avatar.java

 1package eu.siacs.conversations.xmpp.pep;
 2
 3import android.util.Base64;
 4import androidx.annotation.NonNull;
 5import com.google.common.base.MoreObjects;
 6import eu.siacs.conversations.xmpp.Jid;
 7import okhttp3.HttpUrl;
 8
 9public class Avatar {
10
11    @Override
12    @NonNull
13    public String toString() {
14        return MoreObjects.toStringHelper(this)
15                .add("type", type)
16                .add("sha1sum", sha1sum)
17                .add("url", url)
18                .add("image", image)
19                .add("height", height)
20                .add("width", width)
21                .add("size", size)
22                .add("owner", owner)
23                .add("origin", origin)
24                .toString();
25    }
26
27    public enum Origin {
28        PEP,
29        VCARD
30    }
31
32    public String type;
33    public String sha1sum;
34    public HttpUrl url;
35    public String image;
36    public int height;
37    public int width;
38    public long size;
39    public Jid owner;
40    public Origin origin = Origin.PEP; // default to maintain compat
41
42    public byte[] getImageAsBytes() {
43        return Base64.decode(image, Base64.DEFAULT);
44    }
45
46    public String getFilename() {
47        return sha1sum;
48    }
49
50    @Override
51    public boolean equals(Object object) {
52        if (object != null && object instanceof Avatar other) {
53            return other.getFilename().equals(this.getFilename());
54        } else {
55            return false;
56        }
57    }
58}