Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDan Williams <dcbw@localhost.localdomain>2006-12-19 22:50:13 (GMT)
committer Dan Williams <dcbw@localhost.localdomain>2006-12-19 22:50:13 (GMT)
commit5aedeae62f1ca23e4c1a6954d973c8015783bea1 (patch)
treee413754b7b09d04c3ecab6b0e938447fb448b8ba /services
parentf63456c0893884ad3a9a998ebbddcb0cd6a04139 (diff)
Validate colors; ensure that Owner's color is a string
Diffstat (limited to 'services')
-rw-r--r--services/presence/Buddy.py11
1 files changed, 7 insertions, 4 deletions
diff --git a/services/presence/Buddy.py b/services/presence/Buddy.py
index 31d8fe1..0864bb4 100644
--- a/services/presence/Buddy.py
+++ b/services/presence/Buddy.py
@@ -20,6 +20,7 @@ import logging
import gobject
import dbus, dbus.service
from sugar import profile
+from sugar.graphics import iconcolor
PRESENCE_SERVICE_TYPE = "_presence_olpc._tcp"
@@ -123,7 +124,7 @@ class BuddyDBusHelper(dbus.service.Object):
props['owner'] = self._parent.is_owner()
color = self._parent.get_color()
if color:
- props[_BUDDY_KEY_COLOR] = self._parent.get_color()
+ props[_BUDDY_KEY_COLOR] = color
return props
@dbus.service.method(BUDDY_DBUS_INTERFACE,
@@ -259,7 +260,9 @@ class Buddy(object):
# service has been found and resolved
self._valid = True
self._get_buddy_icon(service)
- self._color = service.get_one_property(_BUDDY_KEY_COLOR)
+ color = service.get_one_property(_BUDDY_KEY_COLOR)
+ if iconcolor.is_valid(color):
+ self._color = color
self._current_activity = service.get_one_property(_BUDDY_KEY_CURACT)
# Monitor further buddy property changes, like current activity
# and color
@@ -273,7 +276,7 @@ class Buddy(object):
def __buddy_presence_service_property_changed_cb(self, service, keys):
if _BUDDY_KEY_COLOR in keys:
new_color = service.get_one_property(_BUDDY_KEY_COLOR)
- if new_color and self._color != new_color:
+ if new_color and self._color != new_color and iconcolor.is_valid(new_color):
self._color = new_color
self._dbus_helper.PropertyChanged([_BUDDY_KEY_COLOR])
if _BUDDY_KEY_CURACT in keys:
@@ -426,7 +429,7 @@ class Owner(Buddy):
def __init__(self, ps, bus_name, object_id, icon_cache):
Buddy.__init__(self, bus_name, object_id, None, icon_cache)
self._nick_name = profile.get_nick_name()
- self._color = profile.get_color()
+ self._color = profile.get_color().to_string()
self._ps = ps
def add_service(self, service):