diff options
Diffstat (limited to 'src/data/media.c')
-rw-r--r-- | src/data/media.c | 45 |
1 files changed, 44 insertions, 1 deletions
diff --git a/src/data/media.c b/src/data/media.c index 8cc2dce..6fdbd64 100644 --- a/src/data/media.c +++ b/src/data/media.c @@ -19,6 +19,8 @@ #include <app_contents.h> #include <app_media.h> #include <app_debug.h> +#include <bundle.h> +#include <aul.h> #include "define.h" #include "datamgr.h" @@ -218,7 +220,48 @@ static void _free_favorites(Eina_List *list) static bool _action(Elm_Object_Item *it) { - /* It should be implemented later. */ + bundle *b = NULL; + app_media *am; + app_media_info *minfo; + char *id; + int r; + + if (!it) { + _ERR("Invalid argument."); + return false; + } + + am = elm_object_item_data_get(it); + if (!am) + return false; + + minfo = app_media_get_info(am); + if (!minfo) { + _ERR("Get app_media_info failed."); + return false; + } + + id = minfo->media_id; + if (!id) + return false; + + b = bundle_create(); + if (!b) { + _ERR("Bundle create failed."); + return false; + } + + bundle_add_str(b, STR_KEY_MEDIA_ID, id); + bundle_add_str(b, STR_KEY_SENDER_ID, STR_FAVORITE); + + r = aul_launch_app(STR_MEDIAHUB_APP_ID, b); + if (r < 0) { + _ERR("Mediahub launch failed."); + bundle_free(b); + return false; + } + + bundle_free(b); return true; } |