X-Git-Url: http://git.maemo.org/git/?p=theonering;a=blobdiff_plain;f=src%2Fchannel%2Fcontact_list.py;h=970b8091344c279f4d9bba5a7ac66b7f55f18510;hp=c753f0bb2f277ff5e90b4242aeccb1cc8fe1f85d;hb=8b77cf6f2a6b8f1ec930395d8f9b762fa1d4bfbc;hpb=613ba869ba587b74ec66c0dfd0e30978ddd11cf7 diff --git a/src/channel/contact_list.py b/src/channel/contact_list.py index c753f0b..970b809 100644 --- a/src/channel/contact_list.py +++ b/src/channel/contact_list.py @@ -4,6 +4,7 @@ import telepathy import util.go_utils as gobject_utils import util.coroutines as coroutines +import gtk_toolbox import handle @@ -39,16 +40,18 @@ class AllContactsListChannel(AbstractListChannel): contacts = addressbook.get_contacts() self._process_refresh(addressbook, contacts, []) + @gtk_toolbox.log_exception(_moduleLogger) + def Close(self): + telepathy.server.ChannelTypeContactList.Close(self) + self.remove_from_connection() + self._session.addressbook.updateSignalHandler.unregister_sink( + self._on_contacts_refreshed + ) + @coroutines.func_sink @coroutines.expand_positional @gobject_utils.async def _on_contacts_refreshed(self, addressbook, added, removed, changed): - """ - @todo This currently filters out people not yet added to the contact - list. Something needs to be done about those - @todo This currently does not handle people with multiple phone - numbers, yay that'll be annoying to resolve - """ self._process_refresh(addressbook, added, removed) def _process_refresh(self, addressbook, added, removed): @@ -56,13 +59,11 @@ class AllContactsListChannel(AbstractListChannel): handlesAdded = [ handle.create_handle(connection, "contact", contactId, phoneNumber) for contactId in added - if contactId for (phoneType, phoneNumber) in addressbook.get_contact_details(contactId) ] handlesRemoved = [ handle.create_handle(connection, "contact", contactId, phoneNumber) for contactId in removed - if contactId for (phoneType, phoneNumber) in addressbook.get_contact_details(contactId) ] message = ""