typedef enum {
MSG_VIEWER_DEFAULT_MODE = 0,
- MSG_VIEWER_LOAD_OTHER_UG_MODE, /*launch other ug mode like calling contact ug*/
- MSG_VIEWER_LOAD_OTHER_APP_MODE, /*launch other application mode like calling voice call*/
-} MSG_VIEWER_LAUNCH_CMD_TYPE_E;
-
-typedef enum {
- MSG_VIEWER_CMD_NONE = 0,
- MSG_VIEWER_CMD_LOAD_CONTACT,
- MSG_VIEWER_CMD_LOAD_EMAIL_COMPOSER,
- MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER,
- MSG_VIEWER_CMD_LOAD_CALL,
- MSG_VIEWER_CMD_LOAD_VIDEO_CALL,
- MSG_VIEWER_CMD_LOAD_BROWSER
-} MSG_VIEWER_CMD_TYPE_E;
+ MSG_VIEWER_LOAD_CONTACT_UG, /* launching CONTACT UG */
+ MSG_VIEWER_LOAD_COMPOSER_UG, /* launching COMPOSER UG */
+ MSG_VIEWER_HIDED_BY_OTHER_WINDOW, /* launch other application like email/call/vcall/browser */
+} MSG_VIEWER_MODE_E;
typedef enum {
MSG_VIEWER_FILE_SAVE_SUCCESS = 0,
msg_struct_t msg_t;
msg_struct_t mms_t;
int msgID;
- MSG_VIEWER_LAUNCH_CMD_TYPE_E launch_cmd;
void *SmilHandle;
MSG_VIEWER_PLAY_STATUS_E status;
MSG_VIEWER_PLAY_STATUS_E previous_status;
- MSG_VIEWER_CMD_TYPE_E cmd_type;
+ MSG_VIEWER_MODE_E mode;
int font_size;
Ecore_Idler *del_idler;
/* for use volume key setting */
Ecore_Event_Handler *volkey_release_handler;
Ecore_Event_Handler *volkey_press_handler;
+ Ecore_Event_Handler *focus_in;
+ Ecore_Event_Handler *focus_out;
Ecore_Timer *vol_up_key_longpress;
Ecore_Timer *vol_down_key_longpress;
*/
MSG_SMIL_ERROR_E msg_ui_viewer_smil_cb(SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus, void *appUserData);
MSG_SMIL_ERROR_E msg_ui_viewer_set_entry_handle_cb(MSG_PLAY_DATA_S *data, void *entry);
-
+Eina_Bool msg_ui_viewer_focused_in_cb(void *data, int type, void *event);
+Eina_Bool msg_ui_viewer_focused_out_cb(void *data, int type, void *event);
Eina_Bool msg_ui_viewer_mouse_down_cb(void *data, int type, void *event);
Eina_Bool msg_ui_viewer_mouse_up_cb(void *data, int type, void *event);
void msg_ui_viewer_play_layout_mouse_down_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
}
}
+Eina_Bool msg_ui_viewer_focused_in_cb(void *data, int type, void *event)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, !viewer_play_data, EINA_FALSE, "viewer_play_data is NULL!");
+
+ Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event;
+
+ if (viewer_play_data->main_window != NULL && ev->win == elm_win_xwindow_get(viewer_play_data->main_window)) {
+ if (!viewer_play_data->popup)
+ msg_ui_viewer_connect_handler(viewer_play_data);
+
+ if (viewer_play_data->mode == MSG_VIEWER_HIDED_BY_OTHER_WINDOW) {
+ /*reset viewer mode*/
+ viewer_play_data->mode = MSG_VIEWER_DEFAULT_MODE;
+ }
+ }
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+Eina_Bool msg_ui_viewer_focused_out_cb(void *data, int type, void *event)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ MSG_UI_RETVM_IF(MSG_UI_LEVEL_ERR, !viewer_play_data, EINA_FALSE, "viewer_play_data is NULL!");
+
+ Ecore_X_Event_Window_Focus_Out *ev = (Ecore_X_Event_Window_Focus_Out *)event;
+
+ if ((viewer_play_data->main_window != NULL) && (ev->win == elm_win_xwindow_get(viewer_play_data->main_window))) {
+ msg_ui_viewer_disconnect_handler(viewer_play_data);
+ viewer_play_data->mode = MSG_VIEWER_HIDED_BY_OTHER_WINDOW;
+ }
+
+ return ECORE_CALLBACK_PASS_ON;
+}
+
+
MSG_SMIL_ERROR_E msg_ui_viewer_set_entry_handle_cb(MSG_PLAY_DATA_S *data, void *entry)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->launch_cmd : %d", viewer_play_data->launch_cmd);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->mode : %d", viewer_play_data->mode);
/*prevent invalid double pressing button event after launching ug or app(like call, vtcall)*/
- if (viewer_play_data->launch_cmd != MSG_VIEWER_DEFAULT_MODE)
+ if (viewer_play_data->mode != MSG_VIEWER_DEFAULT_MODE)
return;
if (viewer_play_data->title_menu_opened)
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER;
+ viewer_play_data->mode = MSG_VIEWER_LOAD_COMPOSER_UG;
}
service_destroy(svc_handle);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER;
+ viewer_play_data->mode = MSG_VIEWER_LOAD_COMPOSER_UG;
}
service_destroy(svc_handle);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, viewer_play_data->msg_t == NULL);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, viewer_play_data->mms_t == NULL);
- service_error_e svc_err = SERVICE_ERROR_NONE;
+ service_error_e err = SERVICE_ERROR_NONE;
msg_struct_list_s *addr_list = NULL;
msg_get_list_handle(viewer_play_data->msg_t, MSG_MESSAGE_ADDR_LIST_STRUCT, (void **)&addr_list);
memcpy(address, szAddress, strlen(szAddress));
- svc_err = service_create(&svc_handle);
- if (svc_err != SERVICE_ERROR_NONE || svc_handle == NULL) {
+ err = service_create(&svc_handle);
+ if (err != SERVICE_ERROR_NONE || svc_handle == NULL) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_create is failed");
free(address);
return;
Ecore_X_Window win_id = elm_win_xwindow_get(viewer_play_data->main_window);
service_set_window(svc_handle, win_id);
- svc_err = service_send_launch_request(svc_handle, NULL, NULL);
-
- if (svc_err == SERVICE_ERROR_NONE) {
- msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_APP_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_EMAIL_COMPOSER;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", svc_err);
+ if ((err = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed, err = %d", err);
}
free(address);
if (addr_count == 1) {
char telnum[255] = {0,};
- int ret = 0;
+ int err = 0;
service_h svc_handle = NULL;
service_create(&svc_handle);
return;
}
- if ((ret = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "service_send_launch_request failed ret : %d", ret);
- } else {
- msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_APP_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CALL;
+ if ((err = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "service_send_launch_request failed, err = %d", err);
}
+
service_destroy(svc_handle);
}
service_set_operation(svc_handle, "http://tizen.org/appcontrol/operation/vt");
service_set_uri(svc_handle, telnum);
service_add_extra_data(svc_handle, "ctindex", contact_id);
- err = service_send_launch_request(svc_handle, NULL, NULL);
-
- if (err == SERVICE_ERROR_NONE) {
- msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_APP_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_VIDEO_CALL;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", err);
+ if ((err = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed, err = %d", err);
}
service_destroy(svc_handle);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CONTACT;
+ viewer_play_data->mode = MSG_VIEWER_LOAD_CONTACT_UG;
}
service_destroy(svc_handle);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CONTACT;
+ viewer_play_data->mode = MSG_VIEWER_LOAD_CONTACT_UG;
}
service_destroy(svc_handle);
if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_BODY_CALL")) == 0) {
char telnum[255] = {0,};
- int ret = 0;
+ int err = 0;
service_h svc_handle = NULL;
service_create(&svc_handle);
service_set_operation(svc_handle, SERVICE_OPERATION_CALL);
snprintf(telnum, sizeof(telnum), "tel:%s", addrInfo->address); /* Number to make a call */
service_set_uri(svc_handle, telnum);
- if ((ret = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "appsvc_run_service failed ret : %d", ret);
- } else {
- msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_APP_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CALL;
+ if ((err = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "appsvc_run_service failed, err = %d", err);
}
service_destroy(svc_handle);
service_set_operation(svc_handle, "http://tizen.org/appcontrol/operation/vt");
service_set_uri(svc_handle, telnum);
service_add_extra_data(svc_handle, "ctindex", contact_id);
- err = service_send_launch_request(svc_handle, NULL, NULL);
-
- if (err == SERVICE_ERROR_NONE) {
- msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_APP_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_VIDEO_CALL;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", err);
+ if ((err = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed, err = %d", err);
}
service_destroy(svc_handle);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CONTACT;
+ viewer_play_data->mode = MSG_VIEWER_LOAD_CONTACT_UG;
}
service_destroy(svc_handle);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CONTACT;
+ viewer_play_data->mode = MSG_VIEWER_LOAD_CONTACT_UG;
}
service_destroy(svc_handle);
} else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SEND_EMAIL")) == 0) {
service_h svc_handle = NULL;
- service_error_e svc_err = SERVICE_ERROR_NONE;
+ service_error_e err = SERVICE_ERROR_NONE;
service_create(&svc_handle);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
Ecore_X_Window win_id = elm_win_xwindow_get(viewer_play_data->main_window);
service_set_window(svc_handle, win_id);
- svc_err = service_send_launch_request(svc_handle, NULL, NULL);
-
- if (svc_err == SERVICE_ERROR_NONE) {
- msg_ui_viewer_disconnect_handler(viewer_play_data);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_APP_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_EMAIL_COMPOSER;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", svc_err);
+ if ((err = service_send_launch_request(svc_handle, NULL, NULL)) != SERVICE_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed, err = %d", err);
}
service_destroy(svc_handle);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->status : %d", viewer_play_data->status);
/*prevent invalid double pressing button event after launching ug or app( call, vtcall)*/
- if (viewer_play_data->launch_cmd != MSG_VIEWER_DEFAULT_MODE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "launch_cmd is not MSG_VIEWER_DEFAULT_MODE (%d)", viewer_play_data->launch_cmd);
+ if (viewer_play_data->mode != MSG_VIEWER_DEFAULT_MODE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PLAYER view is not MSG_VIEWER_DEFAULT_MODE (%d)", viewer_play_data->mode);
return FALSE;
}
viewer_play_data->mouse_up_event_handler = NULL;
viewer_play_data->msgHandle = NULL;
viewer_play_data->msgID = -1;
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
+ viewer_play_data->mode = MSG_VIEWER_DEFAULT_MODE;
viewer_play_data->status = MSG_VIEWER_UNKOWN;
viewer_play_data->msg_t = NULL;
viewer_play_data->mms_t = NULL;
viewer_play_data->smil_eventStatus = NULL;
viewer_play_data->popup = NULL;
viewer_play_data->popup_type = MSG_VIEWER_POPUP_NONE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
viewer_play_data->del_idler = NULL;
viewer_play_data->play_controller_timer = NULL;
viewer_play_data->ctrl_start_x = 0;
viewer_play_data->vol_down_key_longpress = NULL;
}
+ if (viewer_play_data->focus_in) {
+ ecore_event_handler_del(viewer_play_data->focus_in);
+ viewer_play_data->focus_in = NULL;
+ }
+
+ if (viewer_play_data->focus_out) {
+ ecore_event_handler_del(viewer_play_data->focus_out);
+ viewer_play_data->focus_out = NULL;
+ }
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
/* connect handlers */
msg_ui_viewer_connect_handler(viewer_play_data);
+ /* for checking focus */
+ viewer_play_data->focus_in = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_IN, msg_ui_viewer_focused_in_cb, viewer_play_data);
+ viewer_play_data->focus_out = ecore_event_handler_add(ECORE_X_EVENT_WINDOW_FOCUS_OUT, msg_ui_viewer_focused_out_cb, viewer_play_data);
+
/* create smil rendering layout */
if (msg_smil_create_smil_player_layout(viewer_play_data->SmilHandle, viewer_play_data->play_layout) == FALSE)
return FALSE;
service_set_uri(svc_handle, pAttach_info->pfile_path);
err = service_send_launch_request(svc_handle, NULL, NULL);
- if ( err == SERVICE_ERROR_NONE) {
+ if (err == SERVICE_ERROR_NONE) {
if (pAttach_info->viewer_play_data) {
/* set player state to pause and update icon */
if (!msg_ui_viewer_command_play_pause(pAttach_info->viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
}
}
} else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed, err = %d", err);
}
service_destroy(svc_handle);