aboutsummaryrefslogtreecommitdiffstats
path: root/src/main
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2019-08-31 14:05:41 +0200
committerChristian Schneppe <christian@pix-art.de>2019-08-31 14:31:31 +0200
commitdd627f76bf21e5ce494c33a7b03f1bdb90f32b13 (patch)
tree6404d409f5fd09cfb87ebced1519b9675b3f4b66 /src/main
parent037cd4e95b66f6c8cf92ea096bd6533703958a30 (diff)
make short vibrate in open chat configurable and respect phone silent mode
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/de/pixart/messenger/services/NotificationService.java5
-rw-r--r--src/main/java/de/pixart/messenger/services/XmppConnectionService.java9
-rw-r--r--src/main/res/values/defaults.xml1
-rw-r--r--src/main/res/values/strings.xml2
-rw-r--r--src/main/res/xml/preferences.xml5
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"