diff options
-rw-r--r-- | include/datetime/settings.h | 1 | ||||
-rw-r--r-- | src/snap.cpp | 17 |
2 files changed, 18 insertions, 0 deletions
diff --git a/include/datetime/settings.h b/include/datetime/settings.h index 253a00a..d5e81c6 100644 --- a/include/datetime/settings.h +++ b/include/datetime/settings.h @@ -61,6 +61,7 @@ public: core::Property<unsigned int> alarm_volume; core::Property<unsigned int> alarm_duration; core::Property<unsigned int> snooze_duration; + core::Property<std::set<std::pair<std::string,std::string>>> muted_apps; }; } // namespace datetime diff --git a/src/snap.cpp b/src/snap.cpp index f0300af..934ad19 100644 --- a/src/snap.cpp +++ b/src/snap.cpp @@ -84,6 +84,12 @@ public: appointment_func snooze, appointment_func ok) { + // If calendar notifications are muted, don't show them + if (!appointment.is_ubuntu_alarm() && calendar_events_are_muted()) { + g_debug("Skipping muted calendar event '%s' notification", appointment.summary.c_str()); + return; + } + /* Alarms and calendar events are treated differently. Alarms should require manual intervention to dismiss. Calendar events are less urgent and shouldn't require manual @@ -159,6 +165,17 @@ public: private: + bool calendar_events_are_muted() const + { + for(const auto& app : m_settings->muted_apps.get()) { + if (app.first == "com.ubuntu.calendar") { + return true; + } + } + + return false; + } + static void on_sound_proxy_ready(GObject* /*source_object*/, GAsyncResult* res, gpointer gself) { GError * error; |