Skip to main content
aboutsummaryrefslogtreecommitdiffstats
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;
	}

}

Back to the top