Change image viewer launching method
authorSoonmin Jung <sm0415.jung@samsung.com>
Sat, 26 Jan 2013 04:58:19 +0000 (13:58 +0900)
committerSoonmin Jung <sm0415.jung@samsung.com>
Sat, 26 Jan 2013 04:58:19 +0000 (13:58 +0900)
Change-Id: Ic5417072942ee450becc0e446ed850925272a331

composer/include/msg-ui-composer-external.h
composer/src/external/msg-ui-composer-external.c
composer/src/ui-composer/msg-ui-composer-body-callback.c

index 09ddef1..4a5a592 100755 (executable)
@@ -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;
index f8d0224..6b41576 100755 (executable)
@@ -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;
index 1c9f78d..261650f 100755 (executable)
@@ -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);
        }