diff --git a/bin/sugar-activity b/bin/sugar-activity index 9a970904..3e9c1c5a 100755 --- a/bin/sugar-activity +++ b/bin/sugar-activity @@ -20,7 +20,7 @@ import sys import os from ConfigParser import ConfigParser -from sugar.activity import ActivityRegistry +from sugar import activity from sugar import env # Setup the environment so that we run inside the Sugar shell @@ -51,8 +51,7 @@ def print_help(self): activity_info = None if len(sys.argv) > 1: - registry = ActivityRegistry() - activities = registry.find_activity(sys.argv[1]) + activities = activity.get_registry().find_activity(sys.argv[1]) if len(activities) > 0: activity_info = activities[0] diff --git a/sugar/activity/__init__.py b/sugar/activity/__init__.py index 89bd1c3f..261b3881 100644 --- a/sugar/activity/__init__.py +++ b/sugar/activity/__init__.py @@ -36,4 +36,6 @@ class. This class allows for querying the ID of the root window, requesting sharing across the network, and basic "what type of application are you" queries. """ - +from sugar.activity.registry import ActivityRegistry +from sugar.activity.registry import get_registry +from sugar.activity.registry import ActivityInfo diff --git a/sugar/activity/registry.py b/sugar/activity/registry.py index 7e307b80..79d64031 100644 --- a/sugar/activity/registry.py +++ b/sugar/activity/registry.py @@ -58,7 +58,10 @@ class ActivityRegistry(object): info_list = self._registry.GetActivitiesForType(mime_type) return self._convert_info_list(info_list) -_registry = ActivityRegistry() +_registry = None def get_registry(): + global _registry + if not _registry: + _registry = ActivityRegistry() return _registry diff --git a/sugar/objects/objecttype.py b/sugar/objects/objecttype.py index b515bd13..20e6e114 100644 --- a/sugar/objects/objecttype.py +++ b/sugar/objects/objecttype.py @@ -49,7 +49,10 @@ class ObjectTypeRegistry(object): type_dict = self._registry.GetTypeForMIME(mime_type) return _object_type_from_dict(type_dict) -_registry = ObjectTypeRegistry() +_registry = None def get_registry(): + global _registry + if not _registry: + _registry = ObjectTypeRegistry() return _registry