diff options
author | Daniel Gultsch <daniel@gultsch.de> | 2016-06-02 00:24:37 +0200 |
---|---|---|
committer | Daniel Gultsch <daniel@gultsch.de> | 2016-06-02 00:24:37 +0200 |
commit | 25211f13b37ecef64d6fa9a382a2c30d212452ae (patch) | |
tree | 28c00ef806b77afa4ee8d7a519d4e9968e2b2fb5 /src/main | |
parent | e43a01159cc511e674ccdfccc3f7fa5f118d4a83 (diff) |
make grace period configurable
Diffstat (limited to '')
-rw-r--r-- | src/main/java/eu/siacs/conversations/Config.java | 1 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/entities/Account.java | 5 | ||||
-rw-r--r-- | src/main/java/eu/siacs/conversations/parser/MessageParser.java | 14 | ||||
-rw-r--r-- | src/main/res/values/arrays.xml | 12 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 7 | ||||
-rw-r--r-- | src/main/res/xml/preferences.xml | 45 |
6 files changed, 58 insertions, 26 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); + } } diff --git a/src/main/res/values/arrays.xml b/src/main/res/values/arrays.xml index e887546a..48dbaabf 100644 --- a/src/main/res/values/arrays.xml +++ b/src/main/res/values/arrays.xml @@ -83,4 +83,16 @@ <item>@string/presence_xa</item> <item>@string/presence_dnd</item> </string-array> + + <string-array name="grace_periods"> + <item>@string/gp_short</item> + <item>@string/gp_medium</item> + <item>@string/gp_long</item> + </string-array> + + <string-array name="grace_periods_values"> + <item>144</item> + <item>610</item> + <item>2584</item> + </string-array> </resources> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 2decae45..51c658ab 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -117,8 +117,8 @@ <string name="pref_led_summary">Blink notification light when a new message arrives</string> <string name="pref_sound">Ringtone</string> <string name="pref_sound_summary">Play sound when a new message arrives</string> - <string name="pref_notification_grace_period">Notification grace period</string> - <string name="pref_notification_grace_period_summary">Disable notifications for a short time after a carbon copy was received</string> + <string name="pref_notification_grace_period">Grace Period</string> + <string name="pref_notification_grace_period_summary">The length of time Conversations keeps quite after seeing activity on another device</string> <string name="pref_advanced_options">Advanced</string> <string name="pref_never_send_crash">Never send crash reports</string> <string name="pref_never_send_crash_summary">By sending in stack traces you are helping the ongoing development of Conversations</string> @@ -649,4 +649,7 @@ <string name="choose_participants">Choose participants</string> <string name="creating_conference">Creating conferenceā¦</string> <string name="invite_again">Invite again</string> + <string name="gp_short">Short</string> + <string name="gp_medium">Medium</string> + <string name="gp_long">Long</string> </resources> diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index 80980417..fb0103ed 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -36,6 +36,25 @@ android:key="show_notification" android:summary="@string/pref_notifications_summary" android:title="@string/pref_notifications"/> + <CheckBoxPreference + android:defaultValue="true" + android:dependency="show_notification" + android:key="vibrate_on_notification" + android:summary="@string/pref_vibrate_summary" + android:title="@string/pref_vibrate"/> + <CheckBoxPreference + android:defaultValue="true" + android:dependency="show_notification" + android:key="led" + android:title="@string/pref_led" + android:summary="@string/pref_led_summary"/> + <RingtonePreference + android:defaultValue="content://settings/system/notification_sound" + android:dependency="show_notification" + android:key="notification_ringtone" + android:ringtoneType="notification" + android:summary="@string/pref_sound_summary" + android:title="@string/pref_sound"/> <PreferenceScreen android:dependency="show_notification" android:key="quiet_hours" @@ -59,25 +78,15 @@ android:positiveButtonText="@string/set" android:title="@string/title_pref_quiet_hours_end_time"/> </PreferenceScreen> - <CheckBoxPreference - android:defaultValue="true" - android:dependency="show_notification" - android:key="vibrate_on_notification" - android:summary="@string/pref_vibrate_summary" - android:title="@string/pref_vibrate"/> - <CheckBoxPreference - android:defaultValue="true" - android:dependency="show_notification" - android:key="led" - android:title="@string/pref_led" - android:summary="@string/pref_led_summary"/> - <RingtonePreference - android:defaultValue="content://settings/system/notification_sound" + <ListPreference android:dependency="show_notification" - android:key="notification_ringtone" - android:ringtoneType="notification" - android:summary="@string/pref_sound_summary" - android:title="@string/pref_sound"/> + android:key="grace_period_length" + android:title="@string/pref_notification_grace_period" + android:summary="@string/pref_notification_grace_period_summary" + android:defaultValue="144" + android:entries="@array/grace_periods" + android:entryValues="@array/grace_periods_values" + /> </PreferenceCategory> <PreferenceCategory android:title="@string/pref_attachments"> |