X-Git-Url: http://git.maemo.org/git/?p=theonering;a=blobdiff_plain;f=src%2Fchannel%2Fcontact_list.py;h=e184d2d6ddb97092530d8697205138a86ae9c8dc;hp=8e60ee2f27af9d437f9a8d363dcfc4aa144447a6;hb=1c892d1b9bf14b28eb54ce3590ed2ee29d5e3d25;hpb=93296488a75e77299c484e6d7c57b08c4d34930d diff --git a/src/channel/contact_list.py b/src/channel/contact_list.py index 8e60ee2..e184d2d 100644 --- a/src/channel/contact_list.py +++ b/src/channel/contact_list.py @@ -4,7 +4,7 @@ import telepathy import tp import util.coroutines as coroutines -import gtk_toolbox +import util.misc as misc_utils import handle @@ -29,41 +29,45 @@ class AllContactsListChannel( self.__listHandle = listHandle self.__members = set() - self._callback = coroutines.func_sink( - coroutines.expand_positional( - self._on_contacts_refreshed + if self._conn.options.useGVContacts: + self._callback = coroutines.func_sink( + coroutines.expand_positional( + self._on_contacts_refreshed + ) + ) + self.__session.addressbook.updateSignalHandler.register_sink( + self._callback ) - ) - self.__session.addressbook.updateSignalHandler.register_sink( - self._callback - ) - self.GroupFlagsChanged(0, 0) + addressbook = connection.session.addressbook + contacts = addressbook.get_numbers() + self._process_refresh(addressbook, set(contacts), set(), set()) + else: + self._callback = None - addressbook = connection.session.addressbook - contacts = addressbook.get_numbers() - self._process_refresh(addressbook, set(contacts), set(), set()) + self.GroupFlagsChanged(0, 0) - @gtk_toolbox.log_exception(_moduleLogger) + @misc_utils.log_exception(_moduleLogger) def Close(self): self.close() def close(self): _moduleLogger.debug("Closing contact list") - self.__session.addressbook.updateSignalHandler.unregister_sink( - self._callback - ) - self._callback = None + if self._callback is not None: + self.__session.addressbook.updateSignalHandler.unregister_sink( + self._callback + ) + self._callback = None tp.ChannelTypeContactList.Close(self) self.remove_from_connection() - @gtk_toolbox.log_exception(_moduleLogger) + @misc_utils.log_exception(_moduleLogger) def GetLocalPendingMembersWithInfo(self): return [] - @gtk_toolbox.log_exception(_moduleLogger) + @misc_utils.log_exception(_moduleLogger) def _on_contacts_refreshed(self, addressbook, added, removed, changed): self._process_refresh(addressbook, added, removed, changed)