Thanks to Jerry Vonau, for inspiring and guiding me to solve this :-)

Thanks to Daniel Drake, for the review of version-1 patch.

===================================================================================


Changes of version-2 over version-1 :
=====================================

Version-1 attached callback signals to only one of the two 
telepathy-connection-objects,
instantiated per telepathy-gabble-account. However, two 
telepathy-connection-objects 
were instantiated nevertheless. So, we needed to ensure that only one 
telepathy-connection-object
per telepathy-gabble-account be created (Thanks Daniel again).



Note that ::

a)
In the method "def __account_property_changed_cb(self, properties)", the 
properties were
investigated in each hit of this function. Unfortunately, in each call, 
 
                 properties['ConnectionStatus'] = 1
                               or
                 properties['ConnectionStatus'] = 2

which correspond to "Connecting" and "Disconnected" states, respectively.



At no time, was the value

                 properties['ConnectionStatus'] = 0

which would have corresponded to "Connected" state.


Please see ::  
http://telepathy.freedesktop.org/spec/Connection.html#Enum:Connection_Status





b)
For every hit of the function "def __account_property_changed_cb(self, 
properties)", the value of

                properties['Connection'] 

was either "/", or one other connection-string, WHICH REMAINED CONSTANT IN 
EVERY CALL (i.e. whenever
the value was not "/").





c)
So, simply ensuring that there would be just one telepathy-connection-object 
per telepathy-connection-path
(the OTHER value besides "/" in step b)), we would be done.





 src/jarabe/model/neighborhood.py |    1 -
 1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/src/jarabe/model/neighborhood.py b/src/jarabe/model/neighborhood.py
index 39f648e..430023c 100644
--- a/src/jarabe/model/neighborhood.py
+++ b/src/jarabe/model/neighborhood.py
@@ -249,7 +249,6 @@ class _Account(gobject.GObject):
             return
         if properties['Connection'] == '/':
             self._check_registration_error()
-            self._connection = None
         elif self._connection is None:
             self._prepare_connection(properties['Connection'])
 
-- 
1.7.4.4

_______________________________________________
Sugar-devel mailing list
Sugar-devel@lists.sugarlabs.org
http://lists.sugarlabs.org/listinfo/sugar-devel

Reply via email to