aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/eu
diff options
context:
space:
mode:
authorDaniel Gultsch <daniel@gultsch.de>2016-06-02 00:24:37 +0200
committerDaniel Gultsch <daniel@gultsch.de>2016-06-02 00:24:37 +0200
commit25211f13b37ecef64d6fa9a382a2c30d212452ae (patch)
tree28c00ef806b77afa4ee8d7a519d4e9968e2b2fb5 /src/main/java/eu
parente43a01159cc511e674ccdfccc3f7fa5f118d4a83 (diff)
make grace period configurable
Diffstat (limited to 'src/main/java/eu')
-rw-r--r--src/main/java/eu/siacs/conversations/Config.java1
-rw-r--r--src/main/java/eu/siacs/conversations/entities/Account.java5
-rw-r--r--src/main/java/eu/siacs/conversations/parser/MessageParser.java14
3 files changed, 14 insertions, 6 deletions
diff --git a/src/main/java/eu/siacs/conversations/Config.java b/src/main/java/eu/siacs/conversations/Config.java
index 48a08a4f..ee2f3f19 100644
--- a/src/main/java/eu/siacs/conversations/Config.java
+++ b/src/main/java/eu/siacs/conversations/Config.java
@@ -58,7 +58,6 @@ public final class Config {
public static final int SOCKET_TIMEOUT = 15;
public static final int CONNECT_TIMEOUT = 90;
public static final int CONNECT_DISCO_TIMEOUT = 20;
- public static final int CARBON_GRACE_PERIOD = 90;
public static final int MINI_GRACE_PERIOD = 750;
public static final boolean CLOSE_TCP_WHEN_SWITCHING_TO_BACKGROUND = false;
diff --git a/src/main/java/eu/siacs/conversations/entities/Account.java b/src/main/java/eu/siacs/conversations/entities/Account.java
index 2f573c89..3e79fccd 100644
--- a/src/main/java/eu/siacs/conversations/entities/Account.java
+++ b/src/main/java/eu/siacs/conversations/entities/Account.java
@@ -542,9 +542,8 @@ public class Account extends AbstractEntity {
return this.avatar;
}
- public void activateGracePeriod() {
- this.mEndGracePeriod = SystemClock.elapsedRealtime()
- + (Config.CARBON_GRACE_PERIOD * 1000);
+ public void activateGracePeriod(long duration) {
+ this.mEndGracePeriod = SystemClock.elapsedRealtime() + duration;
}
public void deactivateGracePeriod() {
diff --git a/src/main/java/eu/siacs/conversations/parser/MessageParser.java b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
index 79be0bb5..48862c47 100644
--- a/src/main/java/eu/siacs/conversations/parser/MessageParser.java
+++ b/src/main/java/eu/siacs/conversations/parser/MessageParser.java
@@ -7,8 +7,10 @@ import android.util.Pair;
import net.java.otr4j.session.Session;
import net.java.otr4j.session.SessionStatus;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.Date;
import java.util.List;
import java.util.Locale;
import java.util.Set;
@@ -54,7 +56,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
conversation.setOutgoingChatState(state);
if (state == ChatState.ACTIVE || state == ChatState.COMPOSING) {
mXmppConnectionService.markRead(conversation);
- account.activateGracePeriod();
+ activateGracePeriod(account);
}
return false;
} else {
@@ -498,7 +500,7 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
if (status == Message.STATUS_SEND || status == Message.STATUS_SEND_RECEIVED) {
mXmppConnectionService.markRead(conversation);
if (query == null) {
- account.activateGracePeriod();
+ activateGracePeriod(account);
}
} else {
message.markUnread();
@@ -639,4 +641,12 @@ public class MessageParser extends AbstractParser implements OnMessagePacketRece
mXmppConnectionService.sendMessagePacket(account, receipt);
}
}
+
+ private static SimpleDateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm:ss");
+
+ private void activateGracePeriod(Account account) {
+ long duration = mXmppConnectionService.getPreferences().getLong("race_period_length", 144) * 1000;
+ Log.d(Config.LOGTAG,account.getJid().toBareJid()+": activating grace period till "+TIME_FORMAT.format(new Date(System.currentTimeMillis() + duration)));
+ account.activateGracePeriod(duration);
+ }
}