diff options
Diffstat (limited to 'src/main.c')
-rw-r--r-- | src/main.c | 78 |
1 files changed, 59 insertions, 19 deletions
@@ -126,13 +126,28 @@ static void _terminate(void *data) } } +static void _open_media_file(char *media_type, char *media_file_path) +{ + if (strcmp(media_type, "Image") == 0) { + viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT_WITH_MEDIA_ID, media_file_path); + viewmgr_push_view(VIEW_VIEWER); + } else if (strcmp(media_type, "Video") == 0) { + viewmgr_update_view(VIEW_VIEWER, UPDATE_CONTENT_WITH_MEDIA_ID, media_file_path); + viewmgr_push_view(VIEW_VIEWER); + } else if (strcmp(media_type, "Audio") == 0) { + viewmgr_update_view(VIEW_MPLAYER, UPDATE_CONTENT_WITH_MEDIA_ID, media_file_path); + viewmgr_push_view(VIEW_MPLAYER); + } +} + static void _app_control(app_control_h app_control, void *data) { struct _appdata *ad; - char *media_id; - char *caller_id; + char *media_id = NULL; + char *caller_id = NULL; int r; + if (!data) { _ERR("failed to get data"); return; @@ -147,27 +162,52 @@ static void _app_control(app_control_h app_control, void *data) if (r != APP_CONTROL_ERROR_NONE) caller_id = NULL; - r = app_control_get_extra_data(app_control, PARAM_MEDIA_ID, &media_id); - if (r != APP_CONTROL_ERROR_NONE) - media_id = NULL; - - if (media_id && caller_id) { - if (!strcmp(caller_id, APP_ID_FAVORITE)) { - while (viewmgr_active_view_count() > 0) - viewmgr_pop_view(); - viewmgr_update_view(VIEW_BASE, - UPDATE_FAVORITE, media_id); - } else if (!strcmp(caller_id, APP_ID_RECENT)) { + if (caller_id == NULL) { + r = app_control_get_extra_data(app_control, PARAM_MEDIA_ID, &media_id); + if (r != APP_CONTROL_ERROR_NONE) + media_id = NULL; + + if (media_id && caller_id) { + if (!strcmp(caller_id, APP_ID_FAVORITE)) { + while (viewmgr_active_view_count() > 0) + viewmgr_pop_view(); + + viewmgr_update_view(VIEW_BASE, + UPDATE_FAVORITE, media_id); + } else if (!strcmp(caller_id, APP_ID_RECENT)) { + viewmgr_push_view(VIEW_BASE); + viewmgr_update_view(VIEW_BASE, + UPDATE_RECENT, media_id); + } + } else { viewmgr_push_view(VIEW_BASE); - viewmgr_update_view(VIEW_BASE, - UPDATE_RECENT, media_id); + viewmgr_update_view(VIEW_BASE, UPDATE_RECENT, media_id); } - } else - viewmgr_push_view(VIEW_BASE); - free(media_id); - free(caller_id); + } else if (strcmp("org.tizen.myfiles", caller_id) == 0) { + char *file_path = NULL; + char *media_type = NULL; + + app_control_get_extra_data(app_control, "Path", &file_path); + app_control_get_extra_data(app_control, "Media type", &media_type); + + if (file_path == NULL) { + _DBG("file_path is NULL"); + app_control_get_uri(app_control, &file_path); + } + + if (file_path != NULL) { + if (media_type != NULL) { + _open_media_file(media_type, file_path); + } + } + } + if (media_id) + free(media_id); + if (caller_id) + free(caller_id); + } static void _pause(void *data) |