X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fconnection_manager.py;h=c4b5f219b96befa1fba85dea74b7ec23ba43fbeb;hb=60fa155c8146e8d80f08594b436fdd204abb2a5f;hp=68e9be6434ff5b4b3ba2ad07711970300fb87d1e;hpb=a6498a3dd1db8b4379713ebda993dd6b3ec86b08;p=theonering diff --git a/src/connection_manager.py b/src/connection_manager.py index 68e9be6..c4b5f21 100644 --- a/src/connection_manager.py +++ b/src/connection_manager.py @@ -1,21 +1,35 @@ +""" +Empathy Experience: + Can't call + When first started, reports all read conversations when some might have been read + When first started, reports all of an SMS conversation even though some has been reported previously + Still leaking one of two contact lists +""" + import logging import gobject import telepathy import constants +import gtk_toolbox import connection +_moduleLogger = logging.getLogger("connection_manager") + + class TheOneRingConnectionManager(telepathy.server.ConnectionManager): def __init__(self, shutdown_func=None): telepathy.server.ConnectionManager.__init__(self, constants._telepathy_implementation_name_) + # self._protos is from super self._protos[constants._telepathy_protocol_name_] = connection.TheOneRingConnection self._on_shutdown = shutdown_func - logging.info("Connection manager created") + _moduleLogger.info("Connection manager created") + @gtk_toolbox.log_exception(_moduleLogger) def GetParameters(self, proto): """ For org.freedesktop.telepathy.ConnectionManager @@ -23,18 +37,21 @@ class TheOneRingConnectionManager(telepathy.server.ConnectionManager): @returns the mandatory and optional parameters for creating a connection """ if proto not in self._protos: - raise telepathy.NotImplemented('unknown protocol %s' % proto) + raise telepathy.errors.NotImplemented('unknown protocol %s' % proto) result = [] ConnectionClass = self._protos[proto] - mandatoryParameters = ConnectionClass.MANDATORY_PARAMETERS - optionalParameters = ConnectionClass.OPTIONAL_PARAMETERS - defaultParameters = ConnectionClass.PARAMETER_DEFAULTS + mandatoryParameters = ConnectionClass._mandatory_parameters + optionalParameters = ConnectionClass._optional_parameters + defaultParameters = ConnectionClass._parameter_defaults for parameterName, parameterType in mandatoryParameters.iteritems(): + flags = telepathy.CONN_MGR_PARAM_FLAG_REQUIRED + if parameterName == "password": + flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET param = ( parameterName, - telepathy.CONN_MGR_PARAM_FLAG_REQUIRED, + flags, parameterType, '', ) @@ -42,14 +59,19 @@ class TheOneRingConnectionManager(telepathy.server.ConnectionManager): for parameterName, parameterType in optionalParameters.iteritems(): if parameterName in defaultParameters: - param = ( - parameterName, - telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT, - parameterName, - defaultParameters[parameterName], - ) + flags = telepathy.CONN_MGR_PARAM_FLAG_HAS_DEFAULT + if parameterName == "password": + flags |= telepathy.CONN_MGR_PARAM_FLAG_SECRET + default = defaultParameters[parameterName] else: - param = (parameterName, 0, parameterName, '') + flags = 0 + default = "" + param = ( + parameterName, + flags, + parameterName, + default, + ) result.append(param) return result @@ -59,7 +81,7 @@ class TheOneRingConnectionManager(telepathy.server.ConnectionManager): Overrides telepathy.server.ConnectionManager """ result = telepathy.server.ConnectionManager.disconnected(self, conn) - gobject.timeout_add(5000, self.shutdown) + gobject.timeout_add(5000, self._shutdown) def quit(self): """ @@ -67,8 +89,9 @@ class TheOneRingConnectionManager(telepathy.server.ConnectionManager): """ for connection in self._connections: connection.Disconnect() - logging.info("Connection manager quitting") + _moduleLogger.info("Connection manager quitting") + @gtk_toolbox.log_exception(_moduleLogger) def _shutdown(self): if ( self._on_shutdown is not None and