From 88e931896bc217f55a0698ea155bd94342f3ae1b Mon Sep 17 00:00:00 2001 From: Soonmin Jung Date: Sat, 26 Jan 2013 13:58:19 +0900 Subject: [PATCH] Change image viewer launching method Change-Id: Ic5417072942ee450becc0e446ed850925272a331 --- composer/include/msg-ui-composer-external.h | 1 + composer/src/external/msg-ui-composer-external.c | 34 ++++++++++++++++++++++ .../ui-composer/msg-ui-composer-body-callback.c | 12 ++++++-- 3 files changed, 44 insertions(+), 3 deletions(-) diff --git a/composer/include/msg-ui-composer-external.h b/composer/include/msg-ui-composer-external.h index 09ddef1..4a5a592 100755 --- a/composer/include/msg-ui-composer-external.h +++ b/composer/include/msg-ui-composer-external.h @@ -43,6 +43,7 @@ typedef enum { COMPOSER_EXT_TYPE_MSGVIEWER, COMPOSER_EXT_TYPE_CONTACT_PHONEUI, COMPOSER_EXT_TYPE_SOUND, + COMPOSER_EXT_TYPE_IMAGE, COMPOSER_EXT_TYPE_COMMON, COMPOSER_EXT_TYPE_MAX = 0xff, } COMPOSER_EXT_TYPE_E; diff --git a/composer/src/external/msg-ui-composer-external.c b/composer/src/external/msg-ui-composer-external.c index f8d0224..6b41576 100755 --- a/composer/src/external/msg-ui-composer-external.c +++ b/composer/src/external/msg-ui-composer-external.c @@ -1131,6 +1131,35 @@ int appsvc_play_music_player(void *data, const char *file_path) return COMPOSER_RETURN_SUCCESS; } +int appsvc_image_viewer(void *data, const char *file_path) +{ + D_ENTER; + + int ret; + service_h svc_handle = NULL; + + if (service_create(&svc_handle) < 0 || svc_handle == NULL) { + D_EMSG("service_create() is failed !!"); + return COMPOSER_RETURN_FAIL; + } + + service_set_operation(svc_handle, SERVICE_OPERATION_VIEW); + service_set_uri(svc_handle, file_path); + service_add_extra_data(svc_handle, "View Mode", "DISPLAY"); + + ret = service_send_launch_request(svc_handle, NULL, NULL); + if (ret != SERVICE_ERROR_NONE) { + D_EMSG("service_send_launch_request is failed ret = %d", ret); + service_destroy(svc_handle); + return COMPOSER_RETURN_FAIL; + } + + service_destroy(svc_handle); + + D_LEAVE; + return COMPOSER_RETURN_SUCCESS; +} + int appsvc_launch_app(const char *uri) { D_ENTER; @@ -1238,6 +1267,10 @@ COMPOSER_RETURN_TYPE_E msg_ui_composer_external_appsvc_call(MSG_COMPOSER_VIEW_DA ret = appsvc_play_music_player(cd, reserved); break; + case COMPOSER_EXT_TYPE_IMAGE: + ret = appsvc_image_viewer(cd, reserved); + break; + case COMPOSER_EXT_TYPE_COMMON: ret = appsvc_launch_app(reserved); break; @@ -1278,6 +1311,7 @@ COMPOSER_RETURN_TYPE_E msg_ui_composer_external_call(MSG_COMPOSER_VIEW_DATA_S *c case COMPOSER_EXT_TYPE_CAMERA: case COMPOSER_EXT_TYPE_CAMCORDER: case COMPOSER_EXT_TYPE_SOUND: + case COMPOSER_EXT_TYPE_IMAGE: case COMPOSER_EXT_TYPE_COMMON: ret = msg_ui_composer_external_appsvc_call(cd, ext_type, reserved); break; diff --git a/composer/src/ui-composer/msg-ui-composer-body-callback.c b/composer/src/ui-composer/msg-ui-composer-body-callback.c index 1c9f78d..261650f 100755 --- a/composer/src/ui-composer/msg-ui-composer-body-callback.c +++ b/composer/src/ui-composer/msg-ui-composer-body-callback.c @@ -862,7 +862,6 @@ static void __msg_ui_composer_body_launch_media_item(void *data, Evas_Object *ob int page_count = body_data->page_count; int i = 0; char file_path[COMPOSER_FILEPATH_LEN_MAX + 1] = {0, }; - bool is_sound = false; layout = evas_object_data_get(obj, "layout"); @@ -881,7 +880,6 @@ static void __msg_ui_composer_body_launch_media_item(void *data, Evas_Object *ob if (page_data->sound_item == layout) { strncpy(file_path, page_data->sound_file_path, COMPOSER_FILEPATH_LEN_MAX); - is_sound = true; break; } else if (page_data->image_item == layout) { strncpy(file_path, page_data->image_file_path, COMPOSER_FILEPATH_LEN_MAX); @@ -891,9 +889,17 @@ static void __msg_ui_composer_body_launch_media_item(void *data, Evas_Object *ob if (file_path[0] != '\0') { COMPOSER_EXT_TYPE_E type = COMPOSER_EXT_TYPE_COMMON; + COMPOSER_MEDIA_TYPE_E media_type = msg_composer_get_media_type(file_path); - if (is_sound) + if (media_type == COMPOSER_MEDIA_TYPE_IMAGE) { + type = COMPOSER_EXT_TYPE_IMAGE; + } else if (media_type == COMPOSER_MEDIA_TYPE_VIDEO) { + type = COMPOSER_EXT_TYPE_COMMON; + } else if (media_type == COMPOSER_MEDIA_TYPE_AUDIO) { type = COMPOSER_EXT_TYPE_SOUND; + } else { + type = COMPOSER_EXT_TYPE_COMMON; + } msg_ui_composer_external_call(cd, type, file_path); } -- 2.7.4