Implemented conversations with full testing, oh and got some addressbook stuff done
[theonering] / src / connection_manager.py
index 63e943a..f169789 100644 (file)
@@ -7,17 +7,23 @@ import constants
 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")
 
        def GetParameters(self, proto):
                """
+               For org.freedesktop.telepathy.ConnectionManager
+
                @returns the mandatory and optional parameters for creating a connection
                """
                if proto not in self._protos:
@@ -25,14 +31,17 @@ class TheOneRingConnectionManager(telepathy.server.ConnectionManager):
 
                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,
                                '',
                        )
@@ -40,19 +49,27 @@ 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
 
        def disconnected(self, conn):
+               """
+               Overrides telepathy.server.ConnectionManager
+               """
                result = telepathy.server.ConnectionManager.disconnected(self, conn)
                gobject.timeout_add(5000, self.shutdown)
 
@@ -62,7 +79,7 @@ class TheOneRingConnectionManager(telepathy.server.ConnectionManager):
                """
                for connection in self._connections:
                        connection.Disconnect()
-               logging.info("Connection manager quitting")
+               _moduleLogger.info("Connection manager quitting")
 
        def _shutdown(self):
                if (