diff options
-rw-r--r-- | libempathy-gtk/empathy-cell-renderer-text.c | 4 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-widget.c | 4 | ||||
-rw-r--r-- | libempathy-gtk/empathy-roster-contact.c | 20 | ||||
-rw-r--r-- | libempathy/empathy-utils.c | 14 | ||||
-rw-r--r-- | libempathy/empathy-utils.h | 3 | ||||
-rw-r--r-- | src/empathy-chat-window.c | 4 |
6 files changed, 26 insertions, 23 deletions
diff --git a/libempathy-gtk/empathy-cell-renderer-text.c b/libempathy-gtk/empathy-cell-renderer-text.c index d52abb485..d96ccc403 100644 --- a/libempathy-gtk/empathy-cell-renderer-text.c +++ b/libempathy-gtk/empathy-cell-renderer-text.c @@ -364,8 +364,8 @@ cell_renderer_text_update_text (EmpathyCellRendererText *cell, status = empathy_presence_get_default_message (priv->presence_type); } - if (!priv->is_group && priv->types != NULL && g_strv_length (priv->types) > 0 - && !tp_strdiff (priv->types[0], "phone")) { + if (!priv->is_group && + empathy_client_types_contains_mobile_device (priv->types)) { on_a_phone = TRUE; /* We want the phone black. */ if (attr_color) diff --git a/libempathy-gtk/empathy-individual-widget.c b/libempathy-gtk/empathy-individual-widget.c index 735397456..4dab7390c 100644 --- a/libempathy-gtk/empathy-individual-widget.c +++ b/libempathy-gtk/empathy-individual-widget.c @@ -808,9 +808,7 @@ client_types_update (EmpathyIndividualWidget *self) types = tp_contact_get_client_types (priv->contact); - if (types != NULL - && g_strv_length ((gchar **) types) > 0 - && !tp_strdiff (types[0], "phone")) + if (empathy_client_types_contains_mobile_device ((GStrv) types)) { gtk_widget_show (priv->hbox_client_types); } diff --git a/libempathy-gtk/empathy-roster-contact.c b/libempathy-gtk/empathy-roster-contact.c index 918ccdb96..7ab808746 100644 --- a/libempathy-gtk/empathy-roster-contact.c +++ b/libempathy-gtk/empathy-roster-contact.c @@ -173,25 +173,11 @@ alias_changed_cb (FolksIndividual *individual, update_alias (self); } -static gboolean -is_phone (FolksIndividual *individual) -{ - const gchar * const *types; - - types = empathy_individual_get_client_types (individual); - if (types == NULL) - return FALSE; - - if (g_strv_length ((GStrv) types) <= 0) - return FALSE; - - return !tp_strdiff (types[0], "phone"); -} - static void update_presence_msg (EmpathyRosterContact *self) { const gchar *msg; + GStrv types; msg = folks_presence_details_get_presence_message ( FOLKS_PRESENCE_DETAILS (self->priv->individual)); @@ -233,8 +219,10 @@ update_presence_msg (EmpathyRosterContact *self) gtk_widget_show (self->priv->presence_msg); } + types = (GStrv) empathy_individual_get_client_types (self->priv->individual); + gtk_widget_set_visible (self->priv->phone_icon, - is_phone (self->priv->individual)); + empathy_client_types_contains_mobile_device (types)); } static void diff --git a/libempathy/empathy-utils.c b/libempathy/empathy-utils.c index a7ae0bdd7..191544fbf 100644 --- a/libempathy/empathy-utils.c +++ b/libempathy/empathy-utils.c @@ -1122,6 +1122,20 @@ while_finish: *can_video_call = can_video; } +gboolean +empathy_client_types_contains_mobile_device (const GStrv types) { + int i; + + if (types == NULL) + return FALSE; + + for (i = 0; types[i] != NULL; i++) + if (!tp_strdiff (types[i], "phone") || !tp_strdiff (types[i], "handheld")) + return TRUE; + + return FALSE; +} + static FolksIndividual * create_individual_from_persona (FolksPersona *persona) { diff --git a/libempathy/empathy-utils.h b/libempathy/empathy-utils.h index a310d2b02..3950c5be3 100644 --- a/libempathy/empathy-utils.h +++ b/libempathy/empathy-utils.h @@ -115,6 +115,9 @@ void empathy_individual_can_audio_video_call (FolksIndividual *individual, gboolean *can_video_call, EmpathyContact **out_contact); +gboolean empathy_client_types_contains_mobile_device ( + const GStrv types); + FolksIndividual * empathy_create_individual_from_tp_contact ( TpContact *contact); diff --git a/src/empathy-chat-window.c b/src/empathy-chat-window.c index 06d1b0cec..676c4ef23 100644 --- a/src/empathy-chat-window.c +++ b/src/empathy-chat-window.c @@ -986,9 +986,9 @@ chat_window_update_chat_tab_full (EmpathyChat *chat, const gchar * const *types; types = empathy_contact_get_client_types (remote_contact); - if (types != NULL && !tp_strdiff (types[0], "phone")) + if (empathy_client_types_contains_mobile_device ((GStrv) types)) { - /* I'm on a phone ! */ + /* I'm on a mobile device ! */ gchar *tmp = name; name = g_strdup_printf ("☎ %s", name); |