diff options
author | Morgan Collett <morgan.collett@gmail.com> | 2007-10-03 19:45:41 (GMT) |
---|---|---|
committer | Morgan Collett <morgan.collett@gmail.com> | 2007-10-03 19:45:41 (GMT) |
commit | 779155590ef0a541f733b00070624493d42a0cb1 (patch) | |
tree | bea4d97840a2cbdc34b883b30eed72ad8140411e | |
parent | 61552d94b92da7f84fd7ed01ecf907df25286f14 (diff) |
Replaced _get_buddy with new sugar.presence get_buddy_by_handle
-rw-r--r-- | activity.py | 31 |
1 files changed, 6 insertions, 25 deletions
diff --git a/activity.py b/activity.py index e6c776e..26ccfa1 100644 --- a/activity.py +++ b/activity.py @@ -177,7 +177,7 @@ class HelloMeshActivity(Activity): tube_conn = TubeConnection(self.conn, self.tubes_chan[telepathy.CHANNEL_TYPE_TUBES], id, group_iface=self.text_chan[telepathy.CHANNEL_INTERFACE_GROUP]) - self.hellotube = HelloTube(tube_conn, self.initiating, self._get_buddy) + self.hellotube = HelloTube(tube_conn, self.initiating, self) def _buddy_joined_cb (self, activity, buddy): self._logger.debug('Buddy %s joined' % buddy.props.nick) @@ -185,48 +185,29 @@ class HelloMeshActivity(Activity): def _buddy_left_cb (self, activity, buddy): self._logger.debug('Buddy %s left' % buddy.props.nick) - def _get_buddy(self, cs_handle): - """Get a Buddy from a channel specific handle.""" - self._logger.debug('Trying to find owner of handle %u...', cs_handle) - group = self.text_chan[telepathy.CHANNEL_INTERFACE_GROUP] - my_csh = group.GetSelfHandle() - self._logger.debug('My handle in that group is %u', my_csh) - if my_csh == cs_handle: - handle = self.conn.GetSelfHandle() - self._logger.debug('CS handle %u belongs to me, %u', cs_handle, handle) - elif group.GetGroupFlags() & telepathy.CHANNEL_GROUP_FLAG_CHANNEL_SPECIFIC_HANDLES: - handle = group.GetHandleOwners([cs_handle])[0] - self._logger.debug('CS handle %u belongs to %u', cs_handle, handle) - else: - handle = cs_handle - logger.debug('non-CS handle %u belongs to itself', handle) - # XXX: deal with failure to get the handle owner - assert handle != 0 - return self.pservice.get_buddy_by_telepathy_handle(self.tp_conn_name, - self.tp_conn_path, handle) class HelloTube(ExportedGObject): """The bit that talks over the TUBES!!!""" - def __init__(self, tube, is_initiator, get_buddy): + def __init__(self, tube, is_initiator, activity): super(HelloTube, self).__init__(tube, PATH) self._logger = logging.getLogger('hellomesh-activity.HelloTube') self.tube = tube self.is_initiator = is_initiator + self.activity = activity # sugar.activity.Activity self.entered = False # Have we set up the tube? self.helloworld = False # Trivial "game state" - self._get_buddy = get_buddy # Converts handle to Buddy object self.tube.watch_participants(self.participant_change_cb) def participant_change_cb(self, added, removed): self._logger.debug('Adding participants: %r' % added) - self._logger.debug('Removing participants: %r' % type(removed)) + self._logger.debug('Removing participants: %r' % removed) for handle, bus_name in added: - buddy = self._get_buddy(handle) + buddy = self.activity._shared_activity.get_buddy_by_handle(handle) if buddy is not None: self._logger.debug('Buddy %s was added' % buddy.props.nick) for handle in removed: - buddy = self._get_buddy(handle) + buddy = self.activity._shared_activity.get_buddy_by_handle(handle) if buddy is not None: self._logger.debug('Buddy %s was removed' % buddy.props.nick) if not self.entered: |