src/com/beem/project/beem/smack/avatar/AvatarExtension.java
author Nikita Kozlov <nikita@elyzion.net>
Sat, 05 Nov 2011 23:49:30 +0100
changeset 934 6b30719f4de6
parent 929 a4bbcfbd0a91
permissions -rw-r--r--
merge otr repo with trunk
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
803
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     1
/*
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     2
    BEEM is a videoconference application on the Android Platform.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     3
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     4
    Copyright (C) 2009 by Frederic-Charles Barthelery,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     5
                          Jean-Manuel Da Silva,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     6
                          Nikita Kozlov,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     7
                          Philippe Lago,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     8
                          Jean Baptiste Vergely,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
     9
                          Vincent Veronis.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    10
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    11
    This file is part of BEEM.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    12
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    13
    BEEM is free software: you can redistribute it and/or modify
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    14
    it under the terms of the GNU General Public License as published by
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    15
    the Free Software Foundation, either version 3 of the License, or
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    16
    (at your option) any later version.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    17
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    18
    BEEM is distributed in the hope that it will be useful,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    19
    but WITHOUT ANY WARRANTY; without even the implied warranty of
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    20
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    21
    GNU General Public License for more details.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    22
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    23
    You should have received a copy of the GNU General Public License
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    24
    along with BEEM.  If not, see <http://www.gnu.org/licenses/>.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    25
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    26
    Please send bug reports with examples or suggestions to
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    27
    contact@beem-project.com or http://dev.beem-project.com/
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    28
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    29
    Epitech, hereby disclaims all copyright interest in the program "Beem"
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    30
    written by Frederic-Charles Barthelery,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    31
               Jean-Manuel Da Silva,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    32
               Nikita Kozlov,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    33
               Philippe Lago,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    34
               Jean Baptiste Vergely,
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    35
               Vincent Veronis.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    36
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    37
    Nicolas Sadirac, November 26, 2009
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    38
    President of Epitech.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    39
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    40
    Flavien Astraud, November 26, 2009
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    41
    Head of the EIP Laboratory.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    42
934
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 929
diff changeset
    43
*/
803
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    44
package com.beem.project.beem.smack.avatar;
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    45
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    46
import org.jivesoftware.smack.util.Base64;
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    47
import org.jivesoftware.smack.packet.PacketExtension;
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    48
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    49
/**
934
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 929
diff changeset
    50
 * PacketExtension to represent the Avatar data.
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 929
diff changeset
    51
 * XML namespace urn:xmpp:avatar:data
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 929
diff changeset
    52
 *
803
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    53
 */
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    54
public class AvatarExtension implements PacketExtension {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    55
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    56
    private String mData;
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    57
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    58
    /**
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    59
     * Create an AvatarExtension.
807
e4b9ec9f30e6 javadoc and checstyle
Da Risk <darisk972@gmail.com>
parents: 803
diff changeset
    60
     * @param base64 the data of the avatar as a base64 string
803
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    61
     */
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    62
    public AvatarExtension(final String base64) {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    63
	mData = base64;
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    64
    }
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    65
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    66
    /**
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    67
     * Create an AvatarExtension.
807
e4b9ec9f30e6 javadoc and checstyle
Da Risk <darisk972@gmail.com>
parents: 803
diff changeset
    68
     * @param data the data of the avatar
803
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    69
     */
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    70
    public AvatarExtension(final byte[] data) {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    71
	mData = Base64.encodeBytes(data);
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    72
    }
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    73
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    74
    /**
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    75
     * Get the avatar data as a Base64 string.
934
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 929
diff changeset
    76
     *
803
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    77
     * @return a base64 string.
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    78
     */
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    79
    public String getBase64() {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    80
	return mData;
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    81
    }
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    82
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    83
    /**
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    84
     * Get the avatar data.
934
6b30719f4de6 merge otr repo with trunk
Nikita Kozlov <nikita@elyzion.net>
parents: 929
diff changeset
    85
     *
803
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    86
     * @return the decoded data
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    87
     */
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    88
    public byte[] getData() {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    89
	return Base64.decode(mData);
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    90
    }
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    91
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    92
    @Override
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    93
    public String getElementName() {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    94
	return "data";
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    95
    }
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    96
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    97
    @Override
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    98
    public String getNamespace() {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
    99
	return "urn:xmpp:avatar:data";
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   100
    }
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   101
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   102
    @Override
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   103
    public String toXML() {
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   104
	StringBuilder builder = new StringBuilder("<data xmlns=\"");
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   105
	builder.append(getNamespace()).append("\">");
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   106
	builder.append(mData);
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   107
	builder.append("</data>");
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   108
	return builder.toString();
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   109
    }
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   110
8a3a48e85b63 add an Xmpp Avatar Retriever and a HttpClient avatar retriever.
Da Risk <darisk972@gmail.com>
parents:
diff changeset
   111
}