aboutsummaryrefslogtreecommitdiff
path: root/libdino/src/entity
diff options
context:
space:
mode:
authorRahix <rahix@rahix.de>2018-02-17 21:45:44 +0100
committerRahix <rahix@rahix.de>2018-02-17 21:51:02 +0100
commit08c8b9c6d63784f3db1fa3423e629db3ca461b94 (patch)
treea2a2cc5667e3c10f5d4f5314c253fba2e0b335c6 /libdino/src/entity
parent5436d716c0f508eb8ab70f322da862f996ce421e (diff)
downloaddino-08c8b9c6d63784f3db1fa3423e629db3ca461b94.tar.gz
dino-08c8b9c6d63784f3db1fa3423e629db3ca461b94.zip
Implement notification sounds
Add a new setting to toggle notification sounds on or off. Plays the systems default instant messaging message sound (message-new-instant) whenever a notification is shown if toggled on.
Diffstat (limited to 'libdino/src/entity')
-rw-r--r--libdino/src/entity/conversation.vala4
-rw-r--r--libdino/src/entity/settings.vala10
2 files changed, 14 insertions, 0 deletions
diff --git a/libdino/src/entity/conversation.vala b/libdino/src/entity/conversation.vala
index 9026e33f..0dfa64f2 100644
--- a/libdino/src/entity/conversation.vala
+++ b/libdino/src/entity/conversation.vala
@@ -101,6 +101,10 @@ public class Conversation : Object {
return notify_setting != NotifySetting.DEFAULT ? notify_setting : get_notification_default_setting(stream_interactor);
}
+ public bool get_sound_setting(StreamInteractor stream_interactor) {
+ return Application.get_default().settings.sound;
+ }
+
public NotifySetting get_notification_default_setting(StreamInteractor stream_interactor) {
Xmpp.XmppStream? stream = stream_interactor.get_stream(account);
if (!Application.get_default().settings.notifications) return NotifySetting.OFF;
diff --git a/libdino/src/entity/settings.vala b/libdino/src/entity/settings.vala
index f94a92ca..32d38c90 100644
--- a/libdino/src/entity/settings.vala
+++ b/libdino/src/entity/settings.vala
@@ -10,6 +10,7 @@ public class Settings : Object {
send_typing_ = col_to_bool_or_default("send_typing", true);
send_marker_ = col_to_bool_or_default("send_marker", true);
notifications_ = col_to_bool_or_default("notifications", true);
+ sound_ = col_to_bool_or_default("sound", true);
convert_utf8_smileys_ = col_to_bool_or_default("convert_utf8_smileys", true);
current_width = col_to_int_or_default("window_width", 1200);
@@ -56,6 +57,15 @@ public class Settings : Object {
}
}
+ private bool sound_;
+ public bool sound {
+ get { return sound_; }
+ set {
+ db.settings.insert().or("REPLACE").value(db.settings.key, "sound").value(db.settings.value, value.to_string()).perform();
+ sound_ = value;
+ }
+ }
+
private bool convert_utf8_smileys_;
public bool convert_utf8_smileys {
get { return convert_utf8_smileys_; }