Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/sugar/activity/activityhandle.py
diff options
context:
space:
mode:
Diffstat (limited to 'sugar/activity/activityhandle.py')
-rw-r--r--sugar/activity/activityhandle.py58
1 files changed, 46 insertions, 12 deletions
diff --git a/sugar/activity/activityhandle.py b/sugar/activity/activityhandle.py
index fee6327..c87fb6b 100644
--- a/sugar/activity/activityhandle.py
+++ b/sugar/activity/activityhandle.py
@@ -18,13 +18,47 @@
from sugar.presence import presenceservice
class ActivityHandle(object):
- def __init__(self, activity_id):
+ """Data structure storing simple activity metadata"""
+ def __init__(
+ self, activity_id, pservice_id=None,
+ object_id=None,uri=None
+ ):
+ """Initialise the handle from activity_id
+
+ activity_id -- unique id for the activity to be
+ created
+ pservice_id -- identity of the sharing service
+ for this activity in the PresenceService
+ object_id -- identity of the journal object
+ associated with the activity. It was used by
+ the journal prototype implementation, might
+ change when we do the real one.
+
+ When you resume an activity from the journal
+ the object_id will be passed in. It's optional
+ since new activities does not have an
+ associated object (yet).
+
+ XXX Not clear how this relates to the activity
+ id yet, i.e. not sure we really need both. TBF
+ uri -- URI associated with the activity. Used when
+ opening an external file or resource in the
+ activity, rather than a journal object
+ (downloads stored on the file system for
+ example or web pages)
+ """
self.activity_id = activity_id
- self.pservice_id = None
- self.object_id = None
- self.uri = None
+ self.pservice_id = pservice_id
+ self.object_id = object_id
+ self.uri = uri
def get_presence_service(self):
+ """Retrieve the "sharing service" for this activity
+
+ Uses the PresenceService to find any existing dbus
+ service which provides sharing mechanisms for this
+ activity.
+ """
if self.pservice_id:
pservice = presenceservice.get_instance()
return pservice.get_activity(self.pservice_id)
@@ -32,6 +66,7 @@ class ActivityHandle(object):
return None
def get_dict(self):
+ """Retrieve our settings as a dictionary"""
result = { 'activity_id' : self.activity_id }
if self.pservice_id:
result['pservice_id'] = self.pservice_id
@@ -43,12 +78,11 @@ class ActivityHandle(object):
return result
def create_from_dict(handle_dict):
- result = ActivityHandle(handle_dict['activity_id'])
- if handle_dict.has_key('pservice_id'):
- result.pservice_id = handle_dict['pservice_id']
- if handle_dict.has_key('object_id'):
- result.object_id = handle_dict['object_id']
- if handle_dict.has_key('uri'):
- result.uri = handle_dict['uri']
-
+ """Create a handle from a dictionary of parameters"""
+ result = ActivityHandle(
+ handle_dict['activity_id'],
+ pservice_id = handle_dict.get( 'pservice_id' ),
+ object_id = handle_dict.get('object_id'),
+ uri = handle_dict.get('uri'),
+ )
return result