Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/presence
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2006-06-20 01:16:55 (GMT)
committer Dan Williams <dcbw@redhat.com>2006-06-20 01:16:55 (GMT)
commit6fd464be7d0bda694b961e3819e057e2f438d826 (patch)
tree709af3faf7032bb8eb3751e91598d88be59c5f78 /sugar/presence
parentf15d803cc636d6d35c7d6752337c7d98ed52a99b (diff)
Make get_activity_service() actually work
Diffstat (limited to 'sugar/presence')
-rw-r--r--sugar/presence/PresenceService.py15
1 files changed, 11 insertions, 4 deletions
diff --git a/sugar/presence/PresenceService.py b/sugar/presence/PresenceService.py
index dc563b2..554b22c 100644
--- a/sugar/presence/PresenceService.py
+++ b/sugar/presence/PresenceService.py
@@ -126,12 +126,18 @@ class PresenceService(gobject.GObject):
self._server = dbus.Interface(self._bus.get_object(avahi.DBUS_NAME,
avahi.DBUS_PATH_SERVER), avahi.DBUS_INTERFACE_SERVER)
- def get_activity_service(self, activity, stype):
+ def get_activity_service(self, activity, short_stype):
+ """Find a particular service by activity and service type."""
+ # Decompose service type if we can
+ (uid, dec_stype) = Service._decompose_service_type(short_stype)
+ if uid:
+ raise RuntimeError("Can only track plain service types!")
+
uid = activity.get_id()
if self._activity_services.has_key(uid):
services = self._activity_services[uid]
for service in services:
- if group.get_stype() == stype:
+ if service.get_type() == short_stype:
return service
return None
@@ -207,10 +213,11 @@ class PresenceService(gobject.GObject):
except KeyError:
# Should this service mark the owner?
owner_nick = env.get_nick_name()
- if name == owner_nick and service.get_address() in self._local_addrs.values():
+ publisher_addr = service.get_publisher_address()
+ if name == owner_nick and publisher_addr in self._local_addrs.values():
buddy = Buddy.Owner(service)
self._owner = buddy
- print "Set owner to %s" % name
+ logging.debug("Owner is '%s'." % name)
else:
buddy = Buddy.Buddy(service)
self._buddies[name] = buddy