Fix collaboration call_async

Port to Python 3 via Six aa8a5e7 did introduce a regression during
activity collaboration on both sharing and joining.

Fixes https://github.com/sugarlabs/sugar-toolkit-gtk3/issues/406
master
James Cameron 5 years ago
parent 2453d13b03
commit 481e0bac80

@ -125,19 +125,27 @@ class Activity(GObject.GObject):
def _start_tracking_properties(self): def _start_tracking_properties(self):
bus = dbus.SessionBus() bus = dbus.SessionBus()
arg_dict = dict(reply_handler=self.__got_properties_cb,
error_handler=self.__error_handler_cb)
if six.PY2: if six.PY2:
arg_dict = arg_dict.update(utf8_strings=True) self._get_properties_call = bus.call_async(
self.telepathy_conn.requested_bus_name,
self._get_properties_call = bus.call_async( self.telepathy_conn.object_path,
self.telepathy_conn.requested_bus_name, CONN_INTERFACE_ACTIVITY_PROPERTIES,
self.telepathy_conn.object_path, 'GetProperties',
CONN_INTERFACE_ACTIVITY_PROPERTIES, 'u',
'GetProperties', (self.room_handle,),
'u', reply_handler=self.__got_properties_cb,
(self.room_handle,), error_handler=self.__error_handler_cb,
arg_dict) utf8_strings=True)
else:
self._get_properties_call = bus.call_async(
self.telepathy_conn.requested_bus_name,
self.telepathy_conn.object_path,
CONN_INTERFACE_ACTIVITY_PROPERTIES,
'GetProperties',
'u',
(self.room_handle,),
reply_handler=self.__got_properties_cb,
error_handler=self.__error_handler_cb)
# As only one Activity instance is needed per activity process, # As only one Activity instance is needed per activity process,
# we can afford listening to ActivityPropertiesChanged like this. # we can afford listening to ActivityPropertiesChanged like this.

@ -164,20 +164,29 @@ class Buddy(BaseBuddy):
dbus_interface=CONNECTION) dbus_interface=CONNECTION)
self.contact_handle = handles[0] self.contact_handle = handles[0]
arg_dict = dict(reply_handler=self.__got_properties_cb,
error_handler=self.__error_handler_cb,
byte_arrays = True)
if six.PY2: if six.PY2:
arg_dict = arg_dict.update(utf8_strings=True) self._get_properties_call = bus.call_async(
connection_name,
self._get_properties_call = bus.call_async( connection.object_path,
connection_name, CONN_INTERFACE_BUDDY_INFO,
connection.object_path, 'GetProperties',
CONN_INTERFACE_BUDDY_INFO, 'u',
'GetProperties', (self.contact_handle,),
'u', reply_handler=self.__got_properties_cb,
(self.contact_handle,), error_handler=self.__error_handler_cb,
arg_dict) utf8_strings=True,
byte_arrays=True)
else:
self._get_properties_call = bus.call_async(
connection_name,
connection.object_path,
CONN_INTERFACE_BUDDY_INFO,
'GetProperties',
'u',
(self.contact_handle,),
reply_handler=self.__got_properties_cb,
error_handler=self.__error_handler_cb,
byte_arrays=True)
self._get_attributes_call = bus.call_async( self._get_attributes_call = bus.call_async(
connection_name, connection_name,

Loading…
Cancel
Save