From 25d651c8343a52ff8b12249ee1dd6c6c34393006 Mon Sep 17 00:00:00 2001 From: Evangelos Ribeiro Tzaras Date: Mon, 5 Apr 2021 01:40:32 +0200 Subject: [PATCH] manager: set default origin This is a bit of a hack to get the country code property hooked up and will require a rework when multiple provider support is being added. As the default origin is not being used anywhere else in the code it's currently not a problem that we're not tracking if the default origin is being removed. Additionally test-manager.c needed some adjustment. --- src/calls-manager.c | 13 +++++++++++++ tests/test-manager.c | 2 -- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/calls-manager.c b/src/calls-manager.c index 2d864c9..7a741a6 100644 --- a/src/calls-manager.c +++ b/src/calls-manager.c @@ -221,9 +221,11 @@ origin_items_changed_cb (CallsManager *self) { GListModel *origins; guint n_items; + gboolean has_default_origin = FALSE; g_assert (CALLS_IS_MANAGER (self)); + has_default_origin = !!self->default_origin; origins = calls_provider_get_origins (self->provider); n_items = g_list_model_get_n_items (origins); @@ -238,6 +240,17 @@ origin_items_changed_cb (CallsManager *self) origin = g_list_model_get_item (origins, i); add_origin (self, origin, self->provider); + if (!has_default_origin) + { + /* XXX + This actually doesn't work correctly when we default origin is removed. + This will require a rework when supporting multiple providers anyway + and also isn't really used outside of getting the country code + it's not really a problem. + */ + calls_manager_set_default_origin (self, origin); + has_default_origin = TRUE; + } } } diff --git a/tests/test-manager.c b/tests/test-manager.c index 1a1de90..c91c6be 100644 --- a/tests/test-manager.c +++ b/tests/test-manager.c @@ -59,7 +59,6 @@ test_calls_manager_dummy_provider () g_assert_nonnull (calls_manager_get_origins (manager)); g_assert_true (g_list_model_get_n_items (origins) > 0); g_assert_null (calls_manager_get_calls (manager)); - g_assert_null (calls_manager_get_default_origin (manager)); test_call = NULL; if (g_list_model_get_n_items (origins) > 0) { @@ -69,7 +68,6 @@ test_calls_manager_dummy_provider () origin = g_list_model_get_item (origins, 0); g_assert (CALLS_IS_ORIGIN (origin)); - calls_manager_set_default_origin (manager, origin); g_assert (calls_manager_get_default_origin (manager) == origin); calls_origin_dial (origin, "+393422342");