]> git.0d.be Git - empathy.git/blobdiff - libempathy/empathy-tp-contact-list.c
remove old blocking API
[empathy.git] / libempathy / empathy-tp-contact-list.c
index 1cd2ba4caded1dfb337defedbce6afe008e946a8..bf639e4cee98ca7279ef5d4a9485ddc879dcd740 100644 (file)
@@ -48,7 +48,6 @@ typedef struct {
        TpChannel      *publish;
        TpChannel      *subscribe;
        TpChannel      *stored;
-       TpChannel      *deny;
        /* contact handle (TpHandle) => reffed (EmpathyContact *)
         *
         * Union of:
@@ -731,10 +730,6 @@ tp_contact_list_finalize (GObject *object)
                g_object_unref (priv->stored);
        }
 
-       if (priv->deny) {
-               g_object_unref (priv->deny);
-       }
-
        if (priv->connection) {
                g_object_unref (priv->connection);
        }
@@ -786,11 +781,6 @@ got_list_channel (EmpathyTpContactList *list,
                g_signal_connect (priv->subscribe, "group-members-changed",
                                  G_CALLBACK (tp_contact_list_subscribe_group_members_changed_cb),
                                  list);
-       } else if (!tp_strdiff (id, "deny")) {
-               if (priv->deny != NULL)
-                       return;
-               DEBUG ("Got 'deny' channel");
-               priv->deny = g_object_ref (channel);
        }
 }
 
@@ -816,39 +806,6 @@ list_ensure_channel_cb (TpConnection *conn,
        g_object_unref (channel);
 }
 
-static void
-list_get_contact_blocking_capabilities_cb (TpProxy *conn,
-                                          const GValue *value,
-                                          const GError *in_error,
-                                          gpointer user_data,
-                                          GObject *weak_object)
-{
-       EmpathyTpContactList *list = EMPATHY_TP_CONTACT_LIST (weak_object);
-       EmpathyTpContactListPriv *priv = GET_PRIV (list);
-       TpContactBlockingCapabilities caps;
-
-       if (in_error != NULL) {
-               DEBUG ("Get(Blocking, ContactBlockingCapabilities) on %s failed: %s",
-                      tp_proxy_get_object_path (conn),
-                      in_error->message);
-               return;
-       }
-
-       if (!G_VALUE_HOLDS_UINT (value)) {
-               DEBUG ("Get(Blocking, ContactBlockingCapabilities) on %s returned a %s, not a uint",
-                      tp_proxy_get_object_path (conn),
-                      G_VALUE_TYPE_NAME (value));
-               return;
-       }
-
-       caps = g_value_get_uint (value);
-
-       if (caps & TP_CONTACT_BLOCKING_CAPABILITY_CAN_REPORT_ABUSIVE) {
-               DEBUG ("Connection can report abusive contacts");
-               priv->flags |= EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE;
-       }
-}
-
 static void
 iterate_on_channels (EmpathyTpContactList *list,
                     const GPtrArray *channels)
@@ -957,25 +914,8 @@ conn_ready_cb (TpConnection *connection,
        tp_cli_connection_interface_requests_call_ensure_channel (priv->connection,
                G_MAXINT, request, list_ensure_channel_cb, list, NULL, G_OBJECT (list));
 
-       /* Request the 'deny' list */
-       tp_asv_set_static_string (request, TP_PROP_CHANNEL_TARGET_ID, "deny");
-       tp_cli_connection_interface_requests_call_ensure_channel (priv->connection,
-               G_MAXINT, request, list_ensure_channel_cb, list, NULL, G_OBJECT (list));
-
        g_hash_table_unref (request);
 
-       /* Find out if we support reporting abusive contacts --
-        * this is done via the new Conn.I.ContactBlocking interface */
-       if (tp_proxy_has_interface_by_id (priv->connection,
-           TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_BLOCKING)) {
-               DEBUG ("Have Conn.I.ContactBlocking");
-
-               tp_cli_dbus_properties_call_get (priv->connection, -1,
-                       TP_IFACE_CONNECTION_INTERFACE_CONTACT_BLOCKING,
-                       "ContactBlockingCapabilities",
-                       list_get_contact_blocking_capabilities_cb,
-                       NULL, NULL, G_OBJECT (list));
-       }
 out:
        g_object_unref (list);
 }
@@ -1154,10 +1094,13 @@ tp_contact_list_add (EmpathyContactList *list,
                }
        }
 
-       if (priv->deny) {
-               tp_cli_channel_interface_group_call_remove_members (
-                       priv->deny, -1, &handles, message,
-                       NULL, NULL, NULL, NULL);
+       /* We want to unblock the contact */
+       if (tp_proxy_has_interface_by_id (priv->connection,
+               TP_IFACE_QUARK_CONNECTION_INTERFACE_CONTACT_BLOCKING)) {
+               TpContact *tp_contact = empathy_contact_get_tp_contact (contact);
+
+               if (tp_contact != NULL)
+                       tp_contact_unblock_async (tp_contact, NULL, NULL);
        }
 }
 
@@ -1370,55 +1313,9 @@ tp_contact_list_get_flags (EmpathyContactList *list)
                }
        }
 
-       if (priv->deny != NULL)
-               flags |= EMPATHY_CONTACT_LIST_CAN_BLOCK;
-
        return flags;
 }
 
-static void
-tp_contact_list_set_blocked (EmpathyContactList *list,
-                            EmpathyContact     *contact,
-                            gboolean            blocked,
-                            gboolean            abusive)
-{
-       EmpathyTpContactListPriv *priv = GET_PRIV (list);
-       TpHandle handle = empathy_contact_get_handle (contact);
-       GArray handles = { (char *) &handle, 1 };
-
-       g_return_if_fail (TP_IS_CHANNEL (priv->deny));
-
-       if (blocked && abusive) {
-               /* we have to do this via the new interface */
-               g_return_if_fail (priv->flags &
-                               EMPATHY_CONTACT_LIST_CAN_REPORT_ABUSIVE);
-
-               tp_cli_connection_interface_contact_blocking_call_block_contacts (
-                       priv->connection, -1,
-                       &handles, TRUE, NULL, NULL, NULL, NULL);
-       } else if (blocked) {
-               tp_cli_channel_interface_group_call_add_members (
-                       priv->deny, -1,
-                       &handles, NULL, NULL, NULL, NULL, NULL);
-       } else {
-               tp_cli_channel_interface_group_call_remove_members (
-                       priv->deny, -1,
-                       &handles, NULL, NULL, NULL, NULL, NULL);
-       }
-}
-
-static gboolean
-tp_contact_list_get_blocked (EmpathyContactList *list,
-                            EmpathyContact     *contact)
-{
-       EmpathyTpContactListPriv *priv = GET_PRIV (list);
-
-       g_return_val_if_fail (TP_IS_CHANNEL (priv->deny), FALSE);
-
-       return tp_intset_is_member (tp_channel_group_get_members (priv->deny),
-                                   empathy_contact_get_handle (contact));
-}
-
 static void
 tp_contact_list_iface_init (EmpathyContactListIface *iface)
 {
@@ -1433,8 +1330,6 @@ tp_contact_list_iface_init (EmpathyContactListIface *iface)
        iface->rename_group      = tp_contact_list_rename_group;
        iface->remove_group      = tp_contact_list_remove_group;
        iface->get_flags         = tp_contact_list_get_flags;
-       iface->set_blocked       = tp_contact_list_set_blocked;
-       iface->get_blocked       = tp_contact_list_get_blocked;
 }
 
 void