blob: 28811434d5b4b1083a06ca9ee95ac114492d02a3 (
plain) (
blame)
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
package org.jivesoftware.smackx.provider;
import org.jivesoftware.smack.packet.PacketExtension;
import org.jivesoftware.smack.provider.PacketExtensionProvider;
import org.jivesoftware.smackx.packet.VCardTempXUpdateExtension;
import org.jivesoftware.smackx.packet.XHTMLExtension;
import org.xmlpull.v1.XmlPullParser;
/**
* vCard provider.
*
* @author Scott Lewis
*/
public class VCardTempXUpdateProvider implements PacketExtensionProvider {
/*
* (non-Javadoc)
*
* @see org.jivesoftware.smack.provider.PacketExtensionProvider#parseExtension(org.xmlpull.v1.XmlPullParser)
*/
public PacketExtension parseExtension(XmlPullParser parser)
throws Exception {
VCardTempXUpdateExtension photoExtension = new VCardTempXUpdateExtension();
boolean done = false;
StringBuffer buffer = new StringBuffer();;
while (!done) {
int eventType = parser.next();
if (eventType == XmlPullParser.START_TAG) {
if (parser.getName().equals("photo"))
buffer = new StringBuffer();
} else if (eventType == XmlPullParser.TEXT) {
if (buffer != null) buffer.append(parser.getText());
} else if (eventType == XmlPullParser.END_TAG) {
if (parser.getName().equals("photo")) {
photoExtension.setPhotoData(buffer.toString());
}
else if (parser.getName().equals(photoExtension.getElementName())) {
done = true;
}
}
}
return photoExtension;
}
}
|