import tp
import util.coroutines as coroutines
-import gtk_toolbox
+import util.misc as misc_utils
import handle
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)