From 08c8b9c6d63784f3db1fa3423e629db3ca461b94 Mon Sep 17 00:00:00 2001 From: Rahix Date: Sat, 17 Feb 2018 21:45:44 +0100 Subject: 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. --- libdino/src/entity/conversation.vala | 4 ++++ libdino/src/entity/settings.vala | 10 ++++++++++ 2 files changed, 14 insertions(+) (limited to 'libdino') 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_; } -- cgit v1.2.3-54-g00ecf