From d7bd51828e81649651212c975137b1c4d15fcef6 Mon Sep 17 00:00:00 2001 From: Martin Prejsa Date: Sat, 6 Sep 2025 10:22:27 +0200 Subject: [PATCH] ui-call-data: Implement call-type property Added tests for the newly added property and tests for the newly created helper functions Part-of: --- src/calls-ui-call-data.c | 43 ++++++++++++++++++++++++++++++++++++++++ src/calls-ui-call-data.h | 2 +- tests/test-ui-call.c | 16 ++++++++++++++- 3 files changed, 59 insertions(+), 2 deletions(-) diff --git a/src/calls-ui-call-data.c b/src/calls-ui-call-data.c index 1eae48e..e7b0e5b 100644 --- a/src/calls-ui-call-data.c +++ b/src/calls-ui-call-data.c @@ -38,6 +38,7 @@ enum { PROP_DISPLAY_NAME, PROP_ID, PROP_STATE, + PROP_CALL_TYPE, PROP_ENCRYPTED, PROP_CAN_DTMF, PROP_AVATAR_ICON, @@ -66,6 +67,8 @@ struct _CallsUiCallData { guint timer_id; CuiCallState state; + CuiCallType call_type; + char *origin_id; gboolean silenced; @@ -114,6 +117,16 @@ calls_ui_call_data_get_state (CuiCall *call_data) return self->state; } +static CuiCallType +calls_ui_call_data_get_cui_call_type (CuiCall *call_data) +{ + CallsUiCallData *self = (CallsUiCallData *) call_data; + + g_return_val_if_fail (CALLS_IS_UI_CALL_DATA (self), CUI_CALL_TYPE_UNKNOWN); + g_return_val_if_fail (!!self->call, CUI_CALL_TYPE_UNKNOWN); + + return self->call_type; +} static gboolean calls_ui_call_data_get_encrypted (CuiCall *call_data) @@ -220,6 +233,7 @@ calls_ui_call_data_cui_call_interface_init (CuiCallInterface *iface) iface->get_id = calls_ui_call_data_get_id; iface->get_display_name = calls_ui_call_data_get_display_name; iface->get_state = calls_ui_call_data_get_state; + iface->get_call_type = calls_ui_call_data_get_cui_call_type; iface->get_encrypted = calls_ui_call_data_get_encrypted; iface->get_can_dtmf = calls_ui_call_data_get_can_dtmf; iface->get_avatar_icon = calls_ui_call_data_get_avatar_icon; @@ -352,6 +366,8 @@ set_call_data (CallsUiCallData *self, on_notify_state (self); + self->call_type = calls_call_get_call_type (call); + manager = calls_manager_get_default (); contacts_provider = calls_manager_get_contacts_provider (manager); @@ -491,6 +507,10 @@ calls_ui_call_data_get_property (GObject *object, g_value_set_enum (value, calls_ui_call_data_get_state (cui_call)); break; + case PROP_CALL_TYPE: + g_value_set_enum (value, calls_ui_call_data_get_cui_call_type (cui_call)); + break; + case PROP_ENCRYPTED: g_value_set_boolean (value, calls_ui_call_data_get_encrypted (cui_call)); break; @@ -616,6 +636,9 @@ calls_ui_call_data_class_init (CallsUiCallDataClass *klass) g_object_class_override_property (object_class, PROP_STATE, "state"); props[PROP_STATE] = g_object_class_find_property (object_class, "state"); + g_object_class_override_property (object_class, PROP_CALL_TYPE, "call-type"); + props[PROP_CALL_TYPE] = g_object_class_find_property (object_class, "call-type"); + g_object_class_override_property (object_class, PROP_ENCRYPTED, "encrypted"); props[PROP_ENCRYPTED] = g_object_class_find_property (object_class, "encrypted"); @@ -782,3 +805,23 @@ calls_call_state_to_cui_call_state (CallsCallState state) return CUI_CALL_STATE_UNKNOWN; } } + +/** + * calls_call_type_to_cui_call_type: + * @type: A #CallsCallType + * + * Returns: a #CuiCallType @type is mapped to. + */ +CuiCallType +calls_call_type_to_cui_call_type(CallsCallType type) +{ + switch (type) { + case CALLS_CALL_TYPE_CELLULAR: + return CUI_CALL_TYPE_CELLULAR; + case CALLS_CALL_TYPE_SIP_VOICE: + return CUI_CALL_TYPE_SIP_VOICE; + case CALLS_CALL_TYPE_UNKNOWN: + default: + return CUI_CALL_STATE_UNKNOWN; + } +} diff --git a/src/calls-ui-call-data.h b/src/calls-ui-call-data.h index 2e269fc..3693bb0 100644 --- a/src/calls-ui-call-data.h +++ b/src/calls-ui-call-data.h @@ -45,5 +45,5 @@ const char *calls_ui_call_data_get_origin_id (CallsUiCallData *self); char *calls_ui_call_data_dup_origin_name (CallsUiCallData *self); CuiCallState calls_call_state_to_cui_call_state (CallsCallState state); - +CuiCallType calls_call_type_to_cui_call_type (CallsCallType type); G_END_DECLS diff --git a/tests/test-ui-call.c b/tests/test-ui-call.c index 1a30e6b..dda703e 100644 --- a/tests/test-ui-call.c +++ b/tests/test-ui-call.c @@ -30,6 +30,17 @@ test_cui_call_state_mapping (void) g_assert_cmpint (calls_call_state_to_cui_call_state (42), ==, CUI_CALL_STATE_UNKNOWN); } +static void +test_cui_call_type_mapping (void) +{ + g_assert_cmpint (calls_call_type_to_cui_call_type (CALLS_CALL_TYPE_CELLULAR), + ==, CUI_CALL_TYPE_CELLULAR); + g_assert_cmpint (calls_call_type_to_cui_call_type (CALLS_CALL_TYPE_SIP_VOICE), + ==, CUI_CALL_TYPE_SIP_VOICE); + g_assert_cmpint (calls_call_type_to_cui_call_type (CALLS_CALL_TYPE_UNKNOWN), + ==, CUI_CALL_TYPE_UNKNOWN); +} + static void test_cui_call_properties (void) @@ -52,7 +63,9 @@ test_cui_call_properties (void) g_assert_cmpstr (calls_call_get_id (call), ==, cui_call_get_id (cui_call)); g_assert_cmpstr (calls_call_get_name (call), ==, cui_call_get_display_name (cui_call)); g_assert_cmpint (calls_call_state_to_cui_call_state (calls_call_get_state (call)), ==, - cui_call_get_state (cui_call)); + cui_call_get_state (cui_call)); + g_assert_cmpint (calls_call_type_to_cui_call_type (calls_call_get_call_type(call)), ==, + cui_call_get_call_type(cui_call)); g_object_get (cui_call, "inbound", &inbound, NULL); g_assert_true (calls_call_get_inbound (call) == inbound); @@ -83,6 +96,7 @@ main (int argc, g_test_init (&argc, &argv, NULL); g_test_add_func ("/Calls/UI/state_mapping", (GTestFunc) test_cui_call_state_mapping); + g_test_add_func ("/Calls/UI/type_mapping", (GTestFunc) test_cui_call_type_mapping); g_test_add_func ("/Calls/UI/call_properties", (GTestFunc) test_cui_call_properties); g_test_run ();