diff options
Diffstat (limited to 'src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java')
-rw-r--r-- | src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java | 102 |
1 files changed, 0 insertions, 102 deletions
diff --git a/src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java b/src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java deleted file mode 100644 index 87238f9e..00000000 --- a/src/main/java/de/thedevstack/conversationsplus/parser/AbstractParser.java +++ /dev/null @@ -1,102 +0,0 @@ -package de.thedevstack.conversationsplus.parser; - -import java.text.ParseException; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Locale; - -import javax.xml.datatype.DatatypeConfigurationException; -import javax.xml.datatype.DatatypeFactory; - -import de.thedevstack.conversationsplus.entities.Account; -import de.thedevstack.conversationsplus.entities.Contact; -import de.thedevstack.conversationsplus.services.XmppConnectionService; -import de.thedevstack.conversationsplus.xml.Element; -import de.thedevstack.conversationsplus.xmpp.jid.Jid; -import de.thedevstack.conversationsplus.xmpp.stanzas.MessagePacket; - -public abstract class AbstractParser { - - protected XmppConnectionService mXmppConnectionService; - - protected AbstractParser(XmppConnectionService service) { - this.mXmppConnectionService = service; - } - - /** - * Gets the timestamp from the 'delay' element. - * Refer to XEP-0203: Delayed Delivery for details. @link{http://xmpp.org/extensions/xep-0203.html} - * @param packet the element to find the child element 'delay' in. - * @return the time in milli seconds of the attribute 'stamp' of the - * element 'delay'. In case there is no 'delay' element or no 'stamp' - * attribute or the current time is less than the value of the 'stamp' - * attribute the current time is returned. - */ - public static Long getTimestamp(Element element, Long defaultValue) { - Element delay = element.findChild("delay","urn:xmpp:delay"); - if (delay != null) { - String stamp = delay.getAttribute("stamp"); - if (stamp != null) { - try { - return AbstractParser.parseTimestamp(delay.getAttribute("stamp")).getTime(); - } catch (ParseException e) { - return defaultValue; - } - } - } - return defaultValue; - } - - protected long getTimestamp(Element packet) { - return getTimestamp(packet,System.currentTimeMillis()); - } - - /** - * Parses the timestamp according to XEP-0082: XMPP Date and Time Profiles. - * @link{http://xmpp.org/extensions/xep-0082.html} - * - * @param timestamp the timestamp to parse - * @return Date - * @throws ParseException - */ - public static Date parseTimestamp(String timestamp) throws ParseException { - /*try { - Log.d("TIMESTAMP", timestamp); - return DatatypeFactory.newInstance().newXMLGregorianCalendar(timestamp).toGregorianCalendar().getTime(); - } catch (DatatypeConfigurationException e) { - Log.d("TIMESTAMP", e.getMessage()); - return new Date(); - }*/ - timestamp = timestamp.replace("Z", "+0000"); - SimpleDateFormat dateFormat; - timestamp = timestamp.substring(0,19)+timestamp.substring(timestamp.length() -5,timestamp.length()); - dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ",Locale.US); - return dateFormat.parse(timestamp); - } - - protected void updateLastseen(final Element packet, final Account account, - final boolean presenceOverwrite) { - final Jid from = packet.getAttributeAsJid("from"); - updateLastseen(packet, account, from, presenceOverwrite); - } - - protected void updateLastseen(final Element packet, final Account account, final Jid from, final boolean presenceOverwrite) { - final String presence = from == null || from.isBareJid() ? "" : from.getResourcepart(); - final Contact contact = account.getRoster().getContact(from); - final long timestamp = getTimestamp(packet); - if (timestamp >= contact.lastseen.time) { - contact.lastseen.time = timestamp; - if (!presence.isEmpty() && presenceOverwrite) { - contact.lastseen.presence = presence; - } - } - } - - protected String avatarData(Element items) { - Element item = items.findChild("item"); - if (item == null) { - return null; - } - return item.findChildContent("data", "urn:xmpp:avatar:data"); - } -} |