Add get_bundle method to activity.py

When a programmer need open one activity from other [1]
usually need display in the user interface information about the activity
to open, like the name or the icon.
This method allow get this information, previously only available on jarabe.

[1] http://wiki.sugarlabs.org/go/Features/Start_activity_from_another_activity
This commit is contained in:
Gonzalo Odiard 2015-07-02 16:07:23 -03:00
parent 797130baed
commit 04d8f596bc

View File

@ -83,6 +83,7 @@ from sugar3.graphics.alert import Alert
from sugar3.graphics.icon import Icon from sugar3.graphics.icon import Icon
from sugar3.datastore import datastore from sugar3.datastore import datastore
from sugar3.bundle.activitybundle import get_bundle_instance from sugar3.bundle.activitybundle import get_bundle_instance
from sugar3.bundle.helpers import bundle_from_dir
from gi.repository import SugarExt from gi.repository import SugarExt
_ = lambda msg: gettext.dgettext('sugar-toolkit-gtk3', msg) _ = lambda msg: gettext.dgettext('sugar-toolkit-gtk3', msg)
@ -1166,3 +1167,14 @@ def launch_bundle(bundle_id='', object_id=''):
obj = bus.get_object(J_DBUS_SERVICE, J_DBUS_PATH) obj = bus.get_object(J_DBUS_SERVICE, J_DBUS_PATH)
bundle_launcher = dbus.Interface(obj, J_DBUS_INTERFACE) bundle_launcher = dbus.Interface(obj, J_DBUS_INTERFACE)
return bundle_launcher.LaunchBundle(bundle_id, object_id) return bundle_launcher.LaunchBundle(bundle_id, object_id)
def get_bundle(bundle_id='', object_id=''):
bus = dbus.SessionBus()
obj = bus.get_object(J_DBUS_SERVICE, J_DBUS_PATH)
journal = dbus.Interface(obj, J_DBUS_INTERFACE)
bundle_path = journal.GetBundlePath(bundle_id, object_id)
if bundle_path:
return bundle_from_dir(bundle_path)
else:
return None