| 552 | add_contact = ToolButton(icon_name='list-add') |
| 553 | add_contact.set_tooltip(_('Add contact')) |
| 554 | add_contact.connect('clicked', self.__add_contact_clicked_cb, |
| 555 | connection_watcher.ConnectionWatcher()) |
| 556 | add_contact.show() |
| 557 | self.insert(add_contact, -1) |
| 558 | add_contact.show() |
| 559 | |
| 560 | def __add_contact_clicked_cb(self, button, conn_watcher): |
| 561 | logging.debug('__add_contact_clicked_cb') |
| 562 | connection = conn_watcher.get_connections()[0] |
| 563 | |
| 564 | from telepathy.constants import CONNECTION_HANDLE_TYPE_CONTACT |
| 565 | contact = connection.RequestHandles(CONNECTION_HANDLE_TYPE_CONTACT, |
| 566 | ["tomeu-test@jabber.sugarlabs.org"])[0] |
| 567 | |
| 568 | from telepathy.constants import CONNECTION_HANDLE_TYPE_LIST |
| 569 | handle = connection.RequestHandles(CONNECTION_HANDLE_TYPE_LIST, ['subscribe'])[0] |
| 570 | |
| 571 | logging.debug('__add_contact_clicked_cb calling RequestChannel') |
| 572 | from telepathy.interfaces import CHANNEL_TYPE_CONTACT_LIST |
| 573 | channel_path = connection.RequestChannel(CHANNEL_TYPE_CONTACT_LIST, |
| 574 | CONNECTION_HANDLE_TYPE_LIST, |
| 575 | handle, True) |
| 576 | |
| 577 | from telepathy.client import Channel |
| 578 | channel = Channel(connection.service_name, channel_path) |
| 579 | |
| 580 | logging.debug('__add_contact_clicked_cb calling AddMembers') |
| 581 | from telepathy.interfaces import CHANNEL_INTERFACE_GROUP |
| 582 | channel[CHANNEL_INTERFACE_GROUP].AddMembers([contact], 'accept me!') |
| 583 | |