aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2015-12-31 18:06:11 +0100
committerDaniel Gultsch <daniel@gultsch.de>2015-12-31 18:06:11 +0100
commit73e2389eeec92f57da2b50ce4a40395e4cbe0803 (patch)
treecd9035c44b8f95381ca65e371af5c7e709813af0 /src/main/java/eu/siacs/conversations/parser/AbstractParser.java
parent58d213f291062aaa81e13e55b7661e11eb3e0612 (diff)
use actual message timestamp instead of delay when updating last seen. fixes #1618
Diffstat (limited to 'src/main/java/eu/siacs/conversations/parser/AbstractParser.java')
-rw-r--r--src/main/java/eu/siacs/conversations/parser/AbstractParser.java8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/main/java/eu/siacs/conversations/parser/AbstractParser.java b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
index 18331796..7d399073 100644
--- a/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/AbstractParser.java
@@ -11,6 +11,7 @@ import eu.siacs.conversations.entities.Contact;
import eu.siacs.conversations.services.XmppConnectionService;
import eu.siacs.conversations.xml.Element;
import eu.siacs.conversations.xmpp.jid.Jid;
+import eu.siacs.conversations.xmpp.stanzas.AbstractStanza;
public abstract class AbstractParser {
@@ -47,14 +48,13 @@ public abstract class AbstractParser {
return dateFormat.parse(timestamp);
}
- protected void updateLastseen(final Element packet, final Account account, final boolean presenceOverwrite) {
- updateLastseen(packet, account, packet.getAttributeAsJid("from"), presenceOverwrite);
+ protected void updateLastseen(final AbstractStanza packet, final Account account, final boolean presenceOverwrite) {
+ updateLastseen(getTimestamp(packet), account, packet.getFrom(), presenceOverwrite);
}
- protected void updateLastseen(final Element packet, final Account account, final Jid from, final boolean presenceOverwrite) {
+ protected void updateLastseen(long timestamp, 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) {