]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-individual-dialogs.c
factor out start_gnome_contacts()
[empathy.git] / libempathy-gtk / empathy-individual-dialogs.c
index a19787662e015ce2fa56b08cc671c399cd30a530..0aca78fd38085acc80825fc74c3d02b168d2d9da 100644 (file)
@@ -33,7 +33,6 @@
 
 #include <libempathy/empathy-individual-manager.h>
 #include <libempathy/empathy-utils.h>
-#include <libempathy/empathy-contact-manager.h>
 
 #include "empathy-individual-dialogs.h"
 #include "empathy-contact-widget.h"
@@ -182,8 +181,6 @@ empathy_block_individual_dialog_show (GtkWindow *parent,
     GdkPixbuf *avatar,
     gboolean *abusive)
 {
-  EmpathyContactManager *contact_manager =
-    empathy_contact_manager_dup_singleton ();
   GtkWidget *dialog;
   GtkWidget *abusive_check = NULL;
   GeeSet *personas;
@@ -214,18 +211,21 @@ empathy_block_individual_dialog_show (GtkWindow *parent,
     {
       TpfPersona *persona = gee_iterator_get (iter);
       TpContact *contact;
-      EmpathyContactListFlags flags;
       GString *s;
       char *str;
+      TpConnection *conn;
 
       if (!TPF_IS_PERSONA (persona))
           goto while_finish;
 
       contact = tpf_persona_get_contact (persona);
-      flags = empathy_contact_manager_get_flags_for_connection (
-          contact_manager, tp_contact_get_connection (contact));
+      if (contact == NULL)
+        goto while_finish;
 
-      if (flags & EMPATHY_CONTACT_LIST_CAN_BLOCK)
+      conn = tp_contact_get_connection (contact);
+
+      if (tp_proxy_has_interface_by_id (conn,
+            TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_BLOCKING))
         {
           s = blocked_str;
           npersonas_blocked++;
@@ -236,7 +236,7 @@ empathy_block_individual_dialog_show (GtkWindow *parent,
           npersonas_notblocked++;
         }
 
-      if (flags & EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE)
+      if (tp_connection_can_report_abusive (conn))
         can_report_abuse = TRUE;
 
       str = contact_pretty_name (contact);
@@ -288,7 +288,6 @@ while_finish:
       gtk_widget_show (abusive_check);
     }
 
-  g_object_unref (contact_manager);
   g_string_free (text, TRUE);
   g_string_free (blocked_str, TRUE);
   g_string_free (notblocked_str, TRUE);