From a8cb3dd7c73174970fb873da1948dbbedb093ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guido=20G=C3=BCnther?= Date: Wed, 21 Dec 2022 19:13:23 +0100 Subject: [PATCH] emergency-calls: Notify on DBus when emergency numbers change This is needed if an origin changes it's emergency numbers on the fly (e.g. when initializing them late). --- src/calls-emergency-calls-manager.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/calls-emergency-calls-manager.c b/src/calls-emergency-calls-manager.c index 937fbf1..ca414cb 100644 --- a/src/calls-emergency-calls-manager.c +++ b/src/calls-emergency-calls-manager.c @@ -38,10 +38,26 @@ G_DEFINE_TYPE_WITH_CODE (CallsEmergencyCallsManager, calls_emergency_calls_iface_init)); static void -on_origins_changed (CallsEmergencyCallsManger *self) +on_emergency_numbers_changed (CallsEmergencyCallsManger *self) +{ + g_signal_emit_by_name (self, "emergency-numbers-changed", 0); +} + + +static void +on_origins_changed (CallsEmergencyCallsManger *self, guint position, guint added) { g_assert (CALLS_IS_EMERGENCY_CALLS_MANAGER (self)); + for (int i = 0; i < added; i++) { + CallsOrigin *origin = g_list_model_get_item (self->origins, position + i); + + g_signal_connect_object (origin, "notify::emergency-numbers", + G_CALLBACK (on_emergency_numbers_changed), + self, + G_CONNECT_SWAPPED); + } + g_signal_emit_by_name (self, "emergency-numbers-changed", 0); }