1 20 21 package org.jivesoftware.smackx.provider; 22 23 import org.jivesoftware.smack.packet.PacketExtension; 24 import org.jivesoftware.smack.provider.PacketExtensionProvider; 25 import org.jivesoftware.smackx.packet.MessageEvent; 26 import org.xmlpull.v1.XmlPullParser; 27 28 34 public class MessageEventProvider implements PacketExtensionProvider { 35 36 40 public MessageEventProvider() { 41 } 42 43 50 public PacketExtension parseExtension(XmlPullParser parser) 51 throws Exception { 52 MessageEvent messageEvent = new MessageEvent(); 53 boolean done = false; 54 while (!done) { 55 int eventType = parser.next(); 56 if (eventType == XmlPullParser.START_TAG) { 57 if (parser.getName().equals("id")) 58 messageEvent.setPacketID(parser.nextText()); 59 if (parser.getName().equals(MessageEvent.COMPOSING)) 60 messageEvent.setComposing(true); 61 if (parser.getName().equals(MessageEvent.DELIVERED)) 62 messageEvent.setDelivered(true); 63 if (parser.getName().equals(MessageEvent.DISPLAYED)) 64 messageEvent.setDisplayed(true); 65 if (parser.getName().equals(MessageEvent.OFFLINE)) 66 messageEvent.setOffline(true); 67 } else if (eventType == XmlPullParser.END_TAG) { 68 if (parser.getName().equals("x")) { 69 done = true; 70 } 71 } 72 } 73 74 return messageEvent; 75 } 76 77 } 78 | Popular Tags |