diff --git a/src/main/java/com/b44t/messenger/DcContext.java b/src/main/java/com/b44t/messenger/DcContext.java
index 8f35b4bdf..782e0e805 100644
--- a/src/main/java/com/b44t/messenger/DcContext.java
+++ b/src/main/java/com/b44t/messenger/DcContext.java
@@ -86,6 +86,7 @@ public class DcContext {
public final static int DC_CONNECTIVITY_CONNECTED = 4000;
private static final String CONFIG_ACCOUNT_ENABLED = "ui.enabled";
+ private static final String CONFIG_MENTION_NOTIF_ENABLED = "ui.notify_mentions";
// when using DcAccounts, use DcAccounts.addAccount() instead
public DcContext(String osName, String dbfile) {
@@ -226,6 +227,14 @@ public class DcContext {
}
}
+ public boolean isMentionsEnabled() {
+ return !"0".equals(getConfig(CONFIG_MENTION_NOTIF_ENABLED));
+ }
+
+ public void setMentionsEnabled(boolean enabled) {
+ setConfigInt(CONFIG_MENTION_NOTIF_ENABLED, enabled? 1 : 0);
+ }
+
public String getName() {
String displayname = getConfig("displayname");
if (displayname.isEmpty()) {
diff --git a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java
index 26b76e30a..421dbd808 100644
--- a/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java
+++ b/src/main/java/org/thoughtcrime/securesms/notifications/NotificationCenter.java
@@ -416,6 +416,7 @@ public class NotificationCenter {
DcContext dcContext = context.dcAccounts.getAccount(accountId);
int chatId = dcChat.getId();
ChatData chatData = new ChatData(accountId, chatId);
+ isMention = isMention && dcContext.isMentionsEnabled();
if (dcContext.isMuted() || (!isMention && dcChat.isMuted())) {
return;
diff --git a/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java b/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
index a4af08bea..a76049baf 100644
--- a/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
+++ b/src/main/java/org/thoughtcrime/securesms/preferences/NotificationsPreferenceFragment.java
@@ -36,6 +36,7 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
private CheckBoxPreference ignoreBattery;
private CheckBoxPreference notificationsEnabled;
+ private CheckBoxPreference mentionNotifEnabled;
@Override
public void onCreate(Bundle paramBundle) {
@@ -99,6 +100,13 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
dcContext.setMuted(!enabled);
return true;
});
+
+ mentionNotifEnabled = this.findPreference("pref_enable_mention_notifications");
+ mentionNotifEnabled.setOnPreferenceChangeListener((preference, newValue) -> {
+ boolean enabled = (Boolean) newValue;
+ dcContext.setMentionsEnabled(enabled);
+ return true;
+ });
}
@Override
@@ -114,6 +122,7 @@ public class NotificationsPreferenceFragment extends ListSummaryPreferenceFragme
// update ignoreBattery in onResume() to reflects changes done in the system settings
ignoreBattery.setChecked(isIgnoringBatteryOptimizations());
notificationsEnabled.setChecked(!dcContext.isMuted());
+ mentionNotifEnabled.setChecked(dcContext.isMentionsEnabled());
}
@Override
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index 998dfd4ad..e001645bc 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -720,6 +720,8 @@
Request to block screenshots in the recents list and inside the app
To apply the screen security setting please restart the app.
Notifications
+ Notify mentions
+ Notify messages in muted chats if they are directed to you, like replies or reactions to your messages
Show
Priority
Enable system notifications for new messages
diff --git a/src/main/res/xml/preferences_notifications.xml b/src/main/res/xml/preferences_notifications.xml
index db7b293a8..612b34c6f 100644
--- a/src/main/res/xml/preferences_notifications.xml
+++ b/src/main/res/xml/preferences_notifications.xml
@@ -7,6 +7,13 @@
android:title="@string/pref_notifications"
android:defaultValue="true" />
+
+