utils: Move get_service_name_from_url to utils
This function can be useful in contexts other than the creation of the meeting row.
This commit is contained in:
committed by
Georges Basile Stavracas Neto
parent
34d0c7d4af
commit
9433db55a2
@@ -57,42 +57,22 @@ static GParamSpec *properties[N_PROPS] = { NULL, };
|
|||||||
* Auxiliary methods
|
* 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
|
static void
|
||||||
setup_meeting (GcalMeetingRow *self)
|
setup_meeting (GcalMeetingRow *self)
|
||||||
{
|
{
|
||||||
g_autofree gchar *markup_url = NULL;
|
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 ("<a href=\"%s\">%s</a>", self->url, self->url);
|
markup_url = g_strdup_printf ("<a href=\"%s\">%s</a>", self->url, self->url);
|
||||||
adw_action_row_set_subtitle (ADW_ACTION_ROW (self), markup_url);
|
adw_action_row_set_subtitle (ADW_ACTION_ROW (self), markup_url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Callbacks
|
* Callbacks
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1289,3 +1289,36 @@ gcal_is_valid_event_name (const gchar *event_name)
|
|||||||
g_autofree gchar *aux = g_strstrip (g_strdup (event_name));
|
g_autofree gchar *aux = g_strstrip (g_strdup (event_name));
|
||||||
return g_utf8_strlen (aux, -1) > 0;
|
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;
|
||||||
|
}
|
||||||
|
|||||||
@@ -137,4 +137,6 @@ GTimeZone * gcal_util_get_app_timezone_or_local ();
|
|||||||
|
|
||||||
gboolean gcal_is_valid_event_name (const gchar *event_name);
|
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__ */
|
#endif /* __GCAL_UTILS_H__ */
|
||||||
|
|||||||
Reference in New Issue
Block a user