From be1992ce897d3b0551e545646a3e0f45cc6dd8c2 Mon Sep 17 00:00:00 2001 From: steckbrief Date: Sun, 6 Aug 2017 14:28:00 +0200 Subject: Implements XEP-0202 Entity Time, moves Software Version to xmpp package, moves namespace definitions for mam, carbons and avatar to xmpp package --- .../conversationsplus/xmpp/time/TimePacket.java | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/de/thedevstack/conversationsplus/xmpp/time/TimePacket.java (limited to 'src/main/java/de/thedevstack/conversationsplus/xmpp/time/TimePacket.java') diff --git a/src/main/java/de/thedevstack/conversationsplus/xmpp/time/TimePacket.java b/src/main/java/de/thedevstack/conversationsplus/xmpp/time/TimePacket.java new file mode 100644 index 00000000..d8756d41 --- /dev/null +++ b/src/main/java/de/thedevstack/conversationsplus/xmpp/time/TimePacket.java @@ -0,0 +1,35 @@ +package de.thedevstack.conversationsplus.xmpp.time; + +import java.util.Locale; +import java.util.TimeZone; + +import de.thedevstack.conversationsplus.generator.AbstractGenerator; +import de.thedevstack.conversationsplus.xml.Element; +import de.thedevstack.conversationsplus.xmpp.stanzas.IqPacket; + +/** + * Representation of an software version packet as defined in XEP-0202. + * @see http://xmpp.org/extensions/xep-0202.html + */ +public class TimePacket extends IqPacket { + public static final String NAMESPACE = "urn:xmpp:time"; + + TimePacket() { + super(IqPacket.TYPE.RESULT); + Element time = this.addChild("time", NAMESPACE); + final long now = System.currentTimeMillis(); + time.addChild("utc").setContent(AbstractGenerator.getTimestamp(now)); + TimeZone ourTimezone = TimeZone.getDefault(); + long offsetSeconds = ourTimezone.getOffset(now) / 1000; + long offsetMinutes = Math.abs((offsetSeconds % 3600) / 60); + long offsetHours = offsetSeconds / 3600; + String hours; + if (offsetHours < 0) { + hours = String.format(Locale.US, "%03d", offsetHours); + } else { + hours = String.format(Locale.US, "%02d", offsetHours); + } + String minutes = String.format(Locale.US, "%02d", offsetMinutes); + time.addChild("tzo").setContent(hours + ":" + minutes); + } +} -- cgit v1.2.3