diff options
Diffstat (limited to '')
-rw-r--r-- | src/main/java/de/pixart/messenger/services/NotificationService.java | 5 | ||||
-rw-r--r-- | src/main/java/de/pixart/messenger/services/XmppConnectionService.java | 9 | ||||
-rw-r--r-- | src/main/res/values/defaults.xml | 1 | ||||
-rw-r--r-- | src/main/res/values/strings.xml | 2 | ||||
-rw-r--r-- | src/main/res/xml/preferences.xml | 5 |
5 files changed, 18 insertions, 4 deletions
diff --git a/src/main/java/de/pixart/messenger/services/NotificationService.java b/src/main/java/de/pixart/messenger/services/NotificationService.java index 939c95299..4d8c39d22 100644 --- a/src/main/java/de/pixart/messenger/services/NotificationService.java +++ b/src/main/java/de/pixart/messenger/services/NotificationService.java @@ -316,11 +316,14 @@ public class NotificationService { private void pushNow(final Message message) { mXmppConnectionService.updateUnreadCountBadge(); + final boolean isScreenOn = mXmppConnectionService.isInteractive(); if (!notify(message)) { + if (this.mIsInForeground && isScreenOn && this.mOpenConversation == message.getConversation()) { + mXmppConnectionService.vibrate(); + } Log.d(Config.LOGTAG, message.getConversation().getAccount().getJid().asBareJid() + ": suppressing notification because turned off"); return; } - final boolean isScreenOn = mXmppConnectionService.isInteractive(); if (this.mIsInForeground && isScreenOn && this.mOpenConversation == message.getConversation()) { mXmppConnectionService.vibrate(); Log.d(Config.LOGTAG, message.getConversation().getAccount().getJid().asBareJid() + ": suppressing notification because conversation is open"); diff --git a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java index a0d298d47..bb7162bb3 100644 --- a/src/main/java/de/pixart/messenger/services/XmppConnectionService.java +++ b/src/main/java/de/pixart/messenger/services/XmppConnectionService.java @@ -4172,9 +4172,12 @@ public class XmppConnectionService extends Service { } public void vibrate() { - Log.d(Config.LOGTAG, "Notification: short vibrate"); - Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); - vibrator.vibrate(100); + final boolean vibrateInChat = getBooleanPreference("vibrate_in_chat", R.bool.vibrate_in_chat); + if (!isPhoneSilenced() && vibrateInChat) { + Log.d(Config.LOGTAG, "Notification: short vibrate"); + Vibrator vibrator = (Vibrator) getSystemService(VIBRATOR_SERVICE); + vibrator.vibrate(100); + } } private <T> List<T> threadSafeList(Set<T> set) { diff --git a/src/main/res/values/defaults.xml b/src/main/res/values/defaults.xml index 59b759636..c63e50a6a 100644 --- a/src/main/res/values/defaults.xml +++ b/src/main/res/values/defaults.xml @@ -118,6 +118,7 @@ <bool name="show_maps_inside">true</bool> <bool name="use_internal_updater">true</bool> <bool name="show_own_accounts">true</bool> + <bool name="vibrate_in_chat">true</bool> <string-array name="domains"> <item>pix-art.de</item> diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml index 287ccd23a..8b97b2af6 100644 --- a/src/main/res/values/strings.xml +++ b/src/main/res/values/strings.xml @@ -925,4 +925,6 @@ <string name="share_backup_files">Share backup files</string> <string name="conversations_backup">Conversations backup</string> <string name="event">Event</string> + <string name="pref_vibrate_in_chat_summary">Vibrate when a new message arrives in an open chat</string> + <string name="pref_vibrate_in_chat">Vibrate in open chat</string> </resources> diff --git a/src/main/res/xml/preferences.xml b/src/main/res/xml/preferences.xml index d8dd6c89e..d5ce35819 100644 --- a/src/main/res/xml/preferences.xml +++ b/src/main/res/xml/preferences.xml @@ -141,6 +141,11 @@ android:summary="@string/pref_vibrate_summary" android:title="@string/pref_vibrate" /> <CheckBoxPreference + android:defaultValue="@bool/vibrate_in_chat" + android:key="vibrate_in_chat" + android:summary="@string/pref_vibrate_in_chat_summary" + android:title="@string/pref_vibrate_in_chat" /> + <CheckBoxPreference android:defaultValue="@bool/led" android:key="led" android:summary="@string/pref_led_summary" |