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)
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()
_moduleLogger = logging.getLogger("connection")
+class TheOneRingOptions(object):
+
+ useGVContacts = True
+
+ def __init__(self, parameters = None):
+ if parameters is None:
+ return
+ self.useGVContacts = parameters["use-gv-contacts"]
+
+
class TheOneRingConnection(
tp.Connection,
requests.RequestsMixin,
# overiding base class variable
_optional_parameters = {
'forward' : 's',
+ 'use-gv-contacts' : 'b',
}
_parameter_defaults = {
'forward' : '',
+ 'use-gv-contacts' : TheOneRingOptions.useGVContacts,
}
_secret_parameters = set((
"password",
# Connection init must come first
self.__session = gvoice.session.Session(None)
+ self.__options = TheOneRingOptions(parameters)
tp.Connection.__init__(
self,
constants._telepathy_protocol_name_,
return self.__session
@property
+ def options(self):
+ return self.__options
+
+ @property
def username(self):
return self.__credentials[0]
def get_handle_by_name(self, handleType, handleName):
requestedHandleName = handleName.encode('utf-8')
if handleType == telepathy.HANDLE_TYPE_CONTACT:
- _moduleLogger.info("get_handle_by_name Contact: %s" % requestedHandleName)
+ _moduleLogger.debug("get_handle_by_name Contact: %s" % requestedHandleName)
h = handle.create_handle(self, 'contact', requestedHandleName)
elif handleType == telepathy.HANDLE_TYPE_LIST:
# Support only server side (immutable) lists
- _moduleLogger.info("get_handle_by_name List: %s" % requestedHandleName)
+ _moduleLogger.debug("get_handle_by_name List: %s" % requestedHandleName)
h = handle.create_handle(self, 'list', requestedHandleName)
else:
raise telepathy.errors.NotAvailable('Handle type unsupported %d' % handleType)
if not isinstance(value, (int, long)):
raise InvalidArgument('incorrect type to %s parameter, got %s, expected an int' % (parm, type(value)))
elif sig == 'b':
- if not isinstance(value, bool):
+ if not isinstance(value, (bool, dbus.types.Boolean)):
raise InvalidArgument('incorrect type to %s parameter, got %s, expected an boolean' % (parm, type(value)))
else:
raise TypeError('unknown type signature %s in protocol parameters' % type)
param-account = s required
param-password = s required secret
param-forward = s
+param-use-gv-contacts = b
default-forward =
+default-use-gv-contacts = true