From 9433db55a22f47a34a7fef18d9ff0b706ca1e3e4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Silva?= Date: Mon, 24 Jun 2024 11:42:55 -0300 Subject: [PATCH] utils: Move get_service_name_from_url to utils This function can be useful in contexts other than the creation of the meeting row. --- src/gui/gcal-meeting-row.c | 32 ++++++-------------------------- src/utils/gcal-utils.c | 33 +++++++++++++++++++++++++++++++++ src/utils/gcal-utils.h | 2 ++ 3 files changed, 41 insertions(+), 26 deletions(-) diff --git a/src/gui/gcal-meeting-row.c b/src/gui/gcal-meeting-row.c index ef2d78dd..b06589f2 100644 --- a/src/gui/gcal-meeting-row.c +++ b/src/gui/gcal-meeting-row.c @@ -57,42 +57,22 @@ static GParamSpec *properties[N_PROPS] = { NULL, }; * Auxiliary methods */ -const gchar* -get_service_name_from_url (const gchar *url) -{ - struct { - const gchar *needle; - const gchar *service_name; - } service_name_vtable[] = { - { "meet.google.com", N_("Google Meet") }, - { "meet.jit.si", N_("Jitsi") }, - { "whereby.com", N_("Whereby") }, - { "zoom.us", N_("Zoom") }, - { "teams.microsoft.com", N_("Microsoft Teams") }, - }; - gsize i; - - for (i = 0; i < G_N_ELEMENTS (service_name_vtable); i++) - { - if (strstr (url, service_name_vtable[i].needle)) - return gettext (service_name_vtable[i].service_name); - } - - return _("Unknown Service"); -} - static void setup_meeting (GcalMeetingRow *self) { g_autofree gchar *markup_url = NULL; - adw_preferences_row_set_title (ADW_PREFERENCES_ROW (self), get_service_name_from_url (self->url)); + const gchar *service_name = gcal_get_service_name_from_url (self->url); + + if (service_name) + adw_preferences_row_set_title (ADW_PREFERENCES_ROW (self), service_name); + else + adw_preferences_row_set_title (ADW_PREFERENCES_ROW (self), _("Unknown Service")); markup_url = g_strdup_printf ("%s", self->url, self->url); adw_action_row_set_subtitle (ADW_ACTION_ROW (self), markup_url); } - /* * Callbacks */ diff --git a/src/utils/gcal-utils.c b/src/utils/gcal-utils.c index 6056c8f4..b73db6e2 100644 --- a/src/utils/gcal-utils.c +++ b/src/utils/gcal-utils.c @@ -1289,3 +1289,36 @@ gcal_is_valid_event_name (const gchar *event_name) g_autofree gchar *aux = g_strstrip (g_strdup (event_name)); return g_utf8_strlen (aux, -1) > 0; } + +/** + * gcal_get_service_name_from_url: + * @url: the meeting url to get service name from + * + * Given a meeting service URL, get the service provider name, + * or return NULL in the case the service is not listed. + * + * Returns: the service name or NULL + */ +const gchar * +gcal_get_service_name_from_url (const gchar *url) +{ + struct { + const gchar *needle; + const gchar *service_name; + } service_name_vtable[] = { + { "meet.google.com", N_("Google Meet") }, + { "meet.jit.si", N_("Jitsi") }, + { "whereby.com", N_("Whereby") }, + { "zoom.us", N_("Zoom") }, + { "teams.microsoft.com", N_("Microsoft Teams") }, + }; + gsize i; + + for (i = 0; i < G_N_ELEMENTS (service_name_vtable); i++) + { + if (strstr (url, service_name_vtable[i].needle)) + return gettext (service_name_vtable[i].service_name); + } + + return NULL; +} diff --git a/src/utils/gcal-utils.h b/src/utils/gcal-utils.h index e0958fab..8572efc6 100644 --- a/src/utils/gcal-utils.h +++ b/src/utils/gcal-utils.h @@ -137,4 +137,6 @@ GTimeZone * gcal_util_get_app_timezone_or_local (); gboolean gcal_is_valid_event_name (const gchar *event_name); +const gchar* gcal_get_service_name_from_url (const gchar *url); + #endif /* __GCAL_UTILS_H__ */