diff options
author | Rahix <rahix@rahix.de> | 2018-02-17 21:45:44 +0100 |
---|---|---|
committer | Rahix <rahix@rahix.de> | 2018-02-17 21:51:02 +0100 |
commit | 08c8b9c6d63784f3db1fa3423e629db3ca461b94 (patch) | |
tree | a2a2cc5667e3c10f5d4f5314c253fba2e0b335c6 /libdino/src/entity | |
parent | 5436d716c0f508eb8ab70f322da862f996ce421e (diff) | |
download | dino-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.vala | 4 | ||||
-rw-r--r-- | libdino/src/entity/settings.vala | 10 |
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_; } |