From 6fd464be7d0bda694b961e3819e057e2f438d826 Mon Sep 17 00:00:00 2001 From: Dan Williams Date: Tue, 20 Jun 2006 01:16:55 +0000 Subject: Make get_activity_service() actually work --- (limited to 'sugar/presence') 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 -- cgit v0.9.1