do not notify for messages from strangers by default
This commit is contained in:
parent
857c761c68
commit
7306e0286f
|
@ -992,6 +992,26 @@ public class Conversation extends AbstractEntity implements Blockable, Comparabl
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private int sentMessagesCount() {
|
||||||
|
int count = 0;
|
||||||
|
synchronized (this.messages) {
|
||||||
|
for(Message message : messages) {
|
||||||
|
if (message.getStatus() != Message.STATUS_RECEIVED) {
|
||||||
|
++count;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return count;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isWithStranger() {
|
||||||
|
if (mode == MODE_SINGLE) {
|
||||||
|
return !getContact().mutualPresenceSubscription() && sentMessagesCount() == 0;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public class Smp {
|
public class Smp {
|
||||||
public static final int STATUS_NONE = 0;
|
public static final int STATUS_NONE = 0;
|
||||||
public static final int STATUS_CONTACT_REQUESTED = 1;
|
public static final int STATUS_CONTACT_REQUESTED = 1;
|
||||||
|
|
|
@ -59,17 +59,23 @@ public class NotificationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean notify(final Message message) {
|
public boolean notify(final Message message) {
|
||||||
return (message.getStatus() == Message.STATUS_RECEIVED)
|
return message.getStatus() == Message.STATUS_RECEIVED
|
||||||
&& notificationsEnabled()
|
&& notificationsEnabled()
|
||||||
&& !message.getConversation().isMuted()
|
&& !message.getConversation().isMuted()
|
||||||
&& (message.getConversation().alwaysNotify() || wasHighlightedOrPrivate(message)
|
&& (message.getConversation().alwaysNotify() || wasHighlightedOrPrivate(message))
|
||||||
);
|
&& (!message.getConversation().isWithStranger() || notificationsFromStrangers())
|
||||||
|
;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean notificationsEnabled() {
|
public boolean notificationsEnabled() {
|
||||||
return mXmppConnectionService.getPreferences().getBoolean("show_notification", true);
|
return mXmppConnectionService.getPreferences().getBoolean("show_notification", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private boolean notificationsFromStrangers() {
|
||||||
|
return mXmppConnectionService.getPreferences().getBoolean("notifications_from_strangers",
|
||||||
|
mXmppConnectionService.getResources().getBoolean(R.bool.notifications_from_strangers));
|
||||||
|
}
|
||||||
|
|
||||||
public boolean isQuietHours() {
|
public boolean isQuietHours() {
|
||||||
if (!mXmppConnectionService.getPreferences().getBoolean("enable_quiet_hours", false)) {
|
if (!mXmppConnectionService.getPreferences().getBoolean("enable_quiet_hours", false)) {
|
||||||
return false;
|
return false;
|
||||||
|
|
|
@ -3,4 +3,5 @@
|
||||||
<string name="default_resource">Phone</string>
|
<string name="default_resource">Phone</string>
|
||||||
<bool name="portrait_only">true</bool>
|
<bool name="portrait_only">true</bool>
|
||||||
<bool name="enter_is_send">false</bool>
|
<bool name="enter_is_send">false</bool>
|
||||||
|
<bool name="notifications_from_strangers">false</bool>
|
||||||
</resources>
|
</resources>
|
|
@ -736,4 +736,6 @@
|
||||||
<string name="transcoding_video_progress">Compressing video (%s%% completed)</string>
|
<string name="transcoding_video_progress">Compressing video (%s%% completed)</string>
|
||||||
<string name="corresponding_conversations_closed">Corresponding conversations closed.</string>
|
<string name="corresponding_conversations_closed">Corresponding conversations closed.</string>
|
||||||
<string name="contact_blocked_past_tense">Contact blocked.</string>
|
<string name="contact_blocked_past_tense">Contact blocked.</string>
|
||||||
|
<string name="pref_notifications_from_strangers">Notifications from strangers</string>
|
||||||
|
<string name="pref_notifications_from_strangers_summary">Notify for messages received from strangers.</string>
|
||||||
</resources>
|
</resources>
|
||||||
|
|
|
@ -41,6 +41,12 @@
|
||||||
android:key="show_notification"
|
android:key="show_notification"
|
||||||
android:summary="@string/pref_notifications_summary"
|
android:summary="@string/pref_notifications_summary"
|
||||||
android:title="@string/pref_notifications"/>
|
android:title="@string/pref_notifications"/>
|
||||||
|
<CheckBoxPreference
|
||||||
|
android:defaultValue="@bool/notifications_from_strangers"
|
||||||
|
android:key="notifications_from_strangers"
|
||||||
|
android:dependency="show_notification"
|
||||||
|
android:title="@string/pref_notifications_from_strangers"
|
||||||
|
android:summary="@string/pref_notifications_from_strangers_summary"/>
|
||||||
<CheckBoxPreference
|
<CheckBoxPreference
|
||||||
android:defaultValue="true"
|
android:defaultValue="true"
|
||||||
android:dependency="show_notification"
|
android:dependency="show_notification"
|
||||||
|
|
Loading…
Reference in a new issue