./src/msg-ui-viewer-drm-utility.c
./src/msg-ui-viewer-play-view.c
./src/msg-ui-viewer-play-view-callback.c
- ./src/msg-ui-viewer-item-list.c
./src/msg-ui-viewer-utility.c
./smil-player/src/msg-smil-player.c
./smil-player/src/msg-smil-content-manager.c
ADD_DEFINITIONS("-DSLP_PROF")
ADD_CUSTOM_TARGET(${MSG_VIEWER}.edj
- COMMAND edje_cc -id
- ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
- ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edc ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edj
- DEPENDS ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edc
+ COMMAND edje_cc -id
+ ${CMAKE_SOURCE_COMMON_DIR}/data/edc_image
+ ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edc ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edj
+ DEPENDS ${CMAKE_SOURCE_VIEWER_DIR}/theme/${MSG_VIEWER}.edc
)
ADD_LIBRARY(${PROJECT_NAME} SHARED ${VIEWER_SRCS})
+++ /dev/null
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef __MSG_VIEWER_ITEM_LIST_H__
-#define __MSG_VIEWER_ITEM_LIST_H__
-/*==================================================================================================
- * INCLUDE HEADERS
- *==================================================================================================*/
-#include <msg.h>
-#include "msg-ui-viewer-types.h"
-
-#include <Ecore.h>
-#include <Elementary.h>
-#include <ui-gadget-module.h>
-
-/*==================================================================================================
- * DEFINITIONS
- *==================================================================================================*/
-#define MSG_MAX_GROUP_LABEL 2
-#define MSG_BUFFER_SIZE_64 64
-/*==================================================================================================
- * ENUMERATIONS
- *==================================================================================================*/
-typedef enum {
- MSG_MEDIA_INVALID = 0,
- MSG_MEDIA_IMG,
- MSG_MEDIA_AUDIO,
- MSG_MEDIA_VIDEO,
- MSG_MEDIA_TEXT,
- MSG_MEDIA_ANIMATE,
- MSG_MEDIA_IMG_OR_VIDEO,
- MSG_MEDIA_ATTACH, /*for attachment*/
- MSG_MEDIA_DRM, /*for DRM content*/
-} MSG_MEDIA_TYPE_E;
-
-typedef enum {
- ITEM_LIST_INFO_INVALID = 0,
- ITEM_LIST_INFO_INSERT_FILE,
- ITEM_LIST_INFO_ATTACH_FILE,
-} MSG_ITEM_LIST_INFO_E;
-
-/*==================================================================================================
- * STRUCTURES
- *==================================================================================================*/
-typedef struct {
- int index;
- char *group_label;
-} MSG_GROUP_LABEL_S;
-
-typedef struct {
- void *viewer_main;
- Evas_Object *main_window;
- Evas_Object *navi_frame;
- Evas_Object *popup;
- Evas_Object *genlist;
-
- msg_handle_t msgHandle; /*ipc handler between viewer and MF*/
- msg_message_id_t msgID;
- msg_struct_t mms_t;
-
- int insert_item_count; /*inserted content's count, image, sound, video and etc.*/
- int attach_item_count;
- Eina_List *insert_list;
- Eina_List *attach_list;
-
- Elm_Object_Item *group_item_class;
- Elm_Genlist_Item_Class item_class;
- Elm_Genlist_Item_Class title_class;
-
- MSG_GROUP_LABEL_S group_list[MSG_MAX_GROUP_LABEL];
-} MSG_ITEM_LIST_DATA_S;
-
-typedef struct {
- char pfile_name[MSG_VIEWER_FILENAME_MAX_LEN + 1];
- char pfile_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1];
- MSG_MEDIA_TYPE_E emedia_type;
- MSG_ITEM_LIST_DATA_S *item_list_data;
-} MSG_MEDIA_INFO_S;
-
-/*==================================================================================================
- * FUNCTION DECLARATIONS
- *==================================================================================================*/
-void msg_ui_viewer_init_item_list(void *data);
-MSG_BOOL msg_ui_viewer_create_item_list_view(void *data);
-void msg_ui_viewer_destroy_item_list(void *data);
-
-#endif
-
#include "msg-ui-viewer-types.h"
#include "msg-ui-util.h"
-#include "msg-ui-viewer-item-list.h"
#include "msg-ui-viewer-drm-list.h"
#include "msg-ui-viewer-play-view.h"
/*==================================================================================================
* DEFINITIONS
*==================================================================================================*/
-#define MSG_VIEWER_THEME EDJDIR"/msg_viewer.edj"
-
/*View control CMD defines*/
#define MSG_VIEWER_VIEW_CMD_NONE 0
#define MSG_VIEWER_VIEW_CMD_PLAY 0x01
typedef enum {
MSG_VIEWER_PLAYER_VIEW,
MSG_VIEWER_DRM_LIST_VIEW,
- MSG_VIEWER_ITEM_LIST_VIEW
} MSG_VIEWER_VIEW_MODE_E;
typedef enum {
} MSG_UG_LAUNCH_MODE_E;
typedef enum {
- MSG_VIEWER_FULLVIEW_MODE = 0, /*full view mode include item list*/
+ MSG_VIEWER_FULLVIEW_MODE = 0, /*full view mode*/
MSG_VIEWER_PREVIEW_MODE, /*preview mode from composer*/
MSG_VIEWER_INVALID_MODE,
} MSG_VIEWER_LAUNCH_VIEW_MODE_E;
MSG_VIEWER_VIEW_MODE_E view_mode;
MSG_DRM_LIST_DATA_S *drm_list_view;
- MSG_ITEM_LIST_DATA_S *item_list_view;
MSG_PLAY_DATA_S *player_view;
+ bool msg_box_viewer; /* TRUE if viewer is launched from message box */
+
Ecore_Idler *del_idler;
Eina_List* drm_list;/*set invalid ro drm content*/
} MSG_VIEWER_MAIN_DATA_S;
Evas_Object *msg_ui_viewer_get_bg_layout(void *data);
Evas_Object *msg_ui_viewer_create_bg(void *data, Evas_Object *parent);
-Evas_Object *msg_ui_viewer_create_layout_main(Evas_Object *parent);
+Evas_Object *msg_ui_viewer_create_layout_main(Evas_Object *parent, bool indicator);
/* VIEWER CALLBACK */
Eina_Bool msg_ui_viewer_ug_quit(void *data);
void msg_ui_viewer_layout_cb(ui_gadget_h ug, enum ug_mode mode, void *priv);
/*==================================================================================================
* DEFINITIONS
*==================================================================================================*/
+#define VIEWER_BUFFER_SIZE_64 64
#define VIEWER_TITLE_MENU_GENLIST_MAX_ITEM 3
#define VIEWER_TITLE_MENU_LINE_HEIGHT 129
-#define VIEWER_ATTACH_GL_ITEM_HEIGHT 114
-#define VIEWER_ATTACH_POPUP_WIDTH 620
+#define VIEWER_ATTACH_GL_ITEM_HEIGHT 112
#define VIEWER_TITLE_FONT_LEN 100
-#define VIEWER_TITLE_FONT_STYLE_LEN 60
-#define VIEWER_SUBJECT_MAX_LEN 40
-#define VIEWER_SUBJECT_LINE_WRAP_LENGTH 560
-#define VIEWER_NAVI_FRAME_HEIGHT 98
-#define VIEWER_PAGE_NAVI_ICON_WIDTH 38
-#define VIEWER_PAGE_NAVI_ICON_HEIGHT 38
-#define VIEWER_COLOR_128 128
-#define VIEWER_COLOR_255 255
+#define VIEWER_NAVI_FRAME_HEIGHT 98
+#define VIEWER_NAVIFRAME_BOTTOM_H 114
#define VIEWER_PLAY_CONTROLLER_LIFETIME 3
#define VIEWER_PLAY_CONTROLLER_PROGRESSBAR_TIME 1
-#define VIEWER_PLAY_CONTROLLER_HEIGHT 120
-#define VIEWER_NAVIFRAME_BOTTOM_H 114
+#define VIEWER_PLAY_CONTROLLER_HEIGHT 218
#define VIEWER_DETAILS_TEXT_SPACE " "
#define VIEWER_DETAILS_TEXT_COMMA ", "
#define VIEWER_DETAILS_TEXT_DASH " - "
+#define VIEWER_DETAILS_TEXT_COLLON " : "
#define VIEWER_DETAILS_TEXT_LEFT_BRACE "("
#define VIEWER_DETAILS_TEXT_RIGHT_BRACE ")"
-#define VIEWER_DETAILS_TEXT_LINE_FEED "<br>"
+#define VIEWER_DETAILS_TEXT_NEW_LINE "<br>"
#define VIEWER_DETAILS_TEXT_MSG_SIZE_KB 1024
#define MSG_VIEWER_EDJ EDJDIR"/msg_viewer.edj"
} MSG_VIEWER_PLAY_STATUS_E;
typedef enum {
+ MSG_VIEWER_ACTION_NONE = 0,
+ MSG_VIEWER_ACTION_TOOLBAR_PLAY, /* action tapping play button in play toolbar */
+ MSG_VIEWER_ACTION_TOOLBAR_PAUSE, /* action tapping pause button in play toolbar */
+ MSG_VIEWER_ACTION_AUTO_PLAY, /* action auto play by related UX flow */
+ MSG_VIEWER_ACTION_AUTO_PAUSE, /* action auto pause by related UX flow */
+} MSG_VIEWER_ACTION_TYPE_E;
+
+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*/
typedef enum {
MSG_VIEWER_CMD_NONE = 0,
- MSG_VIEWER_CMD_LOAD_ADD_TO_CONTACT,
+ MSG_VIEWER_CMD_LOAD_CONTACT,
MSG_VIEWER_CMD_LOAD_EMAIL_COMPOSER,
MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER,
MSG_VIEWER_CMD_LOAD_CALL,
typedef enum {
VIEWER_NORMAL_POPUP,
- VIEWER_SAVE_MODE_POPUP,
VIEWER_DELETE_MSG_MODE_POPUP,
} MSG_VIEWER_POPUP_MODE_E;
MSG_VIEWER_MEDIA_DRM,
} MSG_VIEWER_MEDIA_TYPE_E;
+typedef enum {
+ MSG_VIEWER_OPTION_CONTACT = 0,
+ MSG_VIEWER_OPTION_BLOCK,
+} MSG_VIEWER_OPTION_CHANGE_TYPE_E;
+
/*==================================================================================================
* STRUCTURES
*==================================================================================================*/
Evas_Object *title_button; /* navi title button */
Evas_Object *ctrl_toolbar; /* control toolbar */
Evas_Object *title_toolbar; /* title tolbar(optionheader) */
-
Evas_Object *title_box_layout; /* title box layout for genlist */
Evas_Object *title_genlist; /* title genlist for multirecipients */
Evas_Object *play_layout; /* play viewer main layout */
Eina_Bool isSelectAll; /* check if save attachments select all mode is enable */
Elm_Object_Item *navi_item; /* naviframe item */
- Elm_Object_Item *toolbar_item[3]; /* title button toolbar items */
+ Elm_Object_Item *toolbar_item[4]; /* title button toolbar items */
Elm_Object_Item *ctrltoolbar_item[4]; /* control toolbar items */
Evas_Object *popup; /*simple popup*/
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;
-
int bgcolor;
Ecore_Idler *del_idler;
Ecore_Timer *play_controller_timer;
bool title_optionheader_opened; /* check if title button option is opened*/
bool playcontroller_opened; /*check play controller is shown or not */
+ bool auto_resume_state; /* check state of auto resume availablity */
+ bool msg_box_viewer; /* TRUE is viewer is launched from message box */
int totalProgressTime; /* total progress time for all slide*/
int elapsedProgressTime; /*progress time from 1st slide to current slide*/
MSG_VIEWER_MEDIA_TYPE_E media_type;
MSG_PLAY_DATA_S *viewer_play_data;
} MSG_VIEWER_ATTACH_MEDIA_INFO_S;
+
+typedef struct {
+ int status;
+ time_t time;
+} MSG_VIEWER_REPORT_TYPE_S;
+
+typedef struct {
+ char address[MAX_ADDRESS_VAL_LEN+1];
+ MSG_VIEWER_REPORT_TYPE_S delivery;
+ MSG_VIEWER_REPORT_TYPE_S read;
+} MSG_VIEWER_REPORT_LIST_S;
/*==================================================================================================
* FUNCTION DECLARATIONS
*==================================================================================================*/
void msg_ui_viewer_resend_button_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_reply_button_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_more_button_cb(void *data, Evas_Object *obj, void *event_info);
-void msg_ui_viewer_stop_button_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_back_button_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_toolbar_email_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_toolbar_call_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_toolbar_vcall_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_toolbar_add_to_contact_cb(void *data, Evas_Object *obj, void *event_info);
void msg_ui_viewer_toolbar_view_contact_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_toolbar_block_address_cb(void *data, Evas_Object *obj, void *event_info);
+void msg_ui_viewer_toolbar_unblock_address_cb(void *data, Evas_Object *obj, void *event_info);
/* Play controller */
void msg_ui_viewer_volume_button_cb(void *data, Evas_Object *o, const char *emission, const char *source);
void msg_ui_viewer_next_button_cb(void *data, Evas_Object *o, const char *emission, const char *source);
Eina_Bool msg_ui_viewer_play_controller_progressbar_timer_cb(void *data);
Eina_Bool msg_ui_viewer_play_controller_timer_cb(void *data);
-void msg_ui_viewer_command_play_pause(void *data);
-void msg_ui_viewer_update_player_state_after_save(void *data);
+MSG_BOOL msg_ui_viewer_command_play_pause(void *data, MSG_VIEWER_ACTION_TYPE_E action_type);
/* help page create cb - called from SMIL renderer */
MSG_SMIL_ERROR_E msg_ui_viewer_help_page_smilrenderer_cb(MSG_PLAY_DATA_S *data, void **attach_list, void *box);
void msg_ui_viewer_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
/* message info */
-void msg_ui_viewer_contact_info_update(MSG_PLAY_DATA_S *data);
+void msg_ui_viewer_title_update(MSG_PLAY_DATA_S *data, MSG_VIEWER_OPTION_CHANGE_TYPE_E option_type);
+MSG_BOOL msg_ui_viewer_check_address_is_blocked(void *data, char *address, int *filter_id);
#endif /* __MSG_UI_VIEWER_PLAY_VIEW_H__*/
#define MSG_VIEWER_DEFAULT_FILE_NUMBER 1
#define MSG_VIEWER_INVALID_FILE_NUMBER -1
+#define MSG_VIEWER_THEME EDJDIR"/msg_viewer.edj"
/*==================================================================================================
* STRUCTURES
*==================================================================================================*/
MSG_BOOL _msg_smil_cont_mgr_set_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx, SMIL_PLAYER_STATUS_E event);
/**
+*@fn _msg_smil_cont_mgr_get_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx);
+*@brief This function will allow getting the slideIdx's slide status to the Content Manager.
+*@return current slide's status.
+*@param[in] smilContMgrHndle This is the handler to the SMILMessage Content Manager.
+*@param[in] slideIdx This is slide index to get
+*@param[out] None.
+*/
+SMIL_PLAYER_STATUS_E _msg_smil_cont_mgr_get_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx);
+
+/**
*@fn _msg_smil_cont_mgr_get_cur_slide_idx(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle);
*@brief This function returns the Current Slide index.
*@return The Current Slide index on success , else failure return code
} SMIL_FONT_SYTLE_S;
typedef struct _SMIL_RENDERER_DATA_S {
- void *smilhandle;
- msg_struct_t msg_info_t;
- Evas_Object *main_window;
- Evas_Object *layout_main;
- Evas_Object *viewer_scroller;
- Evas_Object *viewer_content_box; /*it contans text(entry) and image*/
- Evas_Object *viewer_bg_rect;
- Evas_Object *viewer_body; /*it shows text , entry*/
-
- char *viewer_body_text; /*set page text*/
- Evas_Object *insert_image;
- Evas_Object *insert_sound_icon; /*display invalid drm sound icon*/
- Evas_Object *insert_unsupported_icon; /*display unsupported icon*/
- Evas_Object *video_image;
- Evas_Object *attach_list; /* attach list for help page */
- unsigned char *video_image_buffer; /*Evas Object Image buffer*/
- Ecore_Timer *video_update_timer;
- MSG_BOOL is_skip_frame; /*it is used to skip 1 frame of videostream cb*/
- int video_width;
- int video_height;
- int video_duration; /*video content's duration*/
- Ecore_Idler *video_resize_idle;
- Ecore_Idler *video_duration_idle;
- Ecore_Idler *video_eos_idle;
-
- int player_state;
- int viewer_width;
- int viewer_height;
- int viewer_landscape_width;
- int viewer_landscape_height;
- int button_height;
- int main_win_rotate; /*current rotation value of main window*/
+ void *smilhandle;
+ msg_struct_t msg_info_t;
+ Evas_Object *main_window;
+ Evas_Object *layout_main;
+ Evas_Object *viewer_scroller;
+ Evas_Object *viewer_content_box; /*it contans text(entry) and image*/
+ Evas_Object *viewer_bg_rect; /* bg color */
+ Evas_Object *viewer_body; /* it shows text , entry*/
+ Evas_Object *viewer_audio_name_rect; /* rect area for displaying audio file name */
+ Evas_Object *viewer_body_top_padding; /* padding rect area for top of content box */
+ Evas_Object *viewer_body_mid_padding; /* padding rect area between image and text */
+ Evas_Object *viewer_body_bottom_padding; /* padding rect area for bottom of content box */
+
+ char *viewer_body_text; /*set page text*/
+ Evas_Object *insert_image;
+ Evas_Object *insert_sound_icon; /*display invalid drm sound icon*/
+ Evas_Object *insert_unsupported_icon; /*display unsupported icon*/
+ Evas_Object *video_image;
+ Evas_Object *attach_list; /* attach list for help page */
+ unsigned char *video_image_buffer; /*Evas Object Image buffer*/
+ Ecore_Timer *video_update_timer;
+ MSG_BOOL is_skip_frame; /*it is used to skip 1 frame of videostream cb*/
+ int video_width;
+ int video_height;
+ int video_duration; /*video content's duration*/
+
+ int resized_width;
+ int resized_height;
+
+ Ecore_Idler *video_resize_idle;
+ Ecore_Idler *video_duration_idle;
+ Ecore_Idler *video_eos_idle;
+
+ int player_state;
+ int viewer_width;
+ int viewer_height;
+ int viewer_landscape_width;
+ int viewer_landscape_height;
+ int button_height;
+ int main_win_rotate; /*current rotation value of main window*/
pfnSMILHelpPageCb appSmilHelpPageCb;
- void *appUserData;
+ void *appUserData;
- VIEWER_COLORREF bgcolor;
- MSG_BOOL ismute; /*sound, video mute mode when silent mode*/
+ VIEWER_COLORREF bgcolor;
+ MSG_BOOL ismute; /*sound, video mute mode when silent mode*/
char *working_path;
} SMIL_RENDERER_DATA_S;
/*==================================================================================================
* Media related functions
*==================================================================================================*/
-MSG_BOOL _msg_smil_render_show_inserted_audio(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path);
+MSG_BOOL _msg_smil_render_show_inserted_audio(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
MSG_BOOL _msg_smil_render_show_inserted_image(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path);
-MSG_BOOL _msg_smil_render_show_inserted_video(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path);
+MSG_BOOL _msg_smil_render_show_inserted_video(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
/*smil player sound and video related functions*/
MSG_BOOL _msg_smil_render_pause(void *data, int mediaType);
typedef enum _SMIL_PLAYER_STATUS_E {
PLAYER_STATUS_NONE = 0,
PLAYER_STATUS_PLAYING,
- PLAYER_STATUS_PLAY_END,
+ PLAYER_STATUS_PLAY_END, /* End status while playing */
+ PLAYER_STATUS_PAUSED_END, /* End status while paused */
PLAYER_STATUS_STOPPED,
PLAYER_STATUS_PAUSED,
PLAYER_STATUS_INVALID,
SMIL_RENDER_EVENT_NONE = -1,
SMIL_RENDER_EVENT_PAGE_PLAY_START = 0, /* Start playing the Page */
SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START, /* Start Playing both Page and Media at the same time*/
- SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE, /*Puase player by interrupted earjack off*/
+ SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE, /*Pause player by interrupted earjack off*/
+ SMIL_RENDER_EVENT_MOVE_PAGE_AFTER_PAUSED, /*Pause player automatically after moving to prev or next page to keep up with prevous player status(paused)*/
SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE, /* For notifying the Client about the last slide */
SMIL_RENDER_EVENT_DESTROY_SCREEN, /*This Event is called to destroy current screen*/
SMIL_RENDER_EVENT_ERROR, /* Stop playing because of Error*/
/*==================================================================================================
* INCLUDE HEADERS
*==================================================================================================*/
-#include <mm_file.h>
-#include <mmf/mm_error.h>
+#include <metadata_extractor.h>
#include "msg-smil-content-manager.h"
#include "msg-smil-player.h"
MSG_BOOL _msg_smil_cont_mgr_set_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx, SMIL_PLAYER_STATUS_E event)
{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle == NULL, FALSE);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle->smilContent == NULL, FALSE);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle->smilContent->commonData == NULL, FALSE);
return TRUE;
}
+SMIL_PLAYER_STATUS_E _msg_smil_cont_mgr_get_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle, int slideIdx)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle == NULL, PLAYER_STATUS_INVALID);
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle->smilContent == NULL, PLAYER_STATUS_INVALID);
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle->smilContent->commonData == NULL, PLAYER_STATUS_INVALID);
+ SMIL_SLIDE_INFO_S *findSlide = smilContMgrHndle->smilContent;
+ int count = 0;
+
+ if (__msg_smil_cont_mgr_is_valid_slide(findSlide->commonData, slideIdx) == FALSE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Slide index is invalid");
+ return PLAYER_STATUS_INVALID;
+ }
+
+ while (count < slideIdx) {
+ findSlide = findSlide->nextSlide;
+ count++;
+ }
+
+ return findSlide->slideStatus;
+}
+
+
SMIL_PLAYER_STATUS_E _msg_smil_cont_mgr_get_cur_slide_status(SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle)
{
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle == NULL, NULL);
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "smilContMgrHndle->msg_info_t = 0x%x", smilContMgrHndle->msg_info_t);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
return smilContMgrHndle->msg_info_t;
}
while (slideIdx < curSlide->commonData->pageCnt) {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "slideIdx = %d", slideIdx);
double pagetime = 0.0;
+ char *value = NULL;
int duration = 0;
double maximum_time = 0.0;
bool is_drm = FALSE;
bool is_available_play = FALSE;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mediaType = %d", mediaType);
+
//check DRM
drm_bool_type_e is_drm_file = DRM_UNKNOWN;
int ret = DRM_RETURN_SUCCESS;
if (is_available_play) {
int ret = 0;
- MMHandleType content_attrs = 0;
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "tempMedia->szFilePath is %s", szFilePath);
-
- ret = mm_file_create_content_attrs(&content_attrs, szFilePath);
-
- if (ret == MM_ERROR_NONE) {
- char *error = NULL;
+ metadata_extractor_h handle = NULL;
+ ret = metadata_extractor_create(&handle);
+
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "tempMedia->szFilePath is %s", szFilePath);
+ ret = metadata_extractor_set_path(handle, szFilePath);
+ if (ret != METADATA_EXTRACTOR_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "metadata_extractor_set_path is failed, %d", ret);
+ metadata_extractor_destroy(handle);
+ return FALSE;
+ }
- ret = mm_file_get_attrs(content_attrs, &error, MM_FILE_CONTENT_DURATION, &duration, NULL);
+ ret = metadata_extractor_get_metadata(handle, METADATA_DURATION, &value);
- if (ret != MM_ERROR_NONE) {
- if (error) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mm_file_get_attrs is failed - ret(%x), error(%s)", ret, error);
- free(error);
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mm_file_get_attrs is failed - ret(%x)", ret);
+ if (ret == METADATA_EXTRACTOR_ERROR_NONE) {
+ if (value) {
+ duration = atoi(value);
+ free(value);
}
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "metadata_extractor_get_metadata is failed - ret(%x)", ret);
+ metadata_extractor_destroy(handle);
+ return FALSE;
}
+
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "file : %s, duration : %f", szFilePath, (double)duration);
- if (content_attrs)
- mm_file_destroy_content_attrs(content_attrs);
+ metadata_extractor_destroy(handle);
} else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mm_file_create_content_attrs is failed - ret(%x)", ret);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "metadata_extractor_create is failed - ret(%x)", ret);
}
}
-
//ceiling duration time
double ceilvalue = ceil((double)duration/1000)*1000;
if (maximum_time <= ceilvalue)
maximum_time = ceilvalue;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Current media type(%d) is follow page duration time. skip checking..", mediaType);
}
+
index++;
}
}
SMIL_SLIDE_INFO_S *singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, smilContMgrHndle == NULL, MSG_ERR_SMIL_INVALID_SLIDE);
+ SMIL_PLAYER_STATUS_E prev_slide_status = PLAYER_STATUS_NONE;
if (curSlideIdx < 0) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid slide index = %d", curSlideIdx);
if (_msg_smil_cont_mgr_set_cur_slide_idx(smilContMgrHndle, curSlideIdx) == FALSE)
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_cont_mgr_set_cur_slide_idx is failed");
+
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "current slide idx = %d", _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle));
int pageCnt = _msg_smil_cont_mgr_get_total_slide_count(smilContMgrHndle);
/* check current page is help page and skip internal media play */
if (_msg_smil_cont_mgr_is_cur_slide_help_page(singleSlideInfo)) {
+ /* set last page to play */
+ _msg_smil_event_mgr_set_last_slide(smilEvntMgrHndle, TRUE);
haspageinfo = FALSE;
break;
}
case PAGE_EVENT_MOVE_TO_NEXT:
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PAGE_EVENT_MOVE_TO_NEXT");
if (singleSlideInfo->nextSlide != NULL) {
+ /* check previouts slide status */
+ int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+ SMIL_SLIDE_INFO_S *prev_slideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, slideIdx-1);
+ if (prev_slideInfo)
+ prev_slide_status = prev_slideInfo->slideStatus;
+
/* Move to next slide*/
_msg_smil_event_mgr_set_current_slide(smilEvntMgrHndle, singleSlideInfo->nextSlide);
_msg_smil_event_mgr_set_page_action_type(smilEvntMgrHndle, PAGE_EVENT_PLAY);
continue;
case PAGE_EVENT_MOVE_TO_PREV:
if (singleSlideInfo->prevSlide != NULL) {
+ /* check previouts slide status */
+ int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
+ SMIL_SLIDE_INFO_S *prev_slideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, slideIdx+1);
+ if (prev_slideInfo)
+ prev_slide_status = prev_slideInfo->slideStatus;
+
/* Move to prev slide*/
_msg_smil_event_mgr_set_current_slide(smilEvntMgrHndle, singleSlideInfo->prevSlide);
singleSlideInfo = _msg_smil_event_mgr_get_current_slide(smilEvntMgrHndle);
MSG_SMIL_ERROR_E err = MSG_ERR_SMIL_UNKNOWN;
int slideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
- _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_PLAYING);
+ if (prev_slide_status == PLAYER_STATUS_PAUSED_END)
+ _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_PAUSED);
+ else
+ _msg_smil_cont_mgr_set_status(smilContMgrHndle, slideIdx, PLAYER_STATUS_PLAYING);
/*calling renderhandler to draw content*/
MSG_BOOL rendering_failed = FALSE;
rendering_failed = TRUE;
}
+ SMIL_SLIDE_INFO_S *curSlideInfo = _msg_smil_cont_mgr_get_slide(smilContMgrHndle, slideIdx);
+ if (curSlideInfo->slideStatus == PLAYER_STATUS_PAUSED)
+ _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_MOVE_PAGE_AFTER_PAUSED);
+
/*Calling the callback function of Client.*/
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Calling the Client callback");
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "RENDEREVENT = %d", slideTimerCbData->curSlideParam->renderEvent);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "timer is not registerd actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
}
}
+
+ // set play timer pause to synchronize UI timer
+ if (curSlideInfo->slideStatus == PLAYER_STATUS_PAUSED && slideTimerCbData->timerHandle)
+ ecore_timer_freeze(slideTimerCbData->timerHandle);
+
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Page event is error actionTypeOnPage = %d", slideTimerCbData->slideTimerInfo.actionTypeOnPage);
}
slideTimerCbData->timerHandle = NULL;
}
- /* Update status as PLAYER_STATUS_PLAY_END */
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "CALL UPDATE AT PLAY END");
SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(smilEvntMgrHndle->smilhandle);
int curSlideIdx = _msg_smil_cont_mgr_get_cur_slide_idx(smilContMgrHndle);
- if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PLAY_END) == FALSE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_cont_mgr_set_status is failed");
- return MSG_ERR_SMIL_NULL_MESSAGE;
+
+ if (_msg_smil_cont_mgr_get_status(smilContMgrHndle, curSlideIdx) == PLAYER_STATUS_PAUSED) {
+ /* Update status as PLAYER_STATUS_PAUSED_END */
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "CALL UPDATE AT PAUSED -> END : PLAYER_STATUS_PAUSED_END");
+
+ if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PAUSED_END) == FALSE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_cont_mgr_set_status is failed");
+ return MSG_ERR_SMIL_NULL_MESSAGE;
+ }
+ } else {
+ /* Update status as PLAYER_STATUS_PLAY_END */
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "CALL UPDATE AT PLAYING -> END : PLAYER_STATUS_PLAY_END");
+
+ if (_msg_smil_cont_mgr_set_status(smilContMgrHndle, curSlideIdx, PLAYER_STATUS_PLAY_END) == FALSE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_cont_mgr_set_status is failed");
+ return MSG_ERR_SMIL_NULL_MESSAGE;
+ }
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
#include "msg-ui-common-utility.h"
#include <mm_error.h>
-#include <mm_player.h>
-#include <mm_session.h>
+#include <player.h>
+#include <metadata_extractor.h>
#include <utilX.h>
#include <Ecore_X.h>
#include <E_DBus.h>
-/*For Multimedia element width, height.*/
-#include "mm_file.h"
-
-/*for direct video displaying*/
-#include <mm_player_internal.h>
/*==================================================================================================
* FUNCTION DECLARATIONS
static MSG_BOOL __msg_smil_render_player_mgr_realize(void *data);
static MSG_BOOL __msg_smil_render_player_mgr_unrealize(void);
static MSG_BOOL __msg_smil_render_player_mgr_pause(void *data);
-static MSG_BOOL __msg_smil_render_player_mgr_resume(void *data);
+static MSG_BOOL __msg_smil_render_player_mgr_resume(void *data, int mediaType);
static MSG_BOOL __msg_smil_render_player_mgr_mute(void *data);
-static MSG_BOOL __msg_smil_render_player_mgr_set_msg_cb(MMMessageCallback cb, void *user_data);
+static MSG_BOOL __msg_smil_render_player_mgr_set_player_cb(void *user_data);
static MSG_BOOL __msg_smil_render_player_mgr_set_video_stream_cb(void *cb, void *user_data);
static MSG_BOOL __msg_smil_render_player_mgr_set_attribute(void *data, const char *path, int mediaType);
static MSG_BOOL __msg_smil_render_check_file_validity(SMIL_RENDERER_DATA_S *viewerRenderData, const char *file_path);
static MSG_BOOL __msg_smil_render_get_video_size(SMIL_RENDERER_DATA_S *viewerRenderData, const char *file_path, int *width, int *height);
static void __msg_smil_render_show_image_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_RENDER_IMAGE_TYPE_E imageType);
-static MSG_BOOL __msg_smil_render_play_audio_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path);
-static MSG_BOOL __msg_smil_render_play_video_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path);
+static MSG_BOOL __msg_smil_render_play_audio_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
+static MSG_BOOL __msg_smil_render_play_video_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status);
static MSG_BOOL __msg_smil_render_get_resized_content_size(void *data, int content_w, int content_h, int *w, int *h);
static void __msg_smil_render_create_video_image(void *data);
static void __msg_smil_render_start_video_timer(void *data);
+
/*idle functions*/
static Eina_Bool __msg_smil_render_player_mgr_get_content_duration(void *data);
static Eina_Bool __msg_smil_render_end_of_stream(void *data);
static Eina_Bool __msg_smil_render_update_video_screen(void *data);
/*cb functions*/
-static int __msg_smil_render_msg_cb(int msg_type, void *msg_param, void *user_param);
-static int __msg_smil_render_video_stream_cb(void *stream, int stream_size, void *user_param, int width, int height);
+static int __msg_smil_render_video_stream_cb(unsigned char *data, int width, int height, unsigned int size, void *user_data);
+static void __msg_smil_render_error_cb(int error_code, void *user_param);
+static void __msg_smil_render_complete_cb(void *user_param);
+static void __msg_smil_render_interrupted_cb(player_interrupted_code_e code, void *user_param);
/*================================================================================================
* FUNCTION IMPLEMENTATIONS
*================================================================================================*/
-static MMHandleType _player = 0;
+static player_h _player = 0;
static MSG_BOOL __msg_smil_render_is_player_active(void)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_create(&_player)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_create is failed err = %x", err);
+ if ((err = player_create(&_player)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_create is failed err = %x", err);
return FALSE;
}
+
viewerRenderData->player_state = MEDIA_PLAYER_STATE_INIT;
return TRUE;
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_realize(_player)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_realize Error = %x", err);
+ if ((err = player_prepare(_player)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_prepare Error = %d", err);
return FALSE;
}
viewerRenderData->player_state = MEDIA_PLAYER_STATE_READY;
static MSG_BOOL __msg_smil_render_player_mgr_unrealize(void)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if (mm_player_unrealize(_player) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_unrealize is failed");
+ if ((err = player_unprepare(_player)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_unprepare Error = %d", err);
return FALSE;
}
if (!__msg_smil_render_is_player_active())
return FALSE;
- if (mm_player_destroy(_player) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_destroy is failed");
+ if (player_destroy(_player) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_destroy is failed");
return FALSE;
}
_player = 0;
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_start(_player)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_start is failed err = 0x%x", err);
+ if ((err = player_start(_player)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_start is failed err = %d", err);
return FALSE;
}
viewerRenderData->player_state = MEDIA_PLAYER_STATE_PLAYING;
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_pause(_player)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_pause is failed err = 0x%x", err);
+ if ((err = player_pause(_player)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_pause is failed err = %d", err);
return FALSE;
}
viewerRenderData->player_state = MEDIA_PLAYER_STATE_PAUSED;
}
-static MSG_BOOL __msg_smil_render_player_mgr_resume(void *data)
+static MSG_BOOL __msg_smil_render_player_mgr_resume(void *data, int mediaType)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_resume(_player)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_resume is failed err = 0x%x", err);
- return FALSE;
+ if (viewerRenderData->player_state == MEDIA_PLAYER_STATE_INIT) { //not ready status, in other words, page is started with paused state
+ if (!__msg_smil_render_player_mgr_realize((void *)viewerRenderData))
+ return FALSE;
+
+ if (__msg_smil_render_player_mgr_play((void *)viewerRenderData)) {
+ if (mediaType == MMS_SMIL_MEDIA_VIDEO) {
+ SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
+ SMIL_SLIDE_INFO_S *current_slide_data = _msg_smil_cont_mgr_get_cur_slide(smilContMgrHndle);
+
+ if (current_slide_data->pageInfo && current_slide_data->pageInfo->hasVideo)
+ __msg_smil_render_start_video_timer(viewerRenderData);
+ }
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_play is failed");
+ return FALSE;
+ }
+ } else {
+ if ((err = player_start(_player)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_start is failed err = %d", err);
+ return FALSE;
+ }
}
viewerRenderData->player_state = MEDIA_PLAYER_STATE_PLAYING;
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_set_mute(_player, TRUE)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_mute is failed err = 0x%x", err);
+ if ((err = player_set_mute(_player, TRUE)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_mute is failed err = %d", err);
return FALSE;
}
/*stop media player*/
if (__msg_smil_render_is_player_active() && viewerRenderData->player_state == MEDIA_PLAYER_STATE_PLAYING) {
- int err = MM_ERROR_NONE;
- if ((err = mm_player_stop(_player)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_stop is failed err = 0x%x", err);
+ int err = PLAYER_ERROR_NONE;
+ if ((err = player_stop(_player)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_stop is failed err = %d", err);
return FALSE;
}
}
}
-static MSG_BOOL __msg_smil_render_player_mgr_set_msg_cb(MMMessageCallback cb, void *user_data)
+static MSG_BOOL __msg_smil_render_player_mgr_set_player_cb(void *user_data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_set_message_callback(_player, cb, user_data)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_message_callback is failed err = 0x%x", err);
+ /* set error cb */
+ err = player_set_error_cb(_player, __msg_smil_render_error_cb, user_data);
+ if (err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_error_cb is failed err = %d", err);
+ return FALSE;
+ }
+
+ /* set complete cb */
+ err = player_set_completed_cb(_player, __msg_smil_render_complete_cb, user_data);
+ if (err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_completed_cb is failed err = %d", err);
+ return FALSE;
+ }
+
+ /* set interrupted cb */
+ err = player_set_interrupted_cb(_player, __msg_smil_render_interrupted_cb, user_data);
+ if (err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_interrupted_cb is failed err = %d", err);
return FALSE;
}
+
return TRUE;
}
static MSG_BOOL __msg_smil_render_player_mgr_set_video_stream_cb(void *cb, void *user_data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- if ((err = mm_player_set_video_stream_callback(_player, cb, user_data)) != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_video_stream_callback is failed err = 0x%x", err);
+ if ((err = player_set_video_frame_decoded_cb(_player, cb, user_data)) != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_video_frame_decoded_cb is failed err = %d", err);
return FALSE;
}
return TRUE;
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, path == NULL, FALSE);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
- int err = MM_ERROR_NONE;
- char *perr_name = NULL;
- int resized_width = 0;
- int resized_height = 0;
- int path_len = strlen(path);
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active())
return FALSE;
- /*avsysaudiosink volume table setting*/
- err = mm_player_set_attribute(_player, &perr_name,
- "sound_volume_type", MM_SOUND_VOLUME_TYPE_MEDIA,
- "sound_priority", MM_SOUND_PRIORITY_1,
- "sound_fadeup", 0,
- "sound_route", MM_AUDIOROUTE_PLAYBACK_NORMAL,
- NULL);
- if (err != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_attribute is failed. err = %x, perr_name = (%s)", err, perr_name);
- free(perr_name);
+ /* set sound type */
+ err = player_set_sound_type(_player, SOUND_TYPE_MEDIA);
+ if (err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_sound_type is failed. err = %d ", err)
return FALSE;
}
- err = mm_player_set_attribute(_player, &perr_name,
- "profile_uri", path, path_len,
- NULL);
- if (err != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_attribute is failed. err = %x, perr_name = (%s)", err, perr_name);
- free(perr_name);
+ err = player_set_uri(_player, path);
+ if (err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_uri is failed. err = %d", err);
return FALSE;
}
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mediaType = %d", mediaType);
+
if (mediaType == MMS_SMIL_MEDIA_VIDEO) {
- err = mm_player_set_attribute(_player, &perr_name,
- "display_rotation", MM_DISPLAY_ROTATION_NONE,
- NULL);
- if (err != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_attribute is failed. err = %x, perr_name = (%s)", err, perr_name);
- free(perr_name);
+ err = player_set_x11_display_rotation(_player, PLAYER_DISPLAY_ROTATION_NONE);
+ if (err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_x11_display_rotation is failed. err = %d", err);
return FALSE;
}
- if (!__msg_smil_render_get_resized_content_size(viewerRenderData, viewerRenderData->video_width, viewerRenderData->video_height, &resized_width, &resized_height)) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_get_resized_content_size is failed");
- resized_width = viewerRenderData->viewer_width;
- resized_height = viewerRenderData->viewer_landscape_height;
+ err = player_set_display(_player, PLAYER_DISPLAY_TYPE_EVAS, (void *)viewerRenderData->video_image);
+ if (err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_set_display is failed. err = %d", err);
+ return FALSE;
}
- err = mm_player_set_attribute(_player, &perr_name,
- "display_width", resized_width,
- "display_height", resized_height,
- NULL);
- if (err != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_attribute is failed. err = %x, perr_name = (%s)", err, perr_name);
- free(perr_name);
+ err = player_enable_evas_display_scaling(_player, false);
+ if(err != PLAYER_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_enable_evas_display_scaling is failed. err = %d", err);
return FALSE;
}
}
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, ECORE_CALLBACK_CANCEL);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
int duration = 0;
- char *perr_name = NULL;
- int err = MM_ERROR_NONE;
+ int err = PLAYER_ERROR_NONE;
if (!__msg_smil_render_is_player_active()) {
viewerRenderData->video_duration_idle = NULL;
return ECORE_CALLBACK_CANCEL;
}
- err = mm_player_get_attribute(_player, &perr_name, "content_duration", &duration, NULL);
- if (err != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_get_attribute is failed err = %x, pErrName = (%s)", err, perr_name);
- if (perr_name)
- free(perr_name);
- }
+ err = player_get_duration(_player, &duration);
+ if (err != PLAYER_ERROR_NONE)
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "player_get_duration is failed err = %d", err);
viewerRenderData->video_duration = duration;
viewerRenderData->video_duration_idle = NULL;
elm_icon_animated_play_set(viewerRenderData->insert_image, EINA_FALSE);
/* enable copy and paste popup */
- elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
- elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
+ if (viewerRenderData->viewer_body) {
+ elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
+ elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
+ }
if (mediaType == MMS_SMIL_MEDIA_VIDEO || mediaType == MMS_SMIL_MEDIA_AUDIO) {
SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
elm_icon_animated_play_set(viewerRenderData->insert_image, EINA_TRUE);
/* disable copy and paste popup */
- elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
- elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
- elm_entry_select_none(viewerRenderData->viewer_body);
+ if (viewerRenderData->viewer_body) {
+ elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
+ elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
+ elm_entry_select_none(viewerRenderData->viewer_body);
+ }
if (mediaType == MMS_SMIL_MEDIA_VIDEO || mediaType == MMS_SMIL_MEDIA_AUDIO) {
SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
if (_msg_smil_event_mgr_get_video_endofstream(smil_handler->smilEvntMgrHndle) == FALSE)
- return __msg_smil_render_player_mgr_resume(viewerRenderData);
+ return __msg_smil_render_player_mgr_resume(viewerRenderData, mediaType);
}
return TRUE;
elm_icon_animated_play_set(viewerRenderData->insert_image, EINA_FALSE);
/* enable copy and paste popup */
- elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
- elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
+ if (viewerRenderData->viewer_body) {
+ elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
+ elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_FALSE);
+ }
__msg_smil_render_player_mgr_stop(data);
__msg_smil_render_player_mgr_unrealize();
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)data;
if (viewerRenderData->video_image) {
- int video_width = 0;
- int video_height = 0;
- int err = MM_ERROR_NONE;
- char *perr_name = NULL;
-
- evas_object_image_size_get(viewerRenderData->video_image, &video_width, &video_height);
- err = mm_player_set_attribute(_player, &perr_name,
- "display_width", video_width,
- "display_height", video_height,
- NULL);
- if (err != MM_ERROR_NONE) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_player_set_attribute is failed. err = %x", err);
- if (perr_name)
- free(perr_name);
+ evas_object_image_size_set(viewerRenderData->video_image, viewerRenderData->resized_width, viewerRenderData->resized_height);
+ evas_object_resize(viewerRenderData->video_image, viewerRenderData->resized_width, viewerRenderData->resized_height);
+ evas_object_image_fill_set(viewerRenderData->video_image, 0, 0, viewerRenderData->resized_width, viewerRenderData->resized_height);
- viewerRenderData->video_resize_idle = NULL;
- return ECORE_CALLBACK_CANCEL;
- }
+ // set image buffer null
viewerRenderData->video_image_buffer = NULL;
+ viewerRenderData->video_image_buffer = evas_object_image_data_get(viewerRenderData->video_image, EINA_TRUE);
+ evas_object_image_data_set(viewerRenderData->video_image, viewerRenderData->video_image_buffer);
- if (!viewerRenderData->video_image_buffer) {
- viewerRenderData->video_image_buffer = evas_object_image_data_get(viewerRenderData->video_image, EINA_TRUE);
- evas_object_image_data_set(viewerRenderData->video_image, viewerRenderData->video_image_buffer);
- __msg_smil_render_update_video_screen(viewerRenderData);
- }
+ /* update resized image screen */
+ __msg_smil_render_update_video_screen(viewerRenderData);
}
viewerRenderData->video_resize_idle = NULL;
}
-static int __msg_smil_render_video_stream_cb(void *stream, int stream_size, void *user_param, int width, int height)
+static int __msg_smil_render_video_stream_cb(unsigned char *data, int width, int height, unsigned int size, void *user_data)
{
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, stream == NULL || stream_size <= 0, MSG_UI_RET_ERR);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, user_param == NULL, MSG_UI_RET_ERR);
- SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)user_param;
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL || size <= 0, MSG_UI_RET_ERR);
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, user_data == NULL, MSG_UI_RET_ERR);
+ SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)user_data;
int video_width = 0;
int video_height = 0;
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "stream_size = %d, width = %d, height = %d", stream_size, width, height);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "stream_size = %d, width = %d, height = %d", size, width, height);
evas_object_image_size_get(viewerRenderData->video_image, &video_width, &video_height);
if (viewerRenderData->is_skip_frame) { /*skip 1 frame*/
ecore_idler_del(viewerRenderData->video_resize_idle);
viewerRenderData->video_resize_idle = NULL;
}
+
+ evas_object_image_size_set(viewerRenderData->video_image, width, height);
+ viewerRenderData->video_image_buffer = NULL;
+ evas_object_image_data_set(viewerRenderData->video_image, (void *)data);
+
viewerRenderData->video_resize_idle = ecore_idler_add(__msg_smil_render_resize_mm_video, (void *)viewerRenderData);
return MSG_UI_RET_SUCCESS;
}
/*update evas image buffer*/
if (viewerRenderData->video_image_buffer)
- memcpy(viewerRenderData->video_image_buffer, stream, stream_size);
+ memcpy(viewerRenderData->video_image_buffer, data, size);
return MSG_UI_RET_SUCCESS;
}
return ECORE_CALLBACK_CANCEL;
}
+static void __msg_smil_render_error_cb(int error_code, void *user_param)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, user_param == NULL);
+
+ if (!__msg_smil_render_is_player_active())
+ return;
-static int __msg_smil_render_msg_cb(int msg_type, void *msg_param, void *user_param)
+ /*case MM_MESSAGE_ERROR */
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_ERROR, %d", error_code);
+}
+
+static void __msg_smil_render_complete_cb(void *user_param)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, user_param == NULL, MSG_UI_RET_ERR);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, user_param == NULL);
SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)user_param;
- MMMessageParamType *param = (MMMessageParamType *)msg_param;
if (!__msg_smil_render_is_player_active())
- return MSG_UI_RET_ERR;
+ return;
- switch (msg_type) {
- case MM_MESSAGE_BEGIN_OF_STREAM:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_BEGIN_OF_STREAM");
- {
- SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
- SMIL_SLIDE_INFO_S *current_slide_data = _msg_smil_cont_mgr_get_cur_slide(smilContMgrHndle);
+ /*case MM_MESSAGE_END_OF_STREAM */
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_END_OF_STREAM");
- if (current_slide_data->pageInfo && current_slide_data->pageInfo->hasVideo) {
- if (viewerRenderData->video_duration_idle) {
- ecore_idler_del(viewerRenderData->video_duration_idle);
- viewerRenderData->video_duration_idle = NULL;
- }
- viewerRenderData->video_duration_idle = ecore_idler_add(__msg_smil_render_player_mgr_get_content_duration, (void *)viewerRenderData);
- }
- viewerRenderData->is_skip_frame = TRUE;
- }
- break;
+ if (viewerRenderData->video_eos_idle) {
+ ecore_idler_del(viewerRenderData->video_eos_idle);
+ viewerRenderData->video_eos_idle = NULL;
+ }
+ viewerRenderData->video_eos_idle = ecore_idler_add(__msg_smil_render_end_of_stream, (void *)viewerRenderData);
+}
- case MM_MESSAGE_ERROR:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_ERROR");
- break;
- case MM_MESSAGE_WARNING:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_WARNING");
- break;
+static void __msg_smil_render_interrupted_cb(player_interrupted_code_e code, void *user_param)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, user_param == NULL);
+ SMIL_RENDERER_DATA_S *viewerRenderData = (SMIL_RENDERER_DATA_S *)user_param;
- case MM_MESSAGE_END_OF_STREAM:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_END_OF_STREAM");
- if (viewerRenderData->video_eos_idle) {
- ecore_idler_del(viewerRenderData->video_eos_idle);
- viewerRenderData->video_eos_idle = NULL;
- }
- viewerRenderData->video_eos_idle = ecore_idler_add(__msg_smil_render_end_of_stream, (void *)viewerRenderData);
- break;
-
- case MM_MESSAGE_STATE_CHANGED:
- if (param) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_STATE_CHANGED with[%d]", param->state.current);
- switch (param->state.current) {
- case MM_PLAYER_STATE_NONE:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "==> [MediaPlayerApp] Player is [NONE]");
- break;
- case MM_PLAYER_STATE_READY:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "==> [MediaPlayerApp] Player is [READY]");
- break;
- case MM_PLAYER_STATE_PLAYING:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "==> [MediaPlayerApp] Player is [PLAYING]");
- {
- SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
- SMIL_SLIDE_INFO_S *current_slide_data = _msg_smil_cont_mgr_get_cur_slide(smilContMgrHndle);
-
- if (current_slide_data->pageInfo && current_slide_data->pageInfo->hasVideo)
- __msg_smil_render_start_video_timer(viewerRenderData);
- }
- break;
- case MM_PLAYER_STATE_PAUSED:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "==> [MediaPlayerApp] Player is [PAUSED]");
- break;
- case MM_PLAYER_STATE_NULL:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "==> [MediaPlayerApp] Player is [NULL]");
- break;
- }
- }
- break;
-
- case MM_MESSAGE_STATE_INTERRUPTED:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_STATE_INTERRUPTED");
- if (param) {
- switch (param->code) {
- case MM_MSG_CODE_INTERRUPTED_BY_OTHER_APP:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_ERROR_PLAYER_BT_CONNECTION");
- break;
-
- case MM_MSG_CODE_INTERRUPTED_BY_CALL_START:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_CALL_START");
- break;
-
- case MM_MSG_CODE_INTERRUPTED_BY_CALL_END:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_CALL_END");
- break;
-
- case MM_MSG_CODE_INTERRUPTED_BY_EARJACK_UNPLUG:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_EARJACK_UNPLUG");
- {
- SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
- SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle = _msg_smil_get_event_mgr(viewerRenderData->smilhandle);
- SMIL_SLIDE_EVENT_PARAM_S *curSlideParam = _msg_smil_event_mgr_get_slide_event_param_data(smilEvntMgrHndle);;
- SMIL_TIMER_CALLBACK_DATA_S *timer_cb_data = _msg_smil_event_mgr_get_timer_cb_data(smilEvntMgrHndle);
-
- _msg_smil_player_on_slide_event_handler((void **)&smil_handler, PLAYER_EVENT_PAUSE);
- if (curSlideParam && timer_cb_data) {
- _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE);
- timer_cb_data->appSmilCb(&(curSlideParam->clientCbParam), timer_cb_data->appUserData);
- }
- }
- break;
+ if (!__msg_smil_render_is_player_active())
+ return;
- case MM_MSG_CODE_INTERRUPTED_BY_RESOURCE_CONFLICT:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_RESOURCE_CONFLICT");
- /*It is called when vtcall is receiving during video play*/
- break;
+ /*case MM_MESSAGE_END_OF_STREAM */
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "receive MM_MESSAGE_STATE_INTERRUPTED");
- case MM_MSG_CODE_INTERRUPTED_BY_ALARM_START:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_ALARM_START");
- break;
+ switch (code) {
+ case PLAYER_INTERRUPTED_BY_OTHER_APP:
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_ERROR_PLAYER_BT_CONNECTION");
+ break;
- case MM_MSG_CODE_INTERRUPTED_BY_ALARM_END:
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_ALARM_END");
- break;
- }
- }
- break;
+ case PLAYER_INTERRUPTED_BY_CALL:
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_CALL_END");
+ break;
- default:
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid msg_type = %d", msg_type);
- return MSG_UI_RET_ERR;
- }
+ case PLAYER_INTERRUPTED_BY_EARJACK_UNPLUG:
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_EARJACK_UNPLUG");
- return MSG_UI_RET_SUCCESS;
-}
+ SMIL_HANDLER_S *smil_handler = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
+ SMIL_EVENT_MGR_HANDLE_S *smilEvntMgrHndle = _msg_smil_get_event_mgr(viewerRenderData->smilhandle);
+ SMIL_SLIDE_EVENT_PARAM_S *curSlideParam = _msg_smil_event_mgr_get_slide_event_param_data(smilEvntMgrHndle);;
+ SMIL_TIMER_CALLBACK_DATA_S *timer_cb_data = _msg_smil_event_mgr_get_timer_cb_data(smilEvntMgrHndle);
+
+ _msg_smil_player_on_slide_event_handler((void **)&smil_handler, PLAYER_EVENT_PAUSE);
+ if (curSlideParam && timer_cb_data) {
+ _msg_smil_event_mgr_set_render_event(smilEvntMgrHndle, SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE);
+ timer_cb_data->appSmilCb(&(curSlideParam->clientCbParam), timer_cb_data->appUserData);
+ }
+ break;
+
+ case PLAYER_INTERRUPTED_BY_RESOURCE_CONFLICT:
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_RESOURCE_CONFLICT");
+ /*It is called when vtcall is receiving during video play*/
+ break;
+ case PLAYER_INTERRUPTED_BY_ALARM:
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "MM_MSG_CODE_INTERRUPTED_BY_ALARM_START");
+ break;
-static MSG_BOOL __msg_smil_render_play_audio_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path)
+ default:
+ break;
+ }
+}
+
+static MSG_BOOL __msg_smil_render_play_audio_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, FALSE);
if (!__msg_smil_render_player_mgr_set_attribute(viewerRenderData, path, MMS_SMIL_MEDIA_AUDIO))
return FALSE;
- if (!__msg_smil_render_player_mgr_set_msg_cb(__msg_smil_render_msg_cb, (void *)viewerRenderData))
+ if (!__msg_smil_render_player_mgr_set_player_cb((void *)viewerRenderData))
return FALSE;
- if (!__msg_smil_render_player_mgr_realize((void *)viewerRenderData))
- return FALSE;
+ if (status == PLAYER_STATUS_PLAYING) {
+ if (!__msg_smil_render_player_mgr_realize((void *)viewerRenderData))
+ return FALSE;
- if (!__msg_smil_render_player_mgr_play((void *)viewerRenderData)) {
- return FALSE;
- }
+ if (!__msg_smil_render_player_mgr_play((void *)viewerRenderData))
+ return FALSE;
- /*if silent and mute mode*/
- if (viewerRenderData->ismute) {
- if (!__msg_smil_render_player_mgr_mute((void *)viewerRenderData))
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_mute is Fail");
+ /*if silent and mute mode*/
+ if (viewerRenderData->ismute) {
+ if (!__msg_smil_render_player_mgr_mute((void *)viewerRenderData))
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_mute is Fail");
+ }
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-MSG_BOOL _msg_smil_render_show_inserted_audio(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path)
+MSG_BOOL _msg_smil_render_show_inserted_audio(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, FALSE);
//copy drm content to app path end
/*play original sound(drm)*/
- if (__msg_smil_render_play_audio_file(viewerRenderData, app_drm_path) == FALSE) {
+ if (__msg_smil_render_play_audio_file(viewerRenderData, app_drm_path, status) == FALSE) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_play_audio_file is failed");
_msg_smil_render_stop_playing_file((void *)viewerRenderData);
}
} else {
/*normal case -- no drm*/
- if (__msg_smil_render_play_audio_file(viewerRenderData, path) == FALSE) {
+ if (__msg_smil_render_play_audio_file(viewerRenderData, path, status) == FALSE) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_play_audio_file is failed");
_msg_smil_render_stop_playing_file((void *)viewerRenderData);
return FALSE;
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, file_path == NULL, FALSE);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "file_path = (%s)", file_path);
- MMHandleType content = (MMHandleType)NULL;
int err = 0;
+ metadata_extractor_h handle = NULL;
+
+ err = metadata_extractor_create(&handle);
- err = mm_file_create_content_attrs(&content, file_path);
- if (err == 0) {
- err = mm_file_destroy_content_attrs(content);
- if (err != 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_file_destroy_content_attrs FAILED err = %x", err);
+ if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+ err = metadata_extractor_set_path(handle, file_path);
+
+ if (err != METADATA_EXTRACTOR_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "metadata_extractor_set_path is failed, %d", err);
+ metadata_extractor_destroy(handle);
+ return FALSE;
+ }
+
+ err = metadata_extractor_destroy(handle);
+ if (err != METADATA_EXTRACTOR_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "metadata_extractor_destroy FAILED err = %x", err);
return FALSE;
}
} else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_file_create_content_attrs FAILED err = %x", err);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "metadata_extractor_create FAILED err = %x", err);
return FALSE;
}
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, FALSE);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, width == NULL, FALSE);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, height == NULL, FALSE);
- MMHandleType content = (MMHandleType)NULL;
int err = 0;
- char *err_msg = NULL;
- MSG_BOOL iserror = FALSE;
+ metadata_extractor_h handle = NULL;
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "file_path = (%s)", file_path);
- err = mm_file_create_content_attrs(&content, file_path);
-
- if (err == 0) {
- err = mm_file_get_attrs(content, &err_msg,
- MM_FILE_CONTENT_VIDEO_WIDTH, width,
- MM_FILE_CONTENT_VIDEO_HEIGHT, height,
- /*MM_FILE_CONTENT_VIDEO_THUMBNAIL, &thumbnail, &thumbnail_size,*/
- NULL);
- if (err != 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_file_get_attrs FAILED err = %d", err);
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_file_get_attrs err_msg = %s", err_msg);
- if (err_msg) {
- free(err_msg);
- err_msg = NULL;
+ err = metadata_extractor_create(&handle);
+
+ if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+ char *value = NULL;
+
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "file_path = (%s)", file_path);
+
+ err = metadata_extractor_set_path(handle, file_path);
+
+ if (err != METADATA_EXTRACTOR_ERROR_NONE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "metadata_extractor_set_path is failed, %d", err);
+ metadata_extractor_destroy(handle);
+ return FALSE;
+ }
+
+ err = metadata_extractor_get_metadata(handle, METADATA_VIDEO_WIDTH, &value);
+
+ if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+ if (value) {
+ *width = atoi(value);
+ free(value);
}
- iserror = TRUE;
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "metadata_extractor_get_metadata(METADATA_VIDEO_WIDTH) is failed - err(%x)", err);
+ metadata_extractor_destroy(handle);
+ return FALSE;
}
- err = mm_file_destroy_content_attrs(content);
- if (err != 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_file_destroy_content_attrs FAILED err = %x", err);
- iserror = TRUE;
+ err = metadata_extractor_get_metadata(handle, METADATA_VIDEO_HEIGHT, &value);
+
+ if (err == METADATA_EXTRACTOR_ERROR_NONE) {
+ if (value) {
+ *height = atoi(value);
+ free(value);
+ }
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "metadata_extractor_get_metadata(METADATA_VIDEO_HEIGHT) is failed - err(%x)", err);
+ metadata_extractor_destroy(handle);
+ return FALSE;
}
+
+ metadata_extractor_destroy(handle);
+
+ return TRUE;
} else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mm_file_create_content_attrs FAILED err = %x", err);
- iserror = TRUE;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "metadata_extractor_create FAILED err = %x", err);
}
- if (iserror)
- return FALSE;
-
- return TRUE;
+ return FALSE;
}
}
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Image resized_width = %d, resized_height = %d", resized_width, resized_height);
+ viewerRenderData->resized_width = resized_width;
+ viewerRenderData->resized_height = resized_height;
+
/*create image object for video image*/
Evas *evas = NULL;
evas = evas_object_evas_get(viewerRenderData->main_window);
/*video top*/
elm_box_pack_start(viewerRenderData->viewer_content_box, ic);
+ if (viewerRenderData->viewer_body_top_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_top_padding);
+ elm_box_pack_start(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_top_padding);
+ }
+
#ifdef MSG_VIEWER_ENABLE_VIDEO_TOP_AND_BOTTOM /*Set image top as defalt region in case of video*/
SMIL_SLIDE_INFO_S *curSlideInfo = NULL;
MSG_BOOL istexttop = FALSE;
}
-static MSG_BOOL __msg_smil_render_play_video_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path)
+static MSG_BOOL __msg_smil_render_play_video_file(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, FALSE);
if (!viewerRenderData->video_image)
__msg_smil_render_create_video_image(viewerRenderData);
- if (!__msg_smil_render_player_mgr_create(viewerRenderData))
+ if (!__msg_smil_render_player_mgr_create(viewerRenderData)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_create is failed");
return FALSE;
+ }
- if (!__msg_smil_render_player_mgr_set_attribute(viewerRenderData, path, MMS_SMIL_MEDIA_VIDEO))
+ if (!__msg_smil_render_player_mgr_set_attribute(viewerRenderData, path, MMS_SMIL_MEDIA_VIDEO)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_set_attribute is failed");
return FALSE;
-
- if (!__msg_smil_render_player_mgr_set_msg_cb(__msg_smil_render_msg_cb, (void *)viewerRenderData))
+ }
+ if (!__msg_smil_render_player_mgr_set_player_cb((void *)viewerRenderData)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_set_player_cb is failed");
return FALSE;
+ }
- if (!__msg_smil_render_player_mgr_set_video_stream_cb(__msg_smil_render_video_stream_cb, (void *)viewerRenderData))
- return FALSE;
+ /* add getting content duration idler */
+ if (viewerRenderData->video_duration_idle) {
+ ecore_idler_del(viewerRenderData->video_duration_idle);
+ viewerRenderData->video_duration_idle = NULL;
+ }
+ viewerRenderData->video_duration_idle = ecore_idler_add(__msg_smil_render_player_mgr_get_content_duration, (void *)viewerRenderData);
+ viewerRenderData->is_skip_frame = TRUE;
- if (!__msg_smil_render_player_mgr_realize((void *)viewerRenderData))
+ /* set video stream cb */
+ if (!__msg_smil_render_player_mgr_set_video_stream_cb(__msg_smil_render_video_stream_cb, (void *)viewerRenderData)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_set_video_stream_cb is failed");
return FALSE;
+ }
- if (!__msg_smil_render_player_mgr_play((void *)viewerRenderData)) {
- return FALSE;
+ if (status == PLAYER_STATUS_PLAYING) {
+ if (!__msg_smil_render_player_mgr_realize((void *)viewerRenderData)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_realize is failed");
+ return FALSE;
+ }
+
+ if (__msg_smil_render_player_mgr_play((void *)viewerRenderData)) {
+ SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
+ SMIL_SLIDE_INFO_S *current_slide_data = _msg_smil_cont_mgr_get_cur_slide(smilContMgrHndle);
+
+ if (current_slide_data->pageInfo && current_slide_data->pageInfo->hasVideo)
+ __msg_smil_render_start_video_timer(viewerRenderData);
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_player_mgr_play is failed");
+ return FALSE;
+ }
}
return TRUE;
}
-MSG_BOOL _msg_smil_render_show_inserted_video(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path)
+MSG_BOOL _msg_smil_render_show_inserted_video(SMIL_RENDERER_DATA_S *viewerRenderData, const char *path, SMIL_PLAYER_STATUS_E status)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, FALSE);
//copy drm content to app path end
/*play drm video file*/
- if (__msg_smil_render_play_video_file(viewerRenderData, app_drm_path) == FALSE) {
+ if (__msg_smil_render_play_video_file(viewerRenderData, app_drm_path, status) == FALSE) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_play_video_file is failed");
_msg_smil_render_stop_playing_file((void *)viewerRenderData);
}
} else {
/*normal case -- no drm*/
- if (__msg_smil_render_play_video_file(viewerRenderData, path) == FALSE) {
+ if (__msg_smil_render_play_video_file(viewerRenderData, path, status) == FALSE) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "__msg_smil_render_play_video_file is failed");
_msg_smil_render_stop_playing_file((void *)viewerRenderData);
return FALSE;
{
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, "viewerRenderData is NULL");
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, path == NULL, "path is NULL");
- Evas_Object *image_layout = NULL;
Evas_Object *ic = NULL;
int contnet_w = 0;
int contnet_h = 0;
evas_object_del(img);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "image_width = %d, image_height = %d", contnet_w, contnet_h);
- /*create layout for image*/
- image_layout = elm_layout_add(viewerRenderData->layout_main);
- MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, image_layout == NULL, "failed to create viewerRenderData->viewer_content_layout");
-
- elm_layout_file_set(image_layout, MSG_VIEWER_THEME, "viewer_main");
- evas_object_size_hint_weight_set(image_layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(image_layout, 0.0, 0.0);
- evas_object_show(image_layout);
-
-
/*create icon above image_layout*/
- ic = elm_icon_add(image_layout);
+ ic = elm_icon_add(viewerRenderData->layout_main);
- if (imageType == VIEWER_IMAGE_TYPE_DRM_IMAGE_RAW_DATA) // rendering drm image by raw data
+ if (imageType == VIEWER_IMAGE_TYPE_DRM_IMAGE_RAW_DATA) { // rendering drm image by raw data
elm_icon_file_set(ic, MSG_VIEWER_IMAGE_DRM_ICON, NULL);
- else
+ } else {
elm_icon_file_set(ic, path, NULL);
+ }
MSG_UI_RETM_IF(MSG_UI_LEVEL_DEBUG, ic == NULL, "attached image add failed");
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid case");
}
- elm_object_part_content_set(image_layout, "viewer.body.content", ic);
+ elm_object_part_content_set(viewerRenderData->viewer_content_box, "viewer.body.content", ic);
if (imageType == VIEWER_IMAGE_TYPE_DRM_SOUND) {
if (!viewerRenderData->insert_sound_icon) {
- elm_box_pack_end(viewerRenderData->viewer_content_box, image_layout); /*sound drm icon*/
- viewerRenderData->insert_sound_icon = image_layout;
+ elm_box_pack_end(viewerRenderData->viewer_content_box, ic); /*sound drm icon*/
+ viewerRenderData->insert_sound_icon = ic;
evas_object_show(ic);
} else {
evas_object_del(ic);
}
} else if (imageType == VIEWER_IMAGE_TYPE_UNSUPPORTED) {
if (!viewerRenderData->insert_unsupported_icon) {
- elm_box_pack_end(viewerRenderData->viewer_content_box, image_layout); /*unsupported file icon*/
- viewerRenderData->insert_unsupported_icon = image_layout;
+ elm_box_pack_end(viewerRenderData->viewer_content_box, ic); /*unsupported file icon*/
+ viewerRenderData->insert_unsupported_icon = ic;
evas_object_show(ic);
} else {
evas_object_del(ic);
}
} else {
- elm_box_pack_start(viewerRenderData->viewer_content_box, image_layout);/*image top*/
- viewerRenderData->insert_image = image_layout;
+ elm_box_pack_start(viewerRenderData->viewer_content_box, ic);/*image top*/
+ viewerRenderData->insert_image = ic;
+
+ if (viewerRenderData->viewer_body_top_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_top_padding);
+ elm_box_pack_start(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_top_padding);
+ }
/*display region area according to Region info*/
MSG_BOOL istexttop = FALSE;
if (curSlideInfo && curSlideInfo->pageInfo)
istexttop = curSlideInfo->pageInfo->isTexttop;
- if (istexttop) {
+ if (istexttop && viewerRenderData->viewer_body) {
if (viewerRenderData->insert_sound_icon || viewerRenderData->insert_unsupported_icon) {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Text top message. And there is a drm sound or unsupported icon");
- elm_box_unpack(viewerRenderData->viewer_content_box, image_layout);
- elm_box_pack_after(viewerRenderData->viewer_content_box, image_layout, viewerRenderData->viewer_body);
+ elm_box_unpack(viewerRenderData->viewer_content_box, ic);
+
+ if (viewerRenderData->viewer_body_mid_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+ elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body);
+ elm_box_pack_after(viewerRenderData->viewer_content_box, ic, viewerRenderData->viewer_body_mid_padding);
+ } else {
+ elm_box_pack_after(viewerRenderData->viewer_content_box, ic, viewerRenderData->viewer_body);
+ }
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Text top message");
- elm_box_unpack(viewerRenderData->viewer_content_box, image_layout);
- elm_box_pack_end(viewerRenderData->viewer_content_box, image_layout);
+ elm_box_unpack(viewerRenderData->viewer_content_box, ic);
+ elm_box_pack_end(viewerRenderData->viewer_content_box, ic);
+
+ if (viewerRenderData->viewer_body_mid_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+ elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body);
+ }
+
+ if (viewerRenderData->viewer_body_bottom_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ }
}
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Image top message");
err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed :PLAYER_EVENT_NEXT_SLIDE");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed : PLAYER_EVENT_NEXT_SLIDE");
slideIdx -= MSG_MMS_SMIL_SLIDEIDX_INCREMENT;
_msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
return err;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PLAYER_EVENT_PREV_SLIDE");
err = _msg_smil_event_mgr_stop_slide(smilPlayerHndle->smilEvntMgrHndle);
if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_stop_slide is failed: PLAYER_EVENT_PREV_SLIDE");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_stop_slide is failed : PLAYER_EVENT_PREV_SLIDE");
return err;
}
_msg_smil_render_stop_playing_file(smilPlayerHndle->smilRenderer);
err = _msg_smil_event_mgr_play_slide(smilPlayerHndle->smilEvntMgrHndle, slideIdx);
if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed: PLAYER_EVENT_PREV_SLIDE");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_event_mgr_play_slide is failed : PLAYER_EVENT_PREV_SLIDE");
slideIdx += MSG_MMS_SMIL_SLIDEIDX_DECREMENT;
_msg_smil_cont_mgr_set_cur_slide_idx(smilPlayerHndle->smilContMgrHndle, slideIdx);
return err;
* FUNCTION DECLARATIONS
*==================================================================================================*/
static void __msg_smil_render_set_bg_color(SMIL_RENDERER_DATA_S *viewerRenderData);
+static char *__msg_smil_render_get_cur_page_media_file_name(SMIL_RENDERER_DATA_S *viewerRenderData, int media_type);
/*================================================================================================
* FUNCTION IMPLEMENTATIONS
*================================================================================================*/
Evas_Object *eo = NULL;
Evas_Object *entry = NULL;
+ /* clean up all object */
+ if (viewerRenderData->viewer_scroller) {
+ evas_object_del(viewerRenderData->viewer_scroller);
+ viewerRenderData->viewer_scroller = NULL;
+ }
+
+ if (viewerRenderData->viewer_content_box) {
+ evas_object_del(viewerRenderData->viewer_content_box);
+ viewerRenderData->viewer_content_box = NULL;
+ }
+
+ if (viewerRenderData->viewer_body_top_padding) {
+ evas_object_del(viewerRenderData->viewer_body_top_padding);
+ viewerRenderData->viewer_body_top_padding = NULL;
+ }
+
+ if (viewerRenderData->viewer_body_mid_padding) {
+ evas_object_del(viewerRenderData->viewer_body_mid_padding);
+ viewerRenderData->viewer_body_mid_padding = NULL;
+ }
+
+ if (viewerRenderData->viewer_body) {
+ evas_object_del(viewerRenderData->viewer_body);
+ viewerRenderData->viewer_body = NULL;
+ }
+
+ if (viewerRenderData->viewer_body_bottom_padding) {
+ evas_object_del(viewerRenderData->viewer_body_bottom_padding);
+ viewerRenderData->viewer_body_bottom_padding = NULL;
+ }
+
+ if (viewerRenderData->viewer_audio_name_rect) {
+ evas_object_del(viewerRenderData->viewer_audio_name_rect);
+ viewerRenderData->viewer_audio_name_rect = NULL;
+ }
+
+ if (viewerRenderData->viewer_bg_rect) {
+ evas_object_del(viewerRenderData->viewer_bg_rect);
+ viewerRenderData->viewer_bg_rect = NULL;
+ }
+
viewerRenderData->layout_main = layout;
- /*create scroller*/
- if (!viewerRenderData->viewer_scroller) {
- eo = elm_scroller_add(layout);
- evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL);
- elm_scroller_bounce_set(eo, FALSE, TRUE);
- elm_scroller_policy_set(eo, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
- elm_object_part_content_set(layout, "viewer.body", eo);
- evas_object_show(eo);
- viewerRenderData->viewer_scroller = eo;
+ /* get current slide */
+ SMIL_SLIDE_INFO_S *cur_slide = _msg_smil_get_current_slide_info(viewerRenderData->smilhandle);
+ if (!cur_slide || !cur_slide->pageInfo) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_get_current_slide_info is failed");
+ return FALSE;
}
+ /*create scroller*/
+ eo = elm_scroller_add(layout);
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, EVAS_HINT_FILL);
+ elm_scroller_bounce_set(eo, FALSE, TRUE);
+ elm_scroller_policy_set(eo, ELM_SCROLLER_POLICY_OFF, ELM_SCROLLER_POLICY_AUTO);
+ elm_object_part_content_set(layout, "viewer.body", eo);
+ evas_object_show(eo);
+ viewerRenderData->viewer_scroller = eo;
+
/* create content box */
- if (!viewerRenderData->viewer_content_box) {
- viewerRenderData->viewer_content_box = eo = elm_box_add(layout);
+ viewerRenderData->viewer_content_box = eo = elm_box_add(layout);
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, 0.0);
+ elm_box_homogeneous_set(eo, EINA_FALSE);
+ evas_object_show(eo);
+ elm_object_content_set(viewerRenderData->viewer_scroller, viewerRenderData->viewer_content_box);
+
+ /* create body top padding */
+ viewerRenderData->viewer_body_top_padding = eo = elm_layout_add(layout);
+ elm_layout_file_set(viewerRenderData->viewer_body_top_padding, MSG_VIEWER_THEME, "viewer_body_outer_margin");
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, 0.0);
+ elm_box_pack_start(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_top_padding);
+ evas_object_show(eo);
+
+ /* create body mid padding - check the condition for mid padding area should be created or not */
+ if ((cur_slide->pageInfo->hasText || cur_slide->pageInfo->isHelpPage) && (cur_slide->pageInfo->hasImage || cur_slide->pageInfo->hasVideo)) {
+ viewerRenderData->viewer_body_mid_padding = eo = elm_layout_add(layout);
+ elm_layout_file_set(viewerRenderData->viewer_body_mid_padding, MSG_VIEWER_THEME, "viewer_body_inner_margin");
evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, 0.0);
- elm_box_homogeneous_set(eo, EINA_FALSE);
+ elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body_top_padding);
evas_object_show(eo);
}
- elm_object_content_set(viewerRenderData->viewer_scroller, viewerRenderData->viewer_content_box);
-
/* create entry */
- if (!viewerRenderData->viewer_body) {
+ if (cur_slide->pageInfo->hasText || cur_slide->pageInfo->isHelpPage) {
entry = elm_entry_add(layout);
elm_entry_entry_set(entry, "");
elm_entry_editable_set(entry, 0);
viewerRenderData->viewer_body = entry;
}
- /*bg color rectangular*/
- if (!viewerRenderData->viewer_bg_rect) {
- eo = evas_object_rectangle_add(evas_object_evas_get(layout));
- evas_object_color_set(eo, 255, 0, 0, 255);
- elm_object_part_content_set(layout, "viewer.body.bg", eo);
- evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
- evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, 0.0);
- evas_object_show(eo);
- viewerRenderData->viewer_bg_rect = eo;
+ /* create body bottom padding */
+ viewerRenderData->viewer_body_bottom_padding = eo = elm_layout_add(layout);
+ elm_layout_file_set(viewerRenderData->viewer_body_bottom_padding, MSG_VIEWER_THEME, "viewer_body_outer_margin");
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, 0.0);
+ elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ evas_object_show(eo);
+
+ /* create audio name panel */
+ if (cur_slide->pageInfo->hasAudio) {
+ char *file_name = NULL;
+ Evas_Object *layout = elm_layout_add(viewerRenderData->layout_main);
+ elm_layout_file_set(layout, MSG_VIEWER_THEME, "audio/panel");
+ evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ evas_object_show(layout);
+ viewerRenderData->viewer_audio_name_rect = layout;
+
+ file_name = __msg_smil_render_get_cur_page_media_file_name(viewerRenderData, MMS_SMIL_MEDIA_AUDIO);
+ if (file_name[0] != '\0') {
+ edje_object_part_text_set(_EDJ(viewerRenderData->viewer_audio_name_rect), "audio.text.filename", file_name);
+ free(file_name);
+ }
+
+ elm_object_part_content_set(viewerRenderData->layout_main, "viewer.swallow.audio.panel", viewerRenderData->viewer_audio_name_rect);
+ evas_object_show(viewerRenderData->viewer_audio_name_rect);
}
+ /* bg color rectangular */
+ eo = evas_object_rectangle_add(evas_object_evas_get(layout));
+ evas_object_color_set(eo, 255, 0, 0, 255);
+ elm_object_part_content_set(layout, "viewer.body.bg", eo);
+ evas_object_size_hint_weight_set(eo, EVAS_HINT_EXPAND, 0.0);
+ evas_object_size_hint_align_set(eo, EVAS_HINT_FILL, 0.0);
+ evas_object_show(eo);
+ viewerRenderData->viewer_bg_rect = eo;
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
return TRUE;
}
case SMIL_RENDER_EVENT_PAGE_PLAY_START:
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "SMIL_RENDER_EVENT_PAGE_PLAY_START");
+ /*create smil rendering layout again*/
+ if (_msg_smil_render_create_layout(viewerRenderData, viewerRenderData->layout_main) == FALSE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_create_layout is failed");
+ return MSG_ERR_SMIL_UI_DISPLAY_FAIURE;
+ }
+
if (viewerRenderData->insert_image) {
evas_object_del(viewerRenderData->insert_image);
viewerRenderData->insert_image = NULL;
}
_msg_smil_render_stop_playing_file((void *)viewerRenderData);
- elm_entry_entry_set(viewerRenderData->viewer_body, "");
- /* disable copy and paste popup */
- elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
- elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
- elm_entry_select_none(viewerRenderData->viewer_body);
+ if (viewerRenderData->viewer_body) {
+ elm_entry_entry_set(viewerRenderData->viewer_body, "");
+
+ /* disable copy and paste popup */
+ elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
+ elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
+ elm_entry_select_none(viewerRenderData->viewer_body);
+ }
/* set viewer bg color */
__msg_smil_render_set_bg_color(viewerRenderData);
case SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START:
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "SMIL_RENDER_EVENT_PAGE_MEDIA_PLAY_START");
+ /*create smil rendering layout again*/
+ if (_msg_smil_render_create_layout(viewerRenderData, viewerRenderData->layout_main) == FALSE) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_create_layout is failed");
+ return MSG_ERR_SMIL_UI_DISPLAY_FAIURE;
+ }
+
if (viewerRenderData->insert_image) {
evas_object_del(viewerRenderData->insert_image);
viewerRenderData->insert_image = NULL;
}
_msg_smil_render_stop_playing_file((void *)viewerRenderData);
- elm_entry_entry_set(viewerRenderData->viewer_body, "");
- /* disable copy and paste popup */
- elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
- elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
- elm_entry_select_none(viewerRenderData->viewer_body);
+ if (viewerRenderData->viewer_body) {
+ elm_entry_entry_set(viewerRenderData->viewer_body, "");
+
+ /* disable copy and paste popup */
+ elm_entry_context_menu_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
+ elm_entry_magnifier_disabled_set(viewerRenderData->viewer_body, EINA_TRUE);
+ elm_entry_select_none(viewerRenderData->viewer_body);
+ }
/* set viewer bg color */
__msg_smil_render_set_bg_color(viewerRenderData);
case SMIL_RENDER_EVENT_DESTROY_SCREEN:
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "SMIL_RENDER_EVENT_DESTROY_SCREEN");
- elm_entry_entry_set(viewerRenderData->viewer_body, "");
+ if (viewerRenderData->viewer_body)
+ elm_entry_entry_set(viewerRenderData->viewer_body, "");
if (viewerRenderData->insert_image) {
evas_object_del(viewerRenderData->insert_image);
SMIL_CONTENT_MGR_HANDLE_S *smilContMgrHndle = _msg_smil_get_content_mgr(viewerRenderData->smilhandle);
int pageCnt = _msg_smil_cont_mgr_get_total_slide_count(smilContMgrHndle);
+ msg_list_handle_t attachlist_info = NULL;
+ msg_struct_t attach_info = NULL;
+ int nAttachCnt = 0;
+ msg_struct_t mmsData_h = _msg_smil_cont_mgr_get_mms_body_struct_handle(smilContMgrHndle);
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, mmsData_h == NULL, MSG_ERR_SMIL_INVALID_PARAMETER);
+
+ msg_get_list_handle(mmsData_h, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
+ nAttachCnt = msg_list_length(attachlist_info);
+
if (pageCnt > 0) { //Multipart related
if (_msg_smil_cont_mgr_is_cur_slide_help_page(eventStatus->singleSlideInfo)) {
char buf_font[VIEWER_TEXT_FONT_LEN + 1] = {0, };
snprintf(buf_font, sizeof(buf_font), "<font_size=%d color=#6ca8c7>%s",
MMS_SMIL_FONT_SIZE_NORMAL,
- dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE"));
+ ((nAttachCnt > 1) ? dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE") : dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE_FOR_ONE_FILE")));
- elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
+ if (viewerRenderData->viewer_body)
+ elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
_msg_smil_render_show_help_page_attach_list(viewerRenderData);
+ if (viewerRenderData->viewer_body_mid_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+ elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body);
+ }
+
+ if (viewerRenderData->viewer_body_bottom_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ }
+
} else {
if (_msg_smil_render_reload_mms(viewerRenderData, eventStatus) == FALSE) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_reload_mms is failed");
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "eventStatus->singleSlideInfo->commonData->attachCnt : %d", eventStatus->singleSlideInfo->commonData->attachCnt);
if (_msg_smil_cont_mgr_is_cur_slide_help_page(eventStatus->singleSlideInfo)) {
- msg_list_handle_t attachlist_info = NULL;
- msg_struct_t attach_info = NULL;
- int nAttachCnt = 0;
int mediaType = 0;
- msg_struct_t mmsData_h = _msg_smil_cont_mgr_get_mms_body_struct_handle(smilContMgrHndle);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, mmsData_h == NULL, MSG_ERR_SMIL_INVALID_PARAMETER);
-
- msg_get_list_handle(mmsData_h, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
- nAttachCnt = msg_list_length(attachlist_info);
-
if (nAttachCnt == 1) {
attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, 0);
MMS_SMIL_FONT_SIZE_NORMAL,
dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE"));
- elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
+ if (viewerRenderData->viewer_body)
+ elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
_msg_smil_render_show_help_page_attach_list(viewerRenderData);
+
+ if (viewerRenderData->viewer_body_mid_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+ elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body);
+ }
+
+ if (viewerRenderData->viewer_body_bottom_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ }
}
} else { //nAttachCnt > 1
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Attachment count is over than 1, Display help page");
MMS_SMIL_FONT_SIZE_NORMAL,
dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_HELP_PAGE_MESSAGE"));
- elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
+ if (viewerRenderData->viewer_body)
+ elm_entry_entry_set(viewerRenderData->viewer_body, buf_font);
_msg_smil_render_show_help_page_attach_list(viewerRenderData);
+
+ if (viewerRenderData->viewer_body_mid_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding);
+ elm_box_pack_after(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_mid_padding, viewerRenderData->viewer_body);
+ }
+
+ if (viewerRenderData->viewer_body_bottom_padding) {
+ elm_box_unpack(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ elm_box_pack_end(viewerRenderData->viewer_content_box, viewerRenderData->viewer_body_bottom_padding);
+ }
}
} else {
- elm_entry_entry_set(viewerRenderData->viewer_body, "");
+ if (viewerRenderData->viewer_body)
+ elm_entry_entry_set(viewerRenderData->viewer_body, "");
}
}
bool heightPercent;
char szFileName[MSG_FILENAME_LEN_MAX] = {0,};
- char szFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
- char regionId[MAX_SMIL_REGION_ID] = {0,};
+ char szFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
+ char regionId[MAX_SMIL_REGION_ID] = {0,};
/*Get smil handler*/
SMIL_HANDLER_S *smilHandle = (SMIL_HANDLER_S *)viewerRenderData->smilhandle;
} else
isSoundUsed = TRUE;
- if (_msg_smil_render_show_inserted_audio(viewerRenderData, szFilePath) == FALSE) {
+ if (_msg_smil_render_show_inserted_audio(viewerRenderData, szFilePath, eventStatus->singleSlideInfo->slideStatus) == FALSE) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_show_inserted_audio is failed");
return FALSE;
}
isImageUsed = TRUE;
}
- if (_msg_smil_render_show_inserted_video(viewerRenderData, szFilePath) == FALSE) {
+ if (_msg_smil_render_show_inserted_video(viewerRenderData, szFilePath, eventStatus->singleSlideInfo->slideStatus) == FALSE) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "_msg_smil_render_show_inserted_video is failed");
return FALSE; /*returning FALSE is required to register timer in case of failed video play*/
}
return TRUE;
}
+static char *__msg_smil_render_get_cur_page_media_file_name(SMIL_RENDERER_DATA_S *viewerRenderData, int media_type)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, NULL);
+ SMIL_SLIDE_INFO_S *cur_slide = NULL;
+ char *return_str = NULL;
+ char file_name[MSG_FILENAME_LEN_MAX] = {0};
+
+ cur_slide = _msg_smil_get_current_slide_info(viewerRenderData->smilhandle);
+ if (!cur_slide || !cur_slide->pageInfo) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_get_current_slide_info is failed");
+ return NULL;
+ }
+
+ /* get page list handle */
+ msg_list_handle_t pagelist_info = NULL;
+ msg_get_list_handle(viewerRenderData->msg_info_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
+
+ /*Get page*/
+ msg_struct_t page_info = NULL;
+ page_info = msg_list_nth_data(pagelist_info, cur_slide->pageIdx);
+
+ /* get media list handle */
+ msg_list_handle_t media_list_info = NULL;
+ msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&media_list_info);
+
+ int media_cnt = 0;
+ media_cnt = msg_list_length(media_list_info);
+
+ int index = 0;
+ for (index = 0; index < media_cnt; index++) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", index);
+ int mediaType = 0;
+
+ /* get media handle */
+ msg_struct_t media_info = NULL;
+ media_info = msg_list_nth_data(media_list_info, index);
+
+ if (media_info == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "media_info is Null");
+ return NULL;
+ }
+
+ msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
+
+ if (mediaType == media_type) {
+ msg_get_str_value(media_info, MSG_MMS_MEDIA_FILENAME_STR, file_name, sizeof(file_name));
+ return_str = g_strdup(file_name);
+ break;
+ }
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return return_str; //it should be freed after use
+}
\ No newline at end of file
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData == NULL, FALSE);
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, viewerRenderData->viewer_body == NULL, FALSE);
+
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, path == NULL, FALSE);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "path : (%s)", path);
FILE *fp = NULL;
if (viewer_main_data->player_view) {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "PLAYER launch_cmd : %d, cmd_type : %d", viewer_main_data->player_view->launch_cmd, viewer_main_data->player_view->cmd_type);
if (viewer_main_data->player_view->launch_cmd == MSG_VIEWER_LOAD_OTHER_UG_MODE &&
- (viewer_main_data->player_view->cmd_type == MSG_VIEWER_CMD_LOAD_ADD_TO_CONTACT ||
- viewer_main_data->player_view->cmd_type == MSG_VIEWER_CMD_LOAD_EMAIL_COMPOSER ||
- viewer_main_data->player_view->cmd_type == MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER)) {
+ (viewer_main_data->player_view->cmd_type == MSG_VIEWER_CMD_LOAD_CONTACT)) {
/*update title button text after contact sync */
- if (viewer_main_data->player_view->cmd_type == MSG_VIEWER_CMD_LOAD_ADD_TO_CONTACT)
- msg_ui_viewer_contact_info_update(viewer_main_data->player_view);
+ msg_ui_viewer_title_update(viewer_main_data->player_view, MSG_VIEWER_OPTION_CONTACT);
+ }
- /*connect handler again*/
- if (!viewer_main_data->player_view->mouse_down_event_handler)
- viewer_main_data->player_view->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_main_data->player_view);
+ /*connect handler again*/
+ if (!viewer_main_data->player_view->mouse_down_event_handler)
+ viewer_main_data->player_view->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_main_data->player_view);
- viewer_main_data->player_view->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_main_data->player_view->cmd_type = MSG_VIEWER_CMD_NONE;
- }
+ viewer_main_data->player_view->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
+ viewer_main_data->player_view->cmd_type = MSG_VIEWER_CMD_NONE;
}
}
#include "msg-ui-image-resource.h"
#include <bundle.h>
-#include "aul.h"
/*==================================================================================================
* DEFINITIONS
Elm_Object_Item *selected_item = (Elm_Object_Item *)event_info;
char szurl[MSG_UI_URL_MAX_LEN + 1] = {0x00};
MSG_DRM_LIST_DATA_S *drm_list_data = NULL;
+ service_h svc_handle = NULL;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "media_type [%d]", pmedia_info->media_type);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "pfile_name [%s]", pmedia_info->pfile_name);
drm_list_data->drm_list_cmd = MSG_VIEWER_DRM_LIST_CMD_LAUNCH_BROWSER;
drm_list_data->selected_item = selected_item;
drm_list_data->selected_file_info = pmedia_info;
- } else
+ } else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "drm_list_data is NULL");
+ }
/*launch browser to buy ro*/
- aul_open_content(szurl);
+ if (service_create(&svc_handle) < 0 || svc_handle == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_create() is failed !!");
+ } else {
+ service_set_operation(svc_handle, SERVICE_OPERATION_VIEW);
+ service_set_uri(svc_handle, szurl);
+
+ if (service_send_launch_request(svc_handle, NULL, NULL) != SERVICE_ERROR_NONE)
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed");
+
+ service_destroy(svc_handle);
+ }
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_get_drm_url is failed");
}
static void __msg_ui_viewer_on_event(ui_gadget_h ug, enum ug_event event, service_h svc_handle, void *priv);
static void __msg_ui_viewer_on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h svc_handle, void *priv);
+static void __msg_ui_viewer_reload_viewer_ug(void *data, service_h svc_handle);
static void __msg_ui_viewer_destroy_viewer_ug(void *data);
static unsigned int __msg_ui_viewer_convert_atoh(const char *string);
static void __msg_ui_viewer_rotate_play_window(void *data, int rotate);
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "There is no msgID");
return NULL;
}
+
+ char *msg_box_mode = NULL;
+ /* get mode if viewer should be displayed from message box */
+ service_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MESSAGE_BOX, &msg_box_mode);
+
+ if (msg_box_mode) {
+ if (!g_strcmp0(msg_box_mode, MSG_BUNDLE_VALUE_MSGBOX_PROTECTED) || !g_strcmp0(msg_box_mode, MSG_BUNDLE_VALUE_MSGBOX_SPAM))
+ viewer_main_data->msg_box_viewer = true;
+ }
}
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "data is NULL");
viewer_main_data->ug_launch_mode = MSG_UG_MODE_FULLVIEW;
/*create layout*/
Evas_Object *bg = msg_ui_viewer_create_bg(viewer_main_data, viewer_main_data->main_window);
- layout = msg_ui_viewer_create_layout_main(viewer_main_data->main_window);
+
+ bool show_indicator = true;
+ char *indicator_mode = NULL;
+
+ service_get_extra_data(svc_handle, MSG_BUNDLE_KEY_INDICATOR_MODE, &indicator_mode);
+ if (indicator_mode) {
+ if (!g_strcmp0(indicator_mode, MSG_BUNDLE_VALUE_NO_INDICATOR))
+ show_indicator = false;
+ }
+
+ layout = msg_ui_viewer_create_layout_main(viewer_main_data->main_window, show_indicator);
viewer_main_data->layout_main = layout;
if (bg)
if (viewer_main_data->view_mode == MSG_VIEWER_PLAYER_VIEW) {
if (viewer_main_data->player_view) {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Player view launch_cmd : %d, cmd_type : %d", viewer_main_data->player_view->launch_cmd, viewer_main_data->player_view->cmd_type);
- /*connect handler again*/
- if (!viewer_main_data->player_view->mouse_down_event_handler)
- viewer_main_data->player_view->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_main_data->player_view);
+
+ if (!viewer_main_data->player_view->popup) {
+ /*connect handler again*/
+ if (!viewer_main_data->player_view->mouse_down_event_handler)
+ viewer_main_data->player_view->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_main_data->player_view);
+ }
if (viewer_main_data->player_view->launch_cmd == MSG_VIEWER_LOAD_OTHER_APP_MODE) {
/*reset launch_cmd and cmd_type*/
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_main_data->SmilHandle : %x", viewer_main_data->SmilHandle);
- if (viewer_main_data->item_list_view) {
- msg_ui_viewer_destroy_item_list(viewer_main_data->item_list_view);
- free(viewer_main_data->item_list_view);
- viewer_main_data->item_list_view = NULL;
- }
-
if (viewer_main_data->player_view) {
msg_ui_viewer_destroy_play_view(viewer_main_data->player_view);
free(viewer_main_data->player_view);
static void __msg_ui_viewer_on_message(ui_gadget_h ug, service_h svc_msg_h, service_h svc_data_h, void *priv)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, priv == NULL);
+ MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)priv;
+
+ __msg_ui_viewer_reload_viewer_ug(viewer_main_data, svc_msg_h);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
static void __msg_ui_viewer_on_event(ui_gadget_h ug, enum ug_event event, service_h svc_handle, void *priv)
int battey_level = 0;
vconf_get_int(VCONFKEY_SYSMAN_BATTERY_STATUS_LOW , &battey_level);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "battey_level = %d", battey_level);
- if (battey_level == VCONFKEY_SYSMAN_BAT_POWER_OFF)
- __msg_ui_viewer_destroy_viewer_ug(priv);
+ if (battey_level == VCONFKEY_SYSMAN_BAT_POWER_OFF) {
+ int charger_status = -1;
+ vconf_get_int(VCONFKEY_SYSMAN_BATTERY_CHARGE_NOW, &charger_status);
+
+ if (!charger_status)
+ __msg_ui_viewer_destroy_viewer_ug(priv);
+ }
break;
}
msg_ui_viewer_update_play_controller(viewer_main_data->player_view, MSG_VIEWER_STOP);
}
}
- } else if (viewer_main_data->view_mode == MSG_VIEWER_ITEM_LIST_VIEW) {
- if (viewer_main_data->item_list_view) {
- if (viewer_main_data->item_list_view->popup) {
- elm_popup_timeout_set(viewer_main_data->item_list_view->popup, 0);
- evas_object_del(viewer_main_data->item_list_view->popup);
- viewer_main_data->item_list_view->popup = NULL;
- ispopup = TRUE;
- }
- }
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Not required case");
}
}
}
+static void __msg_ui_viewer_reload_viewer_ug(void *data, service_h svc_handle)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
+ MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)data;
+
+ if (viewer_main_data->msg_t) {
+ msg_release_struct(&viewer_main_data->msg_t);
+ viewer_main_data->msg_t = NULL;
+ }
+
+ if (viewer_main_data->mms_t) {
+ msg_release_struct(&viewer_main_data->mms_t);
+ viewer_main_data->mms_t = NULL;
+ }
+
+ if (svc_handle) {
+ char *msgid = NULL;
+ service_get_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, &msgid);
+ if (msgid) {
+ viewer_main_data->msgID = (int)atoi(msgid);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msgID = %d", viewer_main_data->msgID);
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "There is no msgid");
+ return;
+ }
+ }
+
+ if (viewer_main_data->view_mode == MSG_VIEWER_PLAYER_VIEW) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Reset play view mode");
+
+ if (viewer_main_data->player_view) {
+ msg_ui_viewer_destroy_play_view(viewer_main_data->player_view);
+ free(viewer_main_data->player_view);
+ viewer_main_data->player_view = NULL;
+ }
+
+ if (viewer_main_data->SmilHandle) {
+ msg_smil_destroy_smil_player(viewer_main_data->SmilHandle);
+ msg_ui_viewer_set_smilhandle(viewer_main_data, NULL);
+ }
+
+ if (msg_ui_viewer_launch(viewer_main_data) == FALSE) {
+ msg_common_reset_font_size("entry");
+ ug_destroy_me(viewer_main_data->viewer_ug);
+ }
+ } else if (viewer_main_data->view_mode == MSG_VIEWER_DRM_LIST_VIEW) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "DRM list view mode, come here to implement");
+ if (viewer_main_data->drm_list_view) {
+ msg_ui_viewer_destroy_drm_list_view(viewer_main_data->drm_list_view);
+ free(viewer_main_data->drm_list_view);
+ viewer_main_data->drm_list_view = NULL;
+ }
+
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "%d mode is not required anything", viewer_main_data->view_mode);
+ }
+}
+
+
static void __msg_ui_viewer_destroy_viewer_ug(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
Error = msg_smil_on_slide_event_handler(&(viewer_main_data->player_view->SmilHandle), PLAYER_EVENT_STOP);
if (Error != MSG_SMIL_SUCCESS) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", Error);
- } else
+ } else {
viewer_main_data->player_view->status = MSG_VIEWER_STOP;
- }
- }
- } else if (viewer_main_data->view_mode == MSG_VIEWER_ITEM_LIST_VIEW) {
- if (viewer_main_data->item_list_view) {
- if (viewer_main_data->item_list_view->popup) {
- elm_popup_timeout_set(viewer_main_data->item_list_view->popup, 0);
- evas_object_del(viewer_main_data->item_list_view->popup);
- viewer_main_data->item_list_view->popup = NULL;
+ }
}
}
} else {
+++ /dev/null
-/*
- * Copyright 2012 Samsung Electronics Co., Ltd
- *
- * Licensed under the Flora License, Version 1.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.tizenopensource.org/license
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/*==================================================================================================
- * INCLUDE HEADERS
- * ==================================================================================================*/
-#include <msg.h>
-#include <msg_storage.h>
-#include <msg_transport.h>
-
-#include "msg-ui-viewer-item-list.h"
-#include "msg-ui-viewer-main.h"
-#include "msg-ui-image-resource.h"
-#include "msg-ui-viewer-utility.h"
-#include "msg-ui-common-utility.h"
-
-#include "aul.h"
-#include <glib.h>
-#include <Ecore_X.h>
-#include "appsvc.h"
-/*==================================================================================================
- * FUNCTION DECLARATIONS
- *==================================================================================================*/
-static void __viewer_back_button_cb(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_viewer_item_list_popup(void *data, Evas_Object *parent, char *pcontent);
-static void __viewer_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-static void __viewer_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info);
-
-static MSG_BOOL __msg_ui_viewer_auto_rename(char *src_path, char *dst_path);
-static void __viewer_save_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
-
-static char *__msg_ui_viewer_text_get(void *data, Evas_Object *obj, const char *part);
-static Evas_Object *__msg_ui_viewer_content_get(void *data, Evas_Object *obj, const char *part);
-static char *__msg_ui_viewer_group_text_get(void *data, Evas_Object *obj, const char *part);
-static void __msg_ui_viewer_genlist_item_selected(void *data, Evas_Object *obj, void *event_info);
-static void __msg_ui_viewer_item_selected(void *data, Evas_Object *obj, void *event_info);
-static Evas_Object *__msg_ui_viewer_create_genlist(void *data);
-static void __msg_ui_viewer_set_list_styles(void *data);
-static void __msg_ui_viewer_item_list_set_list_data(Evas_Object *genlist, void *data);
-static MSG_BOOL __msg_ui_viewer_item_list_get_list_data(void *data);
-static MSG_BOOL __msg_ui_viewer_get_body_message(void *data);
-static void __viewer_toolbar_play_cb(void *data, Evas_Object *obj, void *event_info);
-static void __viewer_toolbar_save_all_cb(void *data, Evas_Object *obj, void *event_info);
-static Evas_Object *__msg_ui_viewer_create_toolbar(Evas_Object *parent, void *data);
-
-/*==================================================================================================
-* FUNCTION IMPLEMENTATIONS
-*==================================================================================================*/
-void msg_ui_viewer_init_item_list(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- pitem_list_data->viewer_main = NULL;
- pitem_list_data->main_window = NULL;
- pitem_list_data->navi_frame = NULL;
- pitem_list_data->popup = NULL;
- pitem_list_data->genlist = NULL;
- pitem_list_data->msgHandle = NULL;
- pitem_list_data->msgID = 0;
- pitem_list_data->mms_t = NULL;
- pitem_list_data->insert_item_count = 0;
- pitem_list_data->attach_item_count = 0;
- pitem_list_data->insert_list = NULL;
- pitem_list_data->attach_list = NULL;
- pitem_list_data->group_list[0].index = 0;
- pitem_list_data->group_list[0].group_label = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_INSERTED_ITEMS");
- pitem_list_data->group_list[1].index = 1;
- pitem_list_data->group_list[1].group_label = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_ATTACHED_ITEMS");
-
- pitem_list_data->group_item_class = NULL;
- memset(&pitem_list_data->item_class, 0x00, sizeof(Elm_Genlist_Item_Class));
- memset(&pitem_list_data->title_class, 0x00, sizeof(Elm_Genlist_Item_Class));
-}
-
-void msg_ui_viewer_destroy_item_list(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- if (pitem_list_data->popup) {
- evas_object_del(pitem_list_data->popup);
- pitem_list_data->popup = NULL;
- }
-
-
- /*free insert list*/
- if (pitem_list_data->insert_list) {
- int index = 0;
- int ntotal = 0;
- ntotal = eina_list_count(pitem_list_data->insert_list);
- for (index = 0; index < ntotal; index++) {
- MSG_MEDIA_INFO_S *pmedia_info = eina_list_nth(pitem_list_data->insert_list, index);
- if (pmedia_info) {
- free(pmedia_info);
- pmedia_info = NULL;
- }
- }
- eina_list_free(pitem_list_data->insert_list);
- pitem_list_data->insert_list = NULL;
- }
-
- /*free attach list*/
- if (pitem_list_data->attach_list) {
- int index = 0;
- int ntotal = 0;
- ntotal = eina_list_count(pitem_list_data->attach_list);
- for (index = 0; index < ntotal; index++) {
- MSG_MEDIA_INFO_S *pmedia_info = eina_list_nth(pitem_list_data->attach_list, index);
- if (pmedia_info) {
- free(pmedia_info);
- pmedia_info = NULL;
- }
- }
- eina_list_free(pitem_list_data->attach_list);
- pitem_list_data->attach_list = NULL;
- }
-
- /* genlist must be destroyed before freeing itc */
- if (pitem_list_data->genlist) {
- evas_object_del(pitem_list_data->genlist);
- pitem_list_data->genlist = NULL;
- }
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-static void __viewer_back_button_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, obj == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- msg_common_reset_font_size("entry");
- ug_destroy_me(msg_ui_viewer_get_viewer_ug(pitem_list_data->viewer_main));
- elm_object_disabled_set(obj, TRUE);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-static MSG_BOOL __msg_ui_viewer_auto_rename(char *src_path, char *dst_path)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, src_path == NULL, FALSE);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, dst_path == NULL, FALSE);
- char file_ext[MSG_VIEWER_FILE_EXT_MAX_LEN + 1] = {0};
- char file_name_without_ext[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
- char new_file_name[MSG_VIEWER_FILENAME_MAX_LEN + 1] = {0};
- MSG_BOOL result = FALSE;
- int ncount = 0;
-
- strncpy(file_name_without_ext, dst_path, MSG_VIEWER_FILENAME_MAX_LEN);
- result = msg_viewer_util_get_file_ext(dst_path, file_ext, MSG_VIEWER_FILE_EXT_MAX_LEN);
- if (result)
- file_name_without_ext[strlen(file_name_without_ext) - strlen(file_ext) - 1] = '\0';
-
- ncount = msg_viewer_util_get_next_number(file_name_without_ext);
- if (ncount < 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid filename");
- return FALSE;
- } else {
- /*find new filename*/
- Eina_Bool is_exists = FALSE;
- do {
- if (strlen(file_ext) > 0)
- snprintf(new_file_name, sizeof(new_file_name), "%s_%d.%s", file_name_without_ext, ncount, file_ext);
- else
- snprintf(new_file_name, sizeof(new_file_name), "%s_%d", file_name_without_ext, ncount);
- /*check for same file*/
- is_exists = ecore_file_exists(new_file_name);
- if (is_exists == EINA_TRUE) {
- memset(new_file_name, 0x00, sizeof(new_file_name));
- ncount++;
- } else {
- break;
- }
- } while (is_exists);
-
- if (ecore_file_cp(src_path, new_file_name) == EINA_FALSE)
- return FALSE;
- }
-
- return TRUE;
-}
-
-static void __viewer_popup_block_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- if (pitem_list_data->popup) {
- evas_object_del(pitem_list_data->popup);
- pitem_list_data->popup = NULL;
- }
-}
-
-static void __viewer_popup_timeout_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- if (pitem_list_data->popup) {
- evas_object_del(pitem_list_data->popup);
- pitem_list_data->popup = NULL;
- }
-}
-
-static void __msg_ui_viewer_item_list_popup(void *data, Evas_Object *parent, char *pcontent)
-{
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, parent == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
- Evas_Object *popup = NULL;
-
- if (pitem_list_data->popup) {
- evas_object_del(pitem_list_data->popup);
- pitem_list_data->popup = NULL;
- }
-
- popup = elm_popup_add(parent);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, popup == NULL);
- pitem_list_data->popup = popup;
-
- evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
-
- if (pcontent) {
- elm_object_text_set(popup, pcontent);
- elm_popup_timeout_set(popup, 2);
- evas_object_smart_callback_add(popup, "block,clicked", __viewer_popup_block_clicked_cb, pitem_list_data);
- evas_object_smart_callback_add(popup, "timeout", __viewer_popup_timeout_cb, pitem_list_data);
- } else {
- evas_object_del(pitem_list_data->popup);
- pitem_list_data->popup = NULL;
- return;
- }
-
- evas_object_show(popup);
-}
-
-static void __viewer_save_button_clicked_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_MEDIA_INFO_S *pmedia_info = (MSG_MEDIA_INFO_S *)data;
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)pmedia_info->item_list_data;
-
- if (strlen(pmedia_info->pfile_path) == 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "pfile_path is NULL");
- __msg_ui_viewer_item_list_popup(pitem_list_data, pitem_list_data->main_window, dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_SAVE"));
- return;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "source pfile_path = [%s]", pmedia_info->pfile_path);
- MSG_BOOL result = 0;
- MSG_BOOL issave = TRUE;
- char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
-
- /*get default file path*/
- result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
- if (result) {
- char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
- snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, pmedia_info->pfile_name);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "dst_path = [%s]", dst_path);
-
- /*check for same file*/
- if (ecore_file_exists(dst_path) == EINA_TRUE) {
- if (__msg_ui_viewer_auto_rename(pmedia_info->pfile_path, dst_path) == FALSE)
- issave = FALSE;
- } else {
- if (ecore_file_cp(pmedia_info->pfile_path, dst_path) == EINA_FALSE)
- issave = FALSE;
- }
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_viewer_util_get_default_path is failed");
- __msg_ui_viewer_item_list_popup(pitem_list_data, pitem_list_data->main_window, dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_SAVE"));
- return;
- }
-
- if (issave)
- __msg_ui_viewer_item_list_popup(pitem_list_data, pitem_list_data->main_window, dgettext("sys_string", "IDS_COM_POP_SAVED"));
- else
- __msg_ui_viewer_item_list_popup(pitem_list_data, pitem_list_data->main_window, dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_SAVE"));
- }
-}
-
-static char *__msg_ui_viewer_text_get(void *data, Evas_Object *obj, const char *part)
-{
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, NULL);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, part == NULL, NULL);
- MSG_MEDIA_INFO_S *pmedia_info = (MSG_MEDIA_INFO_S *)data;
-
- if (strcmp(part, "elm.text") == 0) {
- if (pmedia_info)
- return strdup(pmedia_info->pfile_name);
- }
- return NULL;
-}
-
-static Evas_Object *__msg_ui_viewer_content_get(void *data, Evas_Object *obj, const char *part)
-{
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, NULL);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, obj == NULL, NULL);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, part == NULL, NULL);
-
- if (strcmp(part, "elm.icon.2") == 0) {
- Evas_Object *box = elm_box_add(obj);
- Evas_Object *button = elm_button_add(obj);
- Evas_Object *icon = elm_icon_add(obj);
-
- evas_object_propagate_events_set(button, EINA_FALSE);
- elm_box_pack_start(box, button);
- elm_icon_file_set(icon, MSG_VIEWER_IMAGE_SAVE_ICON, NULL);
- elm_object_part_content_set(button, "icon", icon);
- evas_object_smart_callback_add(button, "clicked", __viewer_save_button_clicked_cb, data);
- evas_object_show(button);
- evas_object_show(box);
- return box;
- } else if (strcmp(part, "elm.icon.1") == 0) {
- MSG_MEDIA_INFO_S *pmedia_info = (MSG_MEDIA_INFO_S *)data;
- Evas_Object *image = NULL;
-
- image = elm_icon_add(obj);
-
- /*set attach file icon*/
- if (pmedia_info->emedia_type == MSG_MEDIA_IMG ||
- pmedia_info->emedia_type == MSG_MEDIA_ANIMATE) {
- elm_icon_file_set(image, pmedia_info->pfile_path, NULL);
- } else if (pmedia_info->emedia_type == MSG_MEDIA_DRM) {
- elm_icon_file_set(image, MSG_VIEWER_IMAGE_DRM_SMALL_ICON, NULL);
- } else {
- if (strlen(pmedia_info->pfile_path)) {
- const char *icon_path = NULL;
-
- icon_path = msg_common_get_file_icon(pmedia_info->pfile_path);
- if (icon_path) {
- elm_icon_file_set(image, icon_path, NULL);
- } else {
- D_EMSG("icon_path is NULL");
- elm_icon_file_set(image, MSG_VIEWER_IMAGE_ATTACH_ICON, NULL);
- }
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "filepath is NULL");
- return NULL;
- }
- }
-
- if (image)
- evas_object_size_hint_aspect_set(image, EVAS_ASPECT_CONTROL_VERTICAL, 1, 1);
-
- return image;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid part : %s", part);
- }
-
- return NULL;
-}
-
-static char *__msg_ui_viewer_group_text_get(void *data, Evas_Object *obj, const char *part)
-{
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, NULL);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, part == NULL, NULL);
- MSG_GROUP_LABEL_S *group_label = (MSG_GROUP_LABEL_S *) data;
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "index = %d", group_label->index);
-
- if (strcmp(part, "elm.text") == 0) {
- if (group_label->group_label)
- return strdup(group_label->group_label);
- }
-
- return NULL;
-}
-
-static void __msg_ui_viewer_genlist_item_selected(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, event_info == NULL);
- Elm_Object_Item *pitem = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(pitem, FALSE);
- return;
-}
-
-static void __msg_ui_viewer_item_selected(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, event_info == NULL);
- MSG_MEDIA_INFO_S *pmedia_info = (MSG_MEDIA_INFO_S *)data;
- Elm_Object_Item *pselected_item = (Elm_Object_Item *)event_info;
-
- elm_genlist_item_selected_set(pselected_item, FALSE);
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "pfile_name = [%s]", pmedia_info->pfile_name);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "pfile_path = [%s]", pmedia_info->pfile_path);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "emedia_type = %d", pmedia_info->emedia_type);
-
- char mimetype[MSG_BUFFER_SIZE_64 + 1] = {0,};
- char defapp[MSG_BUFFER_SIZE_64 + 1] = {0,};
-
- service_h svc_handle = NULL;
- service_create(&svc_handle);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
-
- service_set_operation(svc_handle, SERVICE_OPERATION_VIEW);
- service_set_uri(svc_handle, pmedia_info->pfile_path);
-
- /*get mime type*/
- if (aul_get_mime_from_file(pmedia_info->pfile_path, mimetype, sizeof(mimetype)) < 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mime type failed");
-
- if (SERVICE_ERROR_NONE != service_send_launch_request(svc_handle, NULL, NULL))
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed");
-
- service_destroy(svc_handle);
- return;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mime type [%s]", mimetype);
- }
-
- /*get default app*/
- if (aul_get_defapp_from_mime(mimetype, defapp, sizeof(defapp)) < 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "default app failed");
-
- if (SERVICE_ERROR_NONE != service_send_launch_request(svc_handle, NULL, NULL))
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed");
-
- service_destroy(svc_handle);
- return;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "default app [%s]", defapp);
- }
-
- /*launch application*/
- if (strcmp(defapp, VIDEO_PLAYER_PKG_NAME) == 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Video content");
- service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_LAUNCH_APPLICATION, MESSAGE_PKGNAME);
- }
-
- if (SERVICE_ERROR_NONE != service_send_launch_request(svc_handle, NULL, NULL))
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "service_send_launch_request is failed");
-
- service_destroy(svc_handle);
-
- return;
-}
-
-static Evas_Object *__msg_ui_viewer_create_genlist(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
- Evas_Object *genlist = NULL;
-
- genlist = elm_genlist_add(pitem_list_data->navi_frame);
- evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-
- return genlist;
-}
-
-static void __msg_ui_viewer_set_list_styles(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- pitem_list_data->item_class.item_style = "1text.2icon";
- pitem_list_data->item_class.func.text_get = __msg_ui_viewer_text_get;
- pitem_list_data->item_class.func.content_get = __msg_ui_viewer_content_get;
- pitem_list_data->item_class.func.del = NULL;
- pitem_list_data->item_class.func.state_get = NULL;
-
- pitem_list_data->title_class.item_style = "grouptitle.dialogue";
- pitem_list_data->title_class.func.text_get = __msg_ui_viewer_group_text_get;
- pitem_list_data->title_class.func.content_get = NULL;
- pitem_list_data->title_class.func.del = NULL;
- pitem_list_data->title_class.func.state_get = NULL;
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-static void __msg_ui_viewer_item_list_set_list_data(Evas_Object *genlist, void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, genlist == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
- int nmedia_count = pitem_list_data->insert_item_count;
- int attachment_count = pitem_list_data->attach_item_count;
-
- /*add inserted items*/
- if (nmedia_count > 0) {
- int insert_index = 0;
- pitem_list_data->group_item_class = elm_genlist_item_append(genlist, &pitem_list_data->title_class, (void *)(&pitem_list_data->group_list[0]), NULL, ELM_GENLIST_ITEM_GROUP, __msg_ui_viewer_genlist_item_selected, (void*)ITEM_LIST_INFO_INSERT_FILE);
- for (insert_index = 0; insert_index < nmedia_count; insert_index++) {
- MSG_MEDIA_INFO_S *pmedia_info = eina_list_nth(pitem_list_data->insert_list, insert_index);
- if (pmedia_info == NULL) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "pmedia_info is NULL");
- } else {
- elm_genlist_item_append(genlist, &pitem_list_data->item_class, (void *)(pmedia_info), pitem_list_data->group_item_class, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_item_selected, (void*)(pmedia_info));
- }
- }
- }
-
- /*add attached items*/
- if (attachment_count > 0) {
- int attach_index = 0;
- pitem_list_data->group_item_class = elm_genlist_item_append(genlist, &pitem_list_data->title_class, (void *)(&pitem_list_data->group_list[1]), NULL, ELM_GENLIST_ITEM_GROUP, __msg_ui_viewer_genlist_item_selected, (void*)ITEM_LIST_INFO_ATTACH_FILE);
- for (attach_index = 0; attach_index < attachment_count; attach_index++) {
- MSG_MEDIA_INFO_S *pmedia_info = eina_list_nth(pitem_list_data->attach_list, attach_index);
- if (pmedia_info == NULL) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "pmedia_info is NULL");
- } else {
- elm_genlist_item_append(genlist, &pitem_list_data->item_class, (void *)(pmedia_info), pitem_list_data->group_item_class, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_item_selected, (void*)(pmedia_info));
- }
- }
- }
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-static MSG_BOOL __msg_ui_viewer_item_list_get_list_data(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
- msg_list_handle_t pagelist_info = NULL;
- msg_struct_t page_info = NULL;
- msg_list_handle_t medialist_info = NULL;
- msg_struct_t media_info = NULL;
-
- msg_list_handle_t attachlist_info = NULL;
- msg_struct_t attach_info = NULL;
-
- int nPageCnt = 0;
- int nPageMediaCnt = 0;
- int nAttachmentCnt = 0;
- int nmedia_count = 0;
- int attach_count = 0;
-
- char strFileName[MSG_FILENAME_LEN_MAX] = {0,};
- char strFilePath[MSG_FILEPATH_LEN_MAX] = {0,};
-
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, pitem_list_data->mms_t == NULL, FALSE);
-
- msg_get_list_handle(pitem_list_data->mms_t, MSG_MMS_PAGE_LIST_HND, (void **)&pagelist_info);
- if (!pagelist_info) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_get_list_handle(MSG_MMS_PAGE_LIST_HND) is failed");
- return FALSE;
- }
-
- nPageCnt = msg_list_length(pagelist_info);
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "pageCnt = %d", nPageCnt);
-
- /*get inserted content list*/
- if (nPageCnt) {
- int page_idx = 0;
-
- for (page_idx = 0; page_idx < nPageCnt; ++page_idx) {
- page_info = (msg_struct_t)msg_list_nth_data(pagelist_info, page_idx);
-
- if (!page_info) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "page_info is NULL");
- continue;
- }
-
- msg_get_list_handle(page_info, MSG_MMS_PAGE_MEDIA_LIST_HND, (void **)&medialist_info);
-
- if (!medialist_info) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "medialist_info is NULL");
- continue;
- }
- nPageMediaCnt = msg_list_length(medialist_info);
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "page = %d, media count = %d", page_idx, nPageMediaCnt);
-
- int media_idx = 0;
- for (media_idx = 0; media_idx < nPageMediaCnt; ++media_idx) {
- int mediaType = 0;
- int drmType = 0;
- media_info = (msg_struct_t)msg_list_nth_data(medialist_info, media_idx);
-
- if (!media_info) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "media_info is NULL");
- continue;
- }
-
- bzero(strFileName, sizeof(strFileName));
- bzero(strFilePath, sizeof(strFilePath));
-
- msg_get_str_value(media_info, MSG_MMS_MEDIA_FILENAME_STR, strFileName, sizeof(strFileName));
- msg_get_str_value(media_info, MSG_MMS_MEDIA_FILEPATH_STR, strFilePath, sizeof(strFilePath));
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "filename [%s], filepath [%s]", strFileName, strFilePath);
-
- msg_get_int_value(media_info, MSG_MMS_MEDIA_TYPE_INT, &mediaType);
-
- /*skip the text file*/
- if (mediaType == MMS_SMIL_MEDIA_TEXT)
- continue;
-
- MSG_MEDIA_INFO_S *pmedia_info = (MSG_MEDIA_INFO_S *)calloc(1, sizeof(MSG_MEDIA_INFO_S));
- if (pmedia_info == NULL) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "calloc is failed");
- return FALSE;
- } else {
- if (strlen(strFileName)) {
- strncpy(pmedia_info->pfile_name, strFileName, MSG_VIEWER_FILENAME_MAX_LEN);
- } else {
- const char *file_name = NULL;
- file_name = ecore_file_file_get(strFilePath);
- if (file_name)
- strncpy(pmedia_info->pfile_name, file_name, MSG_VIEWER_FILENAME_MAX_LEN);
- else
- strncpy(pmedia_info->pfile_name, strFilePath, MSG_VIEWER_FILENAME_MAX_LEN);
- }
-
- strncpy(pmedia_info->pfile_path, strFilePath, MSG_VIEWER_FILEPATH_MAX_LEN);
-
- msg_get_int_value(media_info, MSG_MMS_MEDIA_DRM_TYPE_INT, &drmType);
-
- if (drmType != MSG_DRM_TYPE_NONE) {
- char szDrmFullPath[MSG_FILEPATH_LEN_MAX] = {0,};
- bzero(szDrmFullPath, sizeof(szDrmFullPath));
- msg_get_str_value(media_info, MSG_MMS_MEDIA_DRM_FULLPATH_STR, szDrmFullPath, sizeof(szDrmFullPath));
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "drmtype: %d (1: Fowward Lock, 2:Combined Delivery, 3: Separated Delivery), drmpath: %s", drmType, szDrmFullPath);
- pmedia_info->emedia_type = MSG_MEDIA_DRM;
- } else {
- if (mediaType == MMS_SMIL_MEDIA_IMG)
- pmedia_info->emedia_type = MSG_MEDIA_IMG;
- else if (mediaType == MMS_SMIL_MEDIA_AUDIO)
- pmedia_info->emedia_type = MSG_MEDIA_AUDIO;
- else if (mediaType == MMS_SMIL_MEDIA_VIDEO)
- pmedia_info->emedia_type = MSG_MEDIA_VIDEO;
- else if (mediaType == MMS_SMIL_MEDIA_TEXT)
- pmedia_info->emedia_type = MSG_MEDIA_TEXT;
- else if (mediaType == MMS_SMIL_MEDIA_ANIMATE)
- pmedia_info->emedia_type = MSG_MEDIA_ANIMATE;
- else if (mediaType == MMS_SMIL_MEDIA_IMG_OR_VIDEO)
- pmedia_info->emedia_type = MSG_MEDIA_IMG_OR_VIDEO;
- else {
- pmedia_info->emedia_type = MSG_MEDIA_INVALID;
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid mediaType : %d", mediaType);
- }
- }
- pmedia_info->item_list_data = pitem_list_data;
- /*append insert list*/
- pitem_list_data->insert_list = eina_list_append(pitem_list_data->insert_list, pmedia_info);
- nmedia_count++;
- }
- }
- }
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Multipart Mixed");
- }
- pitem_list_data->insert_item_count = nmedia_count;
-
- /*get attached content list*/
- int attach_idx = 0;
- msg_get_list_handle(pitem_list_data->mms_t, MSG_MMS_ATTACH_LIST_HND, (void **)&attachlist_info);
-
- nAttachmentCnt = msg_list_length(attachlist_info);
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "attachmentCnt = %d", nAttachmentCnt);
-
- for (attach_idx = 0; attach_idx < nAttachmentCnt; ++attach_idx) {
- attach_info = (msg_struct_t)msg_list_nth_data(attachlist_info, attach_idx);
-
- if (attach_info == NULL) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "pAttach is NULL");
- continue;
- } else {
- bzero(strFileName, sizeof(strFileName));
- bzero(strFilePath, sizeof(strFilePath));
-
- msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILENAME_STR, strFileName, sizeof(strFileName));
- msg_get_str_value(attach_info, MSG_MMS_ATTACH_FILEPATH_STR, strFilePath, sizeof(strFilePath));
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "attachment file name: %s", strFileName);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "attachment file path: %s", strFilePath);
-
- MSG_MEDIA_INFO_S *pmedia_info = (MSG_MEDIA_INFO_S *)calloc(1, sizeof(MSG_MEDIA_INFO_S));
- if (pmedia_info == NULL) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "calloc is failed");
- return FALSE;
- } else {
- if (strlen(strFileName)) {
- strncpy(pmedia_info->pfile_name, strFileName, MSG_VIEWER_FILENAME_MAX_LEN);
- } else {
- const char *file_name = NULL;
- file_name = ecore_file_file_get(strFilePath);
- if (file_name)
- strncpy(pmedia_info->pfile_name, file_name, MSG_VIEWER_FILENAME_MAX_LEN);
- else
- strncpy(pmedia_info->pfile_name, strFilePath, MSG_VIEWER_FILENAME_MAX_LEN);
- }
-
- strncpy(pmedia_info->pfile_path, strFilePath, MSG_VIEWER_FILEPATH_MAX_LEN);
- pmedia_info->emedia_type = MSG_MEDIA_ATTACH;
- pmedia_info->item_list_data = pitem_list_data;
- /*append attach list*/
- pitem_list_data->attach_list = eina_list_append(pitem_list_data->attach_list, pmedia_info);
- attach_count++;
- }
- }
- }
- pitem_list_data->attach_item_count = attach_count;
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "insert_count = %d, attach_count = %d", nmedia_count, attach_count);
-
- return TRUE;
-}
-
-static MSG_BOOL __msg_ui_viewer_get_body_message(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- if (pitem_list_data->mms_t == NULL) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "pitem_list_data->mms_t is failed");
- return FALSE;
- }
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
- return TRUE;
-}
-
-static void __viewer_toolbar_play_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- msg_ui_viewer_destroy_item_list(pitem_list_data);
- msg_ui_viewer_show_view_by_mode(pitem_list_data->viewer_main, MSG_VIEWER_PLAYER_VIEW, MSG_VIEWER_VIEW_CMD_PLAY);
- elm_naviframe_item_pop(pitem_list_data->navi_frame);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-static void __viewer_toolbar_save_all_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
-
- int insert_cnt = eina_list_count(pitem_list_data->insert_list);
- int attach_cnt = eina_list_count(pitem_list_data->attach_list);
- int total_cnt = insert_cnt + attach_cnt;
- int index = 0;
- int insert_index = 0;
- int attach_index = 0;
- int failed_count = 0;
- int saved_count = 0;
- MSG_MEDIA_INFO_S *pmedia_info = NULL;
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "insert_cnt = %d, attach_cnt = %d", insert_cnt, attach_cnt);
-
- while (index < total_cnt) {
- if (index < insert_cnt)
- pmedia_info = eina_list_nth(pitem_list_data->insert_list, insert_index++);
- else
- pmedia_info = eina_list_nth(pitem_list_data->attach_list, attach_index++);
-
- if (pmedia_info) {
- /*get default file path*/
- MSG_BOOL result = FALSE;
- char dir_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0};
-
- result = msg_viewer_util_get_default_path(dir_path, sizeof(dir_path));
- if (result) {
- char dst_path[MSG_VIEWER_FILEPATH_MAX_LEN + 1] = {0,};
- snprintf(dst_path, sizeof(dst_path), "%s/%s", dir_path, pmedia_info->pfile_name);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "dest pfile_path [%s]", dst_path);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "src pfile_path [%s]", pmedia_info->pfile_path);
-
- char *result_path = msg_ui_viewer_util_copy_file(pmedia_info->pfile_path, dst_path);
- if (result_path) {
- saved_count++;
- free(result_path);
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_util_copy_file is failed index = %d", index);
- failed_count++;
- }
- } else {
- failed_count++;
- }
-
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "pmedia_info is NULL index = %d", index);
- failed_count++;
- }
-
- pmedia_info = NULL;
-
- index++;
- }
-
- /* show popup */
- if (failed_count == total_cnt) {
- __msg_ui_viewer_item_list_popup(pitem_list_data, pitem_list_data->main_window, dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_SAVE"));
- } else {
- char buf[DEF_BUF_LEN_S + 1] = {0, };
- snprintf(buf, sizeof(buf), "%s (%d/%d)", dgettext("sys_string", "IDS_COM_POP_SAVED"), saved_count, total_cnt);
- __msg_ui_viewer_item_list_popup(pitem_list_data, pitem_list_data->main_window, buf);
- }
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
-static Evas_Object *__msg_ui_viewer_create_toolbar(Evas_Object *parent, void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, parent == NULL, NULL);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, NULL);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
- Evas_Object *toolbar = elm_toolbar_add(parent);
- Elm_Object_Item *toolbar_item = NULL;
-
- elm_toolbar_shrink_mode_set(toolbar, ELM_TOOLBAR_SHRINK_EXPAND);
-
- elm_toolbar_item_append(toolbar, MSG_CONTROLBAR_ICON_SAVE, NULL, __viewer_toolbar_save_all_cb, pitem_list_data);
- toolbar_item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
- elm_object_item_disabled_set(toolbar_item, EINA_TRUE);
- elm_toolbar_item_append(toolbar, MSG_CONTROLBAR_ICON_PLAY, NULL, __viewer_toolbar_play_cb, pitem_list_data);
- toolbar_item = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, NULL);
- elm_object_item_disabled_set(toolbar_item, EINA_TRUE);
-
- evas_object_show(toolbar);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
- return toolbar;
-}
-
-MSG_BOOL msg_ui_viewer_create_item_list_view(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
- MSG_ITEM_LIST_DATA_S *pitem_list_data = (MSG_ITEM_LIST_DATA_S *)data;
- Evas_Object *back_button = NULL;
- Evas_Object *toolbar = NULL;
- Evas_Object *layout_inner = NULL;
- Evas_Object *genlist = NULL;
- Evas_Object *bg_layout = NULL;
-
- /*get message body*/
- if (__msg_ui_viewer_get_body_message(pitem_list_data) == FALSE)
- return FALSE;
-
- /*get inserted and attached item list*/
- if (__msg_ui_viewer_item_list_get_list_data(pitem_list_data) == FALSE)
- return FALSE;
-
- bg_layout = msg_ui_viewer_get_bg_layout(pitem_list_data->viewer_main);
- if (bg_layout)
- elm_object_style_set(bg_layout, "group_list");
-
- layout_inner = elm_layout_add(pitem_list_data->navi_frame);
- evas_object_size_hint_weight_set(layout_inner, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_layout_file_set(layout_inner, MSG_VIEWER_THEME, "item_list");
-
- genlist = __msg_ui_viewer_create_genlist(pitem_list_data);
- __msg_ui_viewer_set_list_styles(pitem_list_data);
- pitem_list_data->genlist = genlist;
-
- /*set list data*/
- __msg_ui_viewer_item_list_set_list_data(genlist, pitem_list_data);
- elm_object_part_content_set(layout_inner, "viewer.itemlist.body", genlist);
-
- back_button = elm_button_add(pitem_list_data->navi_frame);
- elm_object_style_set(back_button, "naviframe/back_btn/default");
- evas_object_smart_callback_add(back_button, "clicked", __viewer_back_button_cb, (void *)pitem_list_data);
- Elm_Object_Item *navi_it = elm_naviframe_item_push(pitem_list_data->navi_frame, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_ITEM_LIST"), back_button, NULL, layout_inner, NULL);
-
- /*create commandbar*/
- toolbar = __msg_ui_viewer_create_toolbar(pitem_list_data->navi_frame, pitem_list_data);
- elm_object_item_part_content_set(navi_it, "controlbar", toolbar);
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
- return TRUE;
-}
static MSG_BOOL __msg_ui_viewer_check_drm_content(void *data);
static MSG_SMIL_ERROR_E __msg_ui_viewer_main_smil_cb(SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus, void *data);
static MSG_BOOL __msg_ui_vewer_get_smil_handle(void *data);
-static void __msg_ui_viewer_launch_item_list(void *data);
static MSG_BOOL __msg_ui_viewer_launch_drm_list(void *data);
static MSG_BOOL __msg_ui_viewer_launch_play_view(void *data);
static MSG_BOOL __msg_ui_viewer_show_play_view(void *data);
viewer_main_data->navi_frame = NULL;
viewer_main_data->player_view = NULL;
viewer_main_data->drm_list_view = NULL;
- viewer_main_data->item_list_view = NULL;
viewer_main_data->del_idler = NULL;
}
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewMode = %d", viewMode);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_main_data->player_view = 0x%x", viewer_main_data->player_view);
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_main_data->drm_list_view = 0x%x", viewer_main_data->drm_list_view);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_main_data->item_list_view = 0x%x", viewer_main_data->item_list_view);
if (viewMode == MSG_VIEWER_PLAYER_VIEW) {
if (commandType == MSG_VIEWER_VIEW_CMD_PLAY) {
} else if (viewMode == MSG_VIEWER_DRM_LIST_VIEW) {
__msg_ui_viewer_launch_drm_list(viewer_main_data);
viewer_main_data->view_mode = MSG_VIEWER_DRM_LIST_VIEW;
- } else if (viewMode == MSG_VIEWER_ITEM_LIST_VIEW) {
- __msg_ui_viewer_launch_item_list(viewer_main_data);
- viewer_main_data->view_mode = MSG_VIEWER_ITEM_LIST_VIEW;
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid viewMode!!");
}
}
-static void __msg_ui_viewer_launch_item_list(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)data;
- MSG_ITEM_LIST_DATA_S *pitem_list_data = NULL;
-
- if (!viewer_main_data->item_list_view) {
- pitem_list_data = (MSG_ITEM_LIST_DATA_S *)calloc(1, sizeof(MSG_ITEM_LIST_DATA_S));
- if (!pitem_list_data) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "calloc is failed");
- return;
- } else
- viewer_main_data->item_list_view = pitem_list_data;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "item list view is already created");
- pitem_list_data = viewer_main_data->item_list_view;
- }
-
- msg_ui_viewer_init_item_list(pitem_list_data);
-
- pitem_list_data->msgID = viewer_main_data->msgID;
- pitem_list_data->msgHandle = viewer_main_data->msgHandle;
- pitem_list_data->mms_t = viewer_main_data->mms_t;
- pitem_list_data->main_window = viewer_main_data->main_window;
- if (viewer_main_data->navi_frame)
- pitem_list_data->navi_frame = viewer_main_data->navi_frame;
-
- pitem_list_data->viewer_main = viewer_main_data;
-
- if (msg_ui_viewer_create_item_list_view(pitem_list_data) == FALSE) {
- if (viewer_main_data->item_list_view) {
- msg_ui_viewer_destroy_item_list(viewer_main_data->item_list_view);
- free(viewer_main_data->item_list_view);
- viewer_main_data->item_list_view = NULL;
- }
- }
-}
-
static MSG_BOOL __msg_ui_viewer_launch_drm_list(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
viewer_play_data->msg_t = viewer_main_data->msg_t;
viewer_play_data->mms_t = viewer_main_data->mms_t;
viewer_play_data->main_window = viewer_main_data->main_window;
+ viewer_play_data->msg_box_viewer = viewer_main_data->msg_box_viewer;
+
if (viewer_main_data->navi_frame)
viewer_play_data->navi_frame = viewer_main_data->navi_frame;
return bg;
}
-Evas_Object *msg_ui_viewer_create_layout_main(Evas_Object *parent)
+Evas_Object *msg_ui_viewer_create_layout_main(Evas_Object *parent, bool indicator)
{
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, parent == NULL, NULL);
Evas_Object *layout = NULL;
layout = elm_layout_add(parent);
MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, layout == NULL, NULL);
- elm_layout_theme_set(layout, "layout", "application", "default");
+
+ if (indicator)
+ elm_layout_theme_set(layout, "layout", "application", "default");
+ else
+ elm_layout_theme_set(layout, "layout", "application", "noindicator");
+
evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
elm_win_resize_object_add(parent, layout);
evas_object_show(layout);
#include "msg-ui-common-utility.h"
#include "msg-ui-image-resource.h"
-#include <aul.h>
#include <contacts-ug.h>
#include "contacts-svc.h"
#include "appsvc.h"
static void __msg_ui_viewer_title_menu_gl_sel(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_viewer_title_menu_popup_close_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_viewer_title_menu_popup_selected_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_title_menu_block_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
/*attachment list for help page */
static void __msg_ui_viewer_help_page_save_all_item(MSG_PLAY_DATA_S *viewer_play_data);
static void __msg_ui_viewer_save_attachments_gl_sel(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_viewer_delete_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
static void __msg_ui_viewer_delete_cancel_clicked_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_protection_cb(void *data, Evas_Object *obj, void *event_info);
+static void __msg_ui_viewer_block_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info);
/*==================================================================================================
* FUNCTION IMPLEMENTATIONS
end_point_y < screen_height-(VIEWER_NAVIFRAME_BOTTOM_H+VIEWER_PLAY_CONTROLLER_HEIGHT)) {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Play layout is now displayed and play controller should be hided");
- if (viewer_play_data->playcontroller_opened) {
- elm_object_part_content_unset(viewer_play_data->play_layout, "viewer.swallow.play.controller");
- evas_object_hide(viewer_play_data->play_controller);
- viewer_play_data->playcontroller_opened = FALSE;
- //destroy play controller timer
- msg_ui_viewer_destroy_play_controller_timer(viewer_play_data);
- } else {
- if (viewer_play_data->play_controller) {
- elm_object_part_content_set(viewer_play_data->play_layout, "viewer.swallow.play.controller", viewer_play_data->play_controller);
- evas_object_show(viewer_play_data->play_controller);
- viewer_play_data->playcontroller_opened = TRUE;
- //create play controller timer
- msg_ui_viewer_create_play_controller_timer(viewer_play_data);
- }
- }
+ elm_object_part_content_unset(viewer_play_data->play_layout, "viewer.swallow.play.controller");
+ evas_object_hide(viewer_play_data->play_controller);
+ viewer_play_data->playcontroller_opened = FALSE;
+ //destroy play controller timer
+ msg_ui_viewer_destroy_play_controller_timer(viewer_play_data);
}
} else {
if (abs(start_point_x-end_point_x) < screen_width / 10 && abs(start_point_y-end_point_y) < screen_height / 10 ) {
if (!viewer_play_data->del_idler)
viewer_play_data->del_idler = ecore_idler_add(msg_ui_viewer_ug_quit, viewer_play_data->viewer_main);
- elm_object_disabled_set(obj, TRUE);
-
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
if (viewer_play_data->title_optionheader_opened) {
elm_object_item_signal_emit(viewer_play_data->navi_item, "elm,state,optionheader,close", "");
elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
viewer_play_data->title_optionheader_opened = EINA_FALSE;
+
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
} else if (viewer_play_data->title_box_layout) {
/* clear title box layout */
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "clear title box layout!");
elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
msg_ui_viewer_close_title_menu_genlist(viewer_play_data);
+
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
} else {
/* clear optionheader */
Evas_Object *content = NULL;
elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,show", "");
viewer_play_data->title_optionheader_opened = EINA_TRUE;
} else if (viewer_play_data->addr_list.addr_cnt > 1) {
- elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,show", "");
+ elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,show,multi", "");
msg_ui_viewer_open_title_menu_genlist(viewer_play_data);
} else {
D_EMSG("invalid address count [%d]", viewer_play_data->addr_list.addr_cnt);
return;
}
- /* set player state to pause and update icon */
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] msg_smil_on_slide_event_handler failed! : %d", err);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
+ viewer_play_data->previous_status = viewer_play_data->status;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->previous_status = %d", viewer_play_data->previous_status);
- if (viewer_play_data->play_controller_progressbar_timer) {
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- }
+ /* set player state to pause and update icon */
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_ui_viewer_command_play_pause is failed");
+ return;
}
}
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->status : %d", viewer_play_data->status);
//no medias in msg
if (viewer_play_data->insert_count + viewer_play_data->attach_count == 0) {
- msg_ui_viewer_show_popup(viewer_play_data, viewer_play_data->main_window, (char *)"No attachments");
+ msg_ui_viewer_show_popup(viewer_play_data, viewer_play_data->main_window, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_NO_ATTACHMENTS"));
return;
}
- viewer_play_data->popup_mode = VIEWER_SAVE_MODE_POPUP;
-
//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);
viewer_play_data->previous_status = viewer_play_data->status;
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->previous_status = %d", viewer_play_data->previous_status);
- //Pause
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", err);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
-
- if (viewer_play_data->play_controller_progressbar_timer) {
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- }
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) { // pause
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
}
//create popup for save attachments and insert items
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
+ msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+ msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+ msg_error_t err = MSG_SUCCESS;
if (viewer_play_data->popup) {
evas_object_del(viewer_play_data->popup);
Evas_Object *popup = elm_popup_add(viewer_play_data->main_window);
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- elm_object_text_set(popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_DELETE_Q"));
+
+ err = msg_get_message(viewer_play_data->msgHandle, viewer_play_data->msgID, msgInfo, sendOpt);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_get_message has failed");
+ msg_release_struct(&msgInfo);
+ msg_release_struct(&sendOpt);
+ return;
+ }
+
+ /* Add protection on/off menu */
+ bool is_protected = false;
+ msg_get_bool_value(msgInfo, MSG_MESSAGE_PROTECTED_BOOL, &is_protected);
+ elm_object_text_set(popup, (is_protected) ? dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_DELETE_THIS_PROTECTED_MESSAGE_Q") : dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_DELETE_Q"));
+
+ msg_release_struct(&msgInfo);
+ msg_release_struct(&sendOpt);
Evas_Object *btn_ok = elm_button_add(popup);
elm_object_style_set(btn_ok, "popup_button/default");
evas_object_show(popup);
viewer_play_data->popup = popup;
- /* set player state to pause*/
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", err);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
+ /* set current status to previous status */
+ viewer_play_data->previous_status = viewer_play_data->status;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->previous_status = %d", viewer_play_data->previous_status);
- if (viewer_play_data->play_controller_progressbar_timer) {
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- }
+ /* set player state to pause*/
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) { // pause
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
}
/*disconnect mouse handler*/
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "delete msg-id is %d", viewer_play_data->msgID);
- service_h svc_handle = NULL;
+ if (viewer_play_data->msg_box_viewer) {
+ if (msg_delete_message(viewer_play_data->msgHandle, viewer_play_data->msgID) == MSG_SUCCESS) {
+ status_message_post(dgettext("sys_string", "IDS_COM_POP_DELETED"));
+ } else {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_delete_message is failed");
+ status_message_post(dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_DELETE"));
+ return;
+ }
- service_create(&svc_handle);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
+ } else {
+ service_h svc_handle = NULL;
- snprintf(str_id, DEF_BUF_LEN, "%d", viewer_play_data->msgID);
- service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_DELETE_MSG, str_id);
+ service_create(&svc_handle);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
- ug_send_result(viewer_main_data->viewer_ug, svc_handle);
- service_destroy(svc_handle);
+ snprintf(str_id, DEF_BUF_LEN, "%d", viewer_play_data->msgID);
+ service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_DELETE_MSG, str_id);
+ ug_send_result(viewer_main_data->viewer_ug, svc_handle);
+ service_destroy(svc_handle);
+ }
/*destroy viewer*/
ug_destroy_me(viewer_main_data->viewer_ug);
/* connect mouse handler again*/
if (!viewer_play_data->mouse_down_event_handler)
viewer_play_data->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_play_data);
+
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
}
void msg_ui_viewer_forward_button_cb(void *data, Evas_Object *obj, void *event_info)
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
char buf[DEF_BUF_LEN_S] = { 0, };
service_h svc_handle;
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
if (viewer_play_data->popup) {
evas_object_del(viewer_play_data->popup);
}
/* set player state to pause*/
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] msg_smil_on_slide_event_handler failed! : %d", err);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
-
- if (viewer_play_data->play_controller_progressbar_timer) {
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- }
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) { // pause
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
}
+ /* create and call composer-ug */
if (service_create(&svc_handle) < 0 || svc_handle == NULL) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_create() is failed !!");
} else {
snprintf(buf, sizeof(buf), "%d", viewer_play_data->msgID);
- service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FORWARD, buf);
+ service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MSG_ID, buf);
+ service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_MODE, MSG_BUNDLE_VALUE_FORWARD);
+ service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_FROM, MSG_BUNDLE_VALUE_INTERNAL);
ui_gadget_h loaded_ug;
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER;
loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- } else {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
+ viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER;
}
+
service_destroy(svc_handle);
}
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)viewer_play_data->viewer_main;
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
char str_id[DEF_BUF_LEN] = {0,};
if (viewer_play_data->popup) {
}
/* set player state to pause*/
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] msg_smil_on_slide_event_handler failed! : %d", err);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
-
- if (viewer_play_data->play_controller_progressbar_timer) {
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- }
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) { // pause
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
}
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "failed msg-id is %d", viewer_play_data->msgID);
service_h svc_handle = NULL;
-
service_create(&svc_handle);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
service_h svc_handle;
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
if (viewer_play_data->popup) {
evas_object_del(viewer_play_data->popup);
}
/* set player state to pause*/
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] msg_smil_on_slide_event_handler failed! : %d", err);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
-
- if (viewer_play_data->play_controller_progressbar_timer) {
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- }
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) { // pause
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
}
if (service_create(&svc_handle) < 0 || svc_handle == NULL) {
service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, viewer_play_data->addr_list.addr_info[0].address);
ui_gadget_h loaded_ug;
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER;
loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), MSG_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- } else {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
+ viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_MESSAGE_COMPOSER;
}
+
service_destroy(svc_handle);
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- MSG_SMIL_ERROR_E smilErr = MSG_SMIL_SUCCESS;
MSG_BOOL hasText = FALSE;
int page_count = 0;
int media_count = 0;
viewer_play_data->popup = NULL;
}
- /* set player state to pause*/
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- smilErr = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (smilErr != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] msg_smil_on_slide_event_handler failed! : %d", smilErr);
- msg_release_struct(&msgInfo);
- msg_release_struct(&sendOpt);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
+ /* set current status to previous status */
+ viewer_play_data->previous_status = viewer_play_data->status;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->previous_status = %d", viewer_play_data->previous_status);
- if (viewer_play_data->play_controller_progressbar_timer) {
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- }
+ /* set player state to pause*/
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PAUSE)) {
+ msg_release_struct(&msgInfo);
+ msg_release_struct(&sendOpt);
+ return;
}
+
Evas_Object *ctx_popup = NULL;
ctx_popup = elm_ctxpopup_add(viewer_play_data->main_window);
evas_object_smart_callback_add(ctx_popup, "dismissed", __msg_ui_viewer_more_ctxpopup_dismissed_cb, (void *)viewer_play_data);
/* Add FORWARD menu if outbox/inbox msg */
if (folder_id == MSG_OUTBOX_ID || folder_id == MSG_INBOX_ID)
- elm_ctxpopup_item_append(ctx_popup, dgettext("sys_string", "IDS_COM_BODY_FORWARD_A"), NULL, msg_ui_viewer_forward_button_cb, (void *)viewer_play_data);
+ elm_ctxpopup_item_append(ctx_popup, dgettext("sys_string", "IDS_COM_BODY_FORWARD"), NULL, msg_ui_viewer_forward_button_cb, (void *)viewer_play_data);
+
+ /* Add protection on/off menu */
+ bool is_protected = false;
+ msg_get_bool_value(msgInfo, MSG_MESSAGE_PROTECTED_BOOL, &is_protected);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Lock status of current message %d", is_protected);
+
+ if (is_protected)
+ elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_PROTECTION_OFF"), NULL, __msg_ui_viewer_protection_cb, (void *)viewer_play_data);
+ else
+ elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_PROTECTION_ON"), NULL, __msg_ui_viewer_protection_cb, (void *)viewer_play_data);
/* Add Copy Message text menu */
if (viewer_play_data->smil_eventStatus != NULL) {
}
if (hasText)
- elm_ctxpopup_item_append(ctx_popup, (char *)"Copy message text", NULL, __msg_ui_viewer_more_ctxpopup_clicked_cb, (void *)viewer_play_data);
+ elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB"), NULL, __msg_ui_viewer_more_ctxpopup_clicked_cb, (void *)viewer_play_data);
/* Add view message details menu */
- elm_ctxpopup_item_append(ctx_popup, (char *)"View message details", NULL, __msg_ui_viewer_more_ctxpopup_clicked_cb, (void *)viewer_play_data);
+ elm_ctxpopup_item_append(ctx_popup, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB"), NULL, __msg_ui_viewer_more_ctxpopup_clicked_cb, (void *)viewer_play_data);
// move ctx popup
Evas_Coord x, y, w, h;
MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- msg_ui_viewer_command_play_pause(viewer_play_data);
-
- //create play controller timer repeatedly
- msg_ui_viewer_create_play_controller_timer(viewer_play_data);
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, (viewer_play_data->status == MSG_VIEWER_PLAY) ? MSG_VIEWER_ACTION_TOOLBAR_PAUSE : MSG_VIEWER_ACTION_TOOLBAR_PLAY))
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
}
}
-void msg_ui_viewer_stop_button_cb(void *data, Evas_Object *obj, void *event_info)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
- MSG_VIEWER_LAUNCH_VIEW_MODE_E launchmode = MSG_VIEWER_INVALID_MODE;
-
- /*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);
- return;
- }
-
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_STOP);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", err);
- } else {
- msg_ui_viewer_get_viewer_launchmode(viewer_play_data->viewer_main, &launchmode);
-
- if (launchmode == MSG_VIEWER_PREVIEW_MODE) {
- if (viewer_play_data->play_controller) {
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- msg_ui_viewer_destroy_play_controller_progressbar_timer(viewer_play_data);
- }
- } else if (launchmode == MSG_VIEWER_FULLVIEW_MODE){
- msg_ui_viewer_disconnect_handler(viewer_play_data);
- msg_ui_viewer_show_view_by_mode(viewer_play_data->viewer_main, MSG_VIEWER_ITEM_LIST_VIEW, MSG_VIEWER_VIEW_CMD_NONE);
- if (viewer_play_data->title_optionheader_opened) {
- elm_object_item_signal_emit(viewer_play_data->navi_item, "elm,state,optionheader,close", "");
- elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
- viewer_play_data->title_optionheader_opened = EINA_FALSE;
- } else if (viewer_play_data->title_box_layout) {
- elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
- msg_ui_viewer_close_title_menu_genlist(viewer_play_data);
- }
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "invalid launchmode : %d", launchmode);
- }
-
- viewer_play_data->status = MSG_VIEWER_STOP;
- msg_ui_viewer_update_play_controller(viewer_play_data, MSG_VIEWER_STOP);
- }
-
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
-
void msg_ui_viewer_toolbar_email_cb(void *data, Evas_Object *obj, void *event_info)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
msg_error_t err = MSG_SUCCESS;
msg_struct_t msgInfo = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
msg_struct_t sendOpt = msg_create_struct(MSG_STRUCT_SENDOPT);
+ service_error_e svc_err = SERVICE_ERROR_NONE;
err = msg_get_message(viewer_play_data->msgHandle, viewer_play_data->msgID, msgInfo, sendOpt);
if (err != MSG_SUCCESS) {
msg_struct_t addr_info = NULL;
char szAddress[MAX_ADDRESS_VAL_LEN + 1] = {0,};
addr_info = addr_list->msg_struct_info[0];
- msg_set_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, szAddress, strlen(szAddress));
+ msg_get_str_value(addr_info, MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, szAddress, MAX_ADDRESS_VAL_LEN);
char *address = (char*)calloc(1, strlen(szAddress)+1);
memcpy(address, szAddress, strlen(szAddress));
service_create(&svc_handle);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
+ service_set_operation(svc_handle, SERVICE_OPERATION_SEND);
+ service_set_app_id(svc_handle, "email-composer-efl");
service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RUN_TYPE, MSG_BUNDLE_VALUE_EMAIL_COMPOSE);
- service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, address);
+ service_add_extra_data(svc_handle, SERVICE_DATA_TO, address);
- 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_EMAIL_COMPOSER;
- loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), EMAIL_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
- if (loaded_ug) {
- msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
+ 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 {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", svc_err);
}
service_destroy(svc_handle);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !viewer_play_data);
if (viewer_play_data->addr_list.addr_cnt == 1) {
- int ret = 0;
- bundle *b = bundle_create();
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_TYPE, MSG_BUNDLE_VALUE_VCALL_MO);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_HANDLE, MSG_BUNDLE_VALUE_VCALL_HANDLE);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_PARTY_NUM, viewer_play_data->addr_list.addr_info[0].address);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_CLI_CAUSE, MSG_BUNDLE_VALUE_VCALL_FALSE);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_FORWARDED, MSG_BUNDLE_VALUE_VCALL_FALSE);
- if ((ret = aul_launch_app(VIDEO_CALL_PKG_NAME, b)) >= 0) {
+ service_error_e err = SERVICE_ERROR_NONE;
+ service_h svc_handle = NULL;
+ char telnum[MAX_ADDRESS_VAL_LEN+5] = {0,};
+ char contact_id[VIEWER_BUFFER_SIZE_64] = {0,};
+
+ service_create(&svc_handle);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
+
+ snprintf(telnum, sizeof(telnum), "tel:%s", viewer_play_data->addr_list.addr_info[0].address);
+ snprintf(contact_id, sizeof(contact_id), "%d", viewer_play_data->addr_list.addr_info[0].contact_id);
+
+ 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_DEBUG, "aul_launch_app failed ret : %d", ret);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", err);
}
- bundle_free(b);
+
+ service_destroy(svc_handle);
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
service_add_extra_data(svc_handle, CT_UG_BUNDLE_NUM, viewer_play_data->addr_list.addr_info[0].address);
}
- 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_ADD_TO_CONTACT;
loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), UG_CONTACTS_LIST, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
+
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
- } else {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ 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;
}
service_destroy(svc_handle);
service_add_extra_data(svc_handle, CT_UG_BUNDLE_TYPE, buf);
service_add_extra_data(svc_handle, CT_UG_BUNDLE_ID, contactId);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_ADD_TO_CONTACT;
loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), UG_CONTACTS_DETAILS, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- } else {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
+ viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CONTACT;
}
service_destroy(svc_handle);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
+void msg_ui_viewer_toolbar_block_address_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !viewer_play_data);
+
+ Evas_Object *popup = elm_popup_add(viewer_play_data->main_window);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+
+ char *szbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_BLOCK_PS_Q");
+ char *popup_text = g_strdup_printf(szbuf, viewer_play_data->addr_list.addr_info[0].address);
+ if (!popup_text) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "popup_text is null");
+ return;
+ }
+
+ elm_object_text_set(popup, popup_text);
+ free(popup_text);
+
+ Evas_Object *btn_ok = elm_button_add(popup);
+ elm_object_style_set(btn_ok, "popup_button/default");
+ elm_object_text_set(btn_ok, dgettext("sys_string", "IDS_COM_SK_OK"));
+ elm_object_part_content_set(popup, "button1", btn_ok);
+ evas_object_smart_callback_add(btn_ok, "clicked", __msg_ui_viewer_block_ok_clicked_cb, viewer_play_data);
+
+ Evas_Object *btn_cancel = elm_button_add(popup);
+ elm_object_style_set(btn_cancel, "popup_button/default");
+ elm_object_text_set(btn_cancel, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+ elm_object_part_content_set(popup, "button2", btn_cancel);
+ /* use same cb function with delete cancel button */
+ evas_object_smart_callback_add(btn_cancel, "clicked", __msg_ui_viewer_delete_cancel_clicked_cb, viewer_play_data);
+
+ evas_object_show(popup);
+ viewer_play_data->popup = popup;
+
+ /*disconnect mouse handler*/
+ msg_ui_viewer_disconnect_handler(viewer_play_data);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+void msg_ui_viewer_toolbar_unblock_address_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data || !obj);
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !viewer_play_data);
+ int filter_id = 0;
+
+ if (msg_ui_viewer_check_address_is_blocked(viewer_play_data, viewer_play_data->addr_list.addr_info[0].address, &filter_id)) {
+ msg_error_t err = MSG_SUCCESS;
+ err = msg_delete_filter(viewer_play_data->msgHandle, (msg_filter_id_t)filter_id);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_delete_filter is failed err : %d", err);
+ return;
+ }
+
+ char *szbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_PS_UNBLOCKED");
+ char *message_text = g_strdup_printf(szbuf, viewer_play_data->addr_list.addr_info[0].address);
+ if (!message_text) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "message_text is null");
+ return;
+ }
+ status_message_post(message_text);
+ free(message_text);
+
+ msg_ui_viewer_title_update(viewer_play_data, MSG_VIEWER_OPTION_BLOCK);
+ }
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+}
+
+static void __msg_ui_viewer_block_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
+
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+
+ if (viewer_play_data->popup) {
+ evas_object_del(viewer_play_data->popup);
+ viewer_play_data->popup = NULL;
+ }
+
+ if (viewer_play_data->addr_list.addr_cnt == 1) {
+ msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
+ msg_error_t err = MSG_SUCCESS;
+
+ err = msg_set_int_value(filter, MSG_FILTER_TYPE_INT, MSG_FILTER_BY_ADDRESS_SAME);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_int_value failed err : %d", err);
+ msg_release_struct(&filter);
+ return;
+ }
+
+ err = msg_set_str_value(filter, MSG_FILTER_VALUE_STR, viewer_play_data->addr_list.addr_info[0].address, strlen(viewer_play_data->addr_list.addr_info[0].address));
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_str_value failed err : %d", err);
+ msg_release_struct(&filter);
+ return;
+ }
+
+ err = msg_add_filter(viewer_play_data->msgHandle, filter);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_add_filter failed err : %d", err);
+ msg_release_struct(&filter);
+ return;
+ }
+
+ char *szbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_PS_BLOCKED");
+ char *message_text = g_strdup_printf(szbuf, viewer_play_data->addr_list.addr_info[0].address);
+ if (!message_text) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "message_text is null");
+ msg_release_struct(&filter);
+ return;
+ }
+
+ status_message_post(message_text);
+ free(message_text);
+
+ msg_ui_viewer_title_update(viewer_play_data, MSG_VIEWER_OPTION_BLOCK);
+
+ msg_release_struct(&filter);
+ }
+
+ return;
+}
+
void msg_ui_viewer_open_title_menu_genlist(void *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !viewer_play_data, "viewer_play_data is NULL!");
int i = 0;
- /* create layout for title menu */
- Evas_Object *layout = elm_layout_add(viewer_play_data->play_layout);
- elm_layout_theme_set(layout, "layout", "application", "noindicator");
- evas_object_size_hint_weight_set(layout, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
- evas_object_size_hint_align_set(layout, EVAS_HINT_FILL, EVAS_HINT_FILL);
- evas_object_show(layout);
- elm_object_part_content_set(viewer_play_data->play_layout, "viewer.titlebtn.list", layout);
-
/* create box (for setting min size of genlist)*/
- Evas_Object *box = elm_box_add(layout);
+ Evas_Object *box = elm_box_add(viewer_play_data->play_layout);
evas_object_size_hint_weight_set(box, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(box, EVAS_HINT_FILL, EVAS_HINT_FILL);
evas_object_show(box);
- elm_object_part_content_set(layout, "elm.swallow.content", box);
+
+ elm_object_part_content_set(viewer_play_data->play_layout, "viewer.swallow.title.list", box);
/* create genlist */
Evas_Object *genlist = elm_genlist_add(box);
+ elm_object_theme_set(genlist, viewer_play_data->title_th);
evas_object_size_hint_weight_set(genlist, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(genlist, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_genlist_homogeneous_set(genlist, EINA_TRUE);
elm_box_pack_end(box, genlist);
/* set genlist styles */
- viewer_play_data->itc_title.item_style = "2text.1icon.2";
+ viewer_play_data->itc_title.item_style = "2text.1icon.2.custom";
viewer_play_data->itc_title.func.text_get = __msg_ui_viewer_title_menu_gl_text_get;
viewer_play_data->itc_title.func.content_get = __msg_ui_viewer_title_menu_gl_content_get;
viewer_play_data->itc_title.func.state_get = NULL;
elm_genlist_item_append(genlist, &(viewer_play_data->itc_title), &(viewer_play_data->addr_list.addr_info[i]), NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_title_menu_gl_sel, viewer_play_data);
viewer_play_data->title_genlist = genlist;
- viewer_play_data->title_box_layout = layout;
+ viewer_play_data->title_box_layout = box;
/** emit signal for changing state of title menu list to open */
- elm_object_signal_emit(viewer_play_data->title_box_layout, "elm,state,titlelist,open", "");
+ elm_object_signal_emit(viewer_play_data->play_layout, "elm,state,titlelist,open", "");
- /** Determine genlist size to show - it shows maxmum 3 rows */
+ /** Determine genlist size to show */
if (viewer_play_data->addr_list.addr_cnt >= VIEWER_TITLE_MENU_GENLIST_MAX_ITEM)
- evas_object_size_hint_min_set(box, 0, VIEWER_TITLE_MENU_LINE_HEIGHT * VIEWER_TITLE_MENU_GENLIST_MAX_ITEM);
+ evas_object_size_hint_min_set(box, 0, VIEWER_TITLE_MENU_LINE_HEIGHT * VIEWER_TITLE_MENU_GENLIST_MAX_ITEM * elm_scale_get());
else
- evas_object_size_hint_min_set(box, 0, VIEWER_TITLE_MENU_LINE_HEIGHT * viewer_play_data->addr_list.addr_cnt);
+ evas_object_size_hint_min_set(box, 0, VIEWER_TITLE_MENU_LINE_HEIGHT * viewer_play_data->addr_list.addr_cnt * elm_scale_get());
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
MSG_UI_RETM_IF(MSG_UI_LEVEL_ERR, !viewer_play_data, "viewer_play_data is NULL!");
- elm_object_signal_emit(viewer_play_data->title_box_layout, "elm,state,titlelist,close", "");
+ elm_object_signal_emit(viewer_play_data->play_layout, "elm,state,titlelist,close", "");
- Evas_Object *layout = elm_object_part_content_unset(viewer_play_data->play_layout, "viewer.titlebtn.list");
+ Evas_Object *layout = elm_object_part_content_unset(viewer_play_data->play_layout, "viewer.swallow.title.list");
if (layout) {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "delete box layout");
evas_object_del(layout);
elm_list_item_append(list, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS"), NULL, NULL, __msg_ui_viewer_title_menu_popup_selected_cb, (void *)addrInfo);
}
+ if (msg_common_is_valid_phone_number(addrInfo->address)) {
+ int filter_id = 0;
+ if (msg_ui_viewer_check_address_is_blocked(viewer_play_data, addrInfo->address, &filter_id))
+ elm_list_item_append(list, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_UNBLOCK"), NULL, NULL, __msg_ui_viewer_title_menu_popup_selected_cb, (void *)addrInfo);
+ else
+ elm_list_item_append(list, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_BLOCK"), NULL, NULL, __msg_ui_viewer_title_menu_popup_selected_cb, (void *)addrInfo);
+ }
+
elm_list_go(list);
elm_object_content_set(popup, list);
evas_object_show(popup);
service_destroy(svc_handle);
} else if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_BODY_VIDEO_CALL")) == 0) {
- int ret = 0;
- bundle *b = bundle_create();
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_TYPE, MSG_BUNDLE_VALUE_VCALL_MO);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_HANDLE, MSG_BUNDLE_VALUE_VCALL_HANDLE);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_PARTY_NUM, addrInfo->address);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_CLI_CAUSE, MSG_BUNDLE_VALUE_VCALL_FALSE);
- bundle_add(b, MSG_BUNDLE_KEY_VCALL_FORWARDED, MSG_BUNDLE_VALUE_VCALL_FALSE);
- if ((ret = aul_launch_app(VIDEO_CALL_PKG_NAME, b)) >= 0) {
+ service_error_e err = SERVICE_ERROR_NONE;
+ service_h svc_handle = NULL;
+ char telnum[MAX_ADDRESS_VAL_LEN+5] = {0,};
+ char contact_id[VIEWER_BUFFER_SIZE_64] = {0,};
+
+ service_create(&svc_handle);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
+
+ snprintf(telnum, sizeof(telnum), "tel:%s", addrInfo->address);
+ snprintf(contact_id, sizeof(contact_id), "%d", addrInfo->contact_id);
+
+ 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_DEBUG, "aul_launch_app failed ret : %d", ret);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", err);
}
- bundle_free(b);
+
+ service_destroy(svc_handle);
} else if (g_strcmp0(label, dgettext("sys_string", "IDS_COM_OPT_ADD_TO_CONTACTS")) == 0) { /* Add to contact with phone number string... */
ui_gadget_h loaded_ug = NULL;
char buf[DEF_BUF_LEN_D] = { 0, };
service_add_extra_data(svc_handle, CT_UG_BUNDLE_NUM, addrInfo->address);
}
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_ADD_TO_CONTACT;
loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), UG_CONTACTS_LIST, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- } else {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
+ viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CONTACT;
}
+
service_destroy(svc_handle);
} else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_VIEW_CONTACT")) == 0) {
ui_gadget_h loaded_ug = NULL;
service_add_extra_data(svc_handle, CT_UG_BUNDLE_TYPE, buf);
service_add_extra_data(svc_handle, CT_UG_BUNDLE_ID, contactId);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_ADD_TO_CONTACT;
loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), UG_CONTACTS_DETAILS, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
if (loaded_ug) {
msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
msg_ui_viewer_disconnect_handler(viewer_play_data);
- } else {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
+ viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_CONTACT;
}
+
service_destroy(svc_handle);
} else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_SEND_EMAIL")) == 0) {
- ui_gadget_h loaded_ug = NULL;
service_h svc_handle = NULL;
+ service_error_e svc_err = SERVICE_ERROR_NONE;
service_create(&svc_handle);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, svc_handle < 0 || svc_handle == NULL);
+ service_set_operation(svc_handle, SERVICE_OPERATION_SEND);
+ service_set_app_id(svc_handle, "email-composer-efl");
service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_RUN_TYPE, MSG_BUNDLE_VALUE_EMAIL_COMPOSE);
- service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_TO, addrInfo->address);
+ service_add_extra_data(svc_handle, SERVICE_DATA_TO, addrInfo->address);
- viewer_play_data->launch_cmd = MSG_VIEWER_LOAD_OTHER_UG_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_LOAD_EMAIL_COMPOSER;
- loaded_ug = ug_create(msg_ui_viewer_get_viewer_ug(viewer_play_data->viewer_main), EMAIL_COMPOSER_UG_NAME, UG_MODE_FULLVIEW, svc_handle, &viewer_play_data->cbs);
+ Ecore_X_Window win_id = elm_win_xwindow_get(viewer_play_data->main_window);
+ service_set_window(svc_handle, win_id);
- if (loaded_ug) {
- msg_ui_viewer_set_loaded_ug(viewer_play_data->viewer_main, loaded_ug);
+ 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 {
- viewer_play_data->launch_cmd = MSG_VIEWER_DEFAULT_MODE;
- viewer_play_data->cmd_type = MSG_VIEWER_CMD_NONE;
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "[Error] service_send_launch_request is failed : %d", svc_err);
}
+
service_destroy(svc_handle);
+ } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_UNBLOCK")) == 0) {
+ int filter_id = 0;
+ if (msg_ui_viewer_check_address_is_blocked(viewer_play_data, addrInfo->address, &filter_id)) {
+ msg_error_t err = MSG_SUCCESS;
+ err = msg_delete_filter(viewer_play_data->msgHandle, (msg_filter_id_t)filter_id);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_delete_filter is failed err : %d", err);
+ return;
+ }
+
+ char *szbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_PS_UNBLOCKED");
+ char *message_text = g_strdup_printf(szbuf, viewer_play_data->addr_list.addr_info[0].address);
+ if (!message_text) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "message_text is null");
+ return;
+ }
+
+ status_message_post(message_text);
+ free(message_text);
+
+ msg_ui_viewer_title_update(viewer_play_data, MSG_VIEWER_OPTION_BLOCK);
+ }
+ } else if (g_strcmp0(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_BLOCK")) == 0) {
+ char szbuf[VIEWER_BUFFER_SIZE_64] = {0,};
+ Evas_Object *popup = elm_popup_add(viewer_play_data->main_window);
+ evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
+ snprintf(szbuf, sizeof(szbuf), "%s %s?", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_BLOCK"), viewer_play_data->addr_list.addr_info[0].address);
+ elm_object_text_set(popup, szbuf);
+
+ Evas_Object *btn_ok = elm_button_add(popup);
+ elm_object_style_set(btn_ok, "popup_button/default");
+ elm_object_text_set(btn_ok, dgettext("sys_string", "IDS_COM_SK_OK"));
+ elm_object_part_content_set(popup, "button1", btn_ok);
+ evas_object_smart_callback_add(btn_ok, "clicked", __msg_ui_viewer_title_menu_block_ok_clicked_cb, viewer_play_data);
+ evas_object_data_set(btn_ok, "addrInfo", addrInfo);
+
+ Evas_Object *btn_cancel = elm_button_add(popup);
+ elm_object_style_set(btn_cancel, "popup_button/default");
+ elm_object_text_set(btn_cancel, dgettext("sys_string", "IDS_COM_SK_CANCEL"));
+ elm_object_part_content_set(popup, "button2", btn_cancel);
+ evas_object_smart_callback_add(btn_cancel, "clicked", __msg_ui_viewer_delete_cancel_clicked_cb, viewer_play_data);
+
+ evas_object_show(popup);
+ viewer_play_data->popup = popup;
+
+ /*disconnect mouse handler*/
+ msg_ui_viewer_disconnect_handler(viewer_play_data);
}
+ /* close title box area */
+ elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
+ msg_ui_viewer_close_title_menu_genlist(viewer_play_data);
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
+static void __msg_ui_viewer_title_menu_block_ok_clicked_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
+
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ MSG_VIEWER_ADDR_INFO *addrInfo = NULL;
+ addrInfo = (MSG_VIEWER_ADDR_INFO *)evas_object_data_get(obj, "addrInfo");
+ msg_struct_t filter = msg_create_struct(MSG_STRUCT_FILTER);
+ msg_error_t err = MSG_SUCCESS;
+
+ if (viewer_play_data->popup) {
+ evas_object_del(viewer_play_data->popup);
+ viewer_play_data->popup = NULL;
+ }
+
+ err = msg_set_int_value(filter, MSG_FILTER_TYPE_INT, MSG_FILTER_BY_ADDRESS_SAME);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_int_value failed err : %d", err);
+ msg_release_struct(&filter);
+ return;
+ }
+
+ err = msg_set_str_value(filter, MSG_FILTER_VALUE_STR, addrInfo->address, strlen(addrInfo->address));
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_set_str_value failed err : %d", err);
+ msg_release_struct(&filter);
+ return;
+ }
+
+ err = msg_add_filter(viewer_play_data->msgHandle, filter);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_add_filter failed err : %d", err);
+ msg_release_struct(&filter);
+ return;
+ }
+
+ char *szbuf = dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_PS_BLOCKED");
+ char *message_text = g_strdup_printf(szbuf, addrInfo->address);
+ if (!message_text) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "message_text is null");
+ msg_release_struct(&filter);
+ return;
+ }
+
+ status_message_post(message_text);
+ free(message_text);
+
+ msg_ui_viewer_title_update(viewer_play_data, MSG_VIEWER_OPTION_BLOCK);
+
+ msg_release_struct(&filter);
+
+ return;
+}
+
static void __msg_ui_viewer_create_save_attachments_popup(MSG_PLAY_DATA_S *data)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
Elm_Object_Item *gl_item = NULL;
Evas_Object *popup = NULL;
+ Evas_Object *box = NULL;
Evas_Object *genlist = NULL;
Evas_Object *btn_save = NULL;
Evas_Object *btn_close = NULL;
int index = 0;
int total_media_count = 0;
+ int popup_height = 0;
total_media_count = viewer_play_data->insert_count + viewer_play_data->attach_count;
elm_object_style_set(popup, "min_menustyle");
/* set popup title */
- elm_object_part_text_set(popup, "title,text", (char *)"Attachments");
+ elm_object_part_text_set(popup, "title,text", dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_ATTACHMENTS"));
/* set select all genlist item style */
viewer_play_data->attach_sa_class.item_style = "1text.1icon.2";
evas_object_smart_callback_add(btn_close, "clicked", __msg_ui_viewer_save_attachments_popup_cancel_clicked_cb, viewer_play_data);
/* set popup style */
- if (total_media_count > 3 ) {
- /* set genlist part content in popup */
- elm_object_content_set(popup, genlist);
- } else {
- Evas_Object *box = NULL;
- box = elm_box_add(viewer_play_data->main_window);
- evas_object_size_hint_min_set(box, VIEWER_ATTACH_POPUP_WIDTH * elm_scale_get(), VIEWER_ATTACH_GL_ITEM_HEIGHT * (viewer_play_data->insert_count + viewer_play_data->attach_count + ((total_media_count > 1) ? 1 : 0)) * elm_scale_get());
- evas_object_show(genlist);
- elm_box_pack_end(box, genlist);
- elm_object_content_set(popup, box);
- }
+ box = elm_box_add(viewer_play_data->main_window);
+ popup_height = VIEWER_ATTACH_GL_ITEM_HEIGHT * ((total_media_count > 3) ? 4 : ((total_media_count > 1) ? total_media_count + 1 : total_media_count));
+ evas_object_size_hint_min_set(box, 0, popup_height * elm_scale_get());
+ evas_object_show(genlist);
+ elm_box_pack_end(box, genlist);
+ elm_object_content_set(popup, box);
/* show popup */
evas_object_show(popup);
if (!viewer_play_data->mouse_down_event_handler)
viewer_play_data->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_play_data);
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
if (failed_count == selected_count) {
status_message_post(dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_SAVE"));
} else {
- char buf[DEF_BUF_LEN_S + 1] = {0, };
- snprintf(buf, sizeof(buf), "%s (%d/%d)", dgettext("sys_string", "IDS_COM_POP_SAVED"), saved_count, selected_count);
- status_message_post(buf);
+ if (selected_count == 1 && saved_count == 1) {
+ status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+ } else {
+ char buf[DEF_BUF_LEN_S + 1] = {0, };
+ snprintf(buf, sizeof(buf), "%s (%d/%d)", dgettext("sys_string", "IDS_COM_POP_SAVED"), saved_count, selected_count);
+ status_message_post(buf);
+ }
}
/* connect mouse handler again*/
if (!viewer_play_data->mouse_down_event_handler)
viewer_play_data->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_play_data);
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
if (failed_count == attach_count) {
status_message_post(dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_SAVE"));
} else {
- char buf[DEF_BUF_LEN_S + 1] = {0, };
- snprintf(buf, sizeof(buf), "%s (%d/%d)", dgettext("sys_string", "IDS_COM_POP_SAVED"), saved_count, attach_count);
- status_message_post(buf);
+ if (attach_count == 1 && failed_count == 0) {
+ status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
+ } else {
+ char buf[DEF_BUF_LEN_S + 1] = {0, };
+ snprintf(buf, sizeof(buf), "%s (%d/%d)", dgettext("sys_string", "IDS_COM_POP_SAVED"), saved_count, attach_count);
+ status_message_post(buf);
+ }
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
if (issave)
- status_message_post(dgettext("sys_string", "IDS_COM_POP_SAVED"));
+ status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_SAVED_IN_MY_FILES"));
else
status_message_post(dgettext("sys_string", "IDS_COM_POP_UNABLE_TO_SAVE"));
}
viewer_play_data->popup = NULL;
}
- if (strcmp(label, (char *)"Copy message text") == 0) {
+ if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_COPY_MESSAGE_TEXT_ABB")) == 0) {
msg_ui_viewer_copy_message_text_to_clipboard(viewer_play_data);
- } else if (strcmp(label, (char *)"View message details") == 0) {
+
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
+ } else if (strcmp(label, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_VIEW_MESSAGE_DETAILS_ABB")) == 0) {
msg_ui_viewer_create_msg_detail_popup(viewer_play_data);
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "invalid list type");
viewer_play_data->popup = NULL;
}
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
+static void __msg_ui_viewer_protection_cb(void *data, Evas_Object *obj, void *event_info)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, !data);
+
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)viewer_play_data->viewer_main;
+
+ msg_error_t err = MSG_SUCCESS;
+ bool is_protected = false;
+
+ msg_struct_t msg_info = msg_create_struct(MSG_STRUCT_MESSAGE_INFO);
+ msg_struct_t send_opt = msg_create_struct(MSG_STRUCT_SENDOPT);
+
+ err = msg_get_message(viewer_play_data->msgHandle, viewer_play_data->msgID, msg_info, send_opt);
+
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_get_message is failed");
+
+ if (msg_info)
+ msg_release_struct(&msg_info);
+ if (send_opt)
+ msg_release_struct(&send_opt);
+ return;
+ }
+
+ msg_get_bool_value(msg_info, MSG_MESSAGE_PROTECTED_BOOL, &is_protected);
+
+ /* get lock status and change status */
+ err = msg_update_protected_status(viewer_play_data->msgHandle, viewer_play_data->msgID, ((is_protected) ? false : true));
+
+ /* update message info */
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_update_protected_status is failed");
+ msg_release_struct(&msg_info);
+ msg_release_struct(&send_opt);
+ return;
+ }
+
+ /* delete ctx popup */
+ if (viewer_play_data->popup) {
+ evas_object_del(viewer_play_data->popup);
+ viewer_play_data->popup = NULL;
+ }
+
+ /* signal emit for showing/hiding lock icon */
+ if (is_protected)
+ edje_object_signal_emit(_EDJ(viewer_play_data->subject_index_layout), "lock/icon/hide", "*");
+ else
+ edje_object_signal_emit(_EDJ(viewer_play_data->subject_index_layout), "lock/icon/show", "*");
+
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
+
+ /* send refresh conversation result to bubble-composer ug */
+ char str_id[DEF_BUF_LEN] = {0,};
+ service_h svc_handle = NULL;
+
+ service_create(&svc_handle);
+ if (svc_handle < 0 || svc_handle == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_create is failed");
+ msg_release_struct(&msg_info);
+ msg_release_struct(&send_opt);
+ return;
+ }
+
+ snprintf(str_id, DEF_BUF_LEN, "%d", viewer_play_data->msgID);
+ service_add_extra_data(svc_handle, MSG_BUNDLE_KEY_REFRESH_CONV, str_id);
+ ug_send_result(viewer_main_data->viewer_ug, svc_handle);
+
+ service_destroy(svc_handle);
+
+ msg_release_struct(&msg_info);
+ msg_release_struct(&send_opt);
+
+ MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+}
#include <msg_storage.h>
#include <msg_transport.h>
-#include <aul.h>
#include <Ecore_X.h>
#include <glib.h>
#include <contacts-ug.h>
/*update page index*/
snprintf(title_string, sizeof(title_string), "%d/%d ", eventStatus->pageIdx + 1, total_page);
- edje_object_part_text_set(_EDJ(viewer_play_data->subject_index_layout), "page/index", title_string);
+ edje_object_part_text_set(_EDJ(viewer_play_data->subject_index_layout), "page/text", title_string);
if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE && eventStatus->isLastSlide == TRUE) {
MSG_VIEWER_LAUNCH_VIEW_MODE_E launchmode = MSG_VIEWER_INVALID_MODE;
edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "pause", "*");
viewer_play_data->status = MSG_VIEWER_PLAY;
- } else if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE) {
+ } else if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_PAUSE_CURRENT_PAGE || eventStatus->clientCbEvent == SMIL_RENDER_EVENT_MOVE_PAGE_AFTER_PAUSED) {
if (viewer_play_data->play_controller)
edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
MSG_BOOL bfisrt_page = FALSE;
MSG_BOOL blast_page = FALSE;
SMIL_SLIDE_CLIENT_CB_PARAM_S *eventStatus = viewer_play_data->smil_eventStatus;
- Evas_Object *left_btn_icon = NULL;
- Evas_Object *right_btn_icon = NULL;
- int r = VIEWER_COLOR_255;
- int g = VIEWER_COLOR_255;
- int b = VIEWER_COLOR_255;
- int a = VIEWER_COLOR_255;
SMIL_SLIDE_INFO_S *slide = msg_smil_get_current_slide_info(viewer_play_data->SmilHandle);
if (status == MSG_VIEWER_STOP) {
- elm_object_disabled_set(viewer_play_data->next_button, TRUE);
- right_btn_icon = elm_object_part_content_get(viewer_play_data->next_button, "icon");
- evas_object_color_get(right_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(right_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128);
-
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable next_button");
- elm_object_disabled_set(viewer_play_data->prev_button, TRUE);
- left_btn_icon = elm_object_part_content_get(viewer_play_data->prev_button, "icon");
- evas_object_color_get(left_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(left_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable prev_button");
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "next_disable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable next_button");
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "prev_disable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable prev_button");
+ }
} else {
MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, eventStatus == NULL);
MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, slide == NULL);
blast_page = TRUE;
if (bfisrt_page) { /*first page*/
- elm_object_disabled_set(viewer_play_data->prev_button, TRUE);
- left_btn_icon = elm_object_part_content_get(viewer_play_data->prev_button, "icon");
- evas_object_color_get(left_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(left_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128);
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "prev_disable", "*");
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable prev_button");
+ }
} else {
- elm_object_disabled_set(viewer_play_data->prev_button, FALSE);
- left_btn_icon = elm_object_part_content_get(viewer_play_data->prev_button, "icon");
- evas_object_color_get(left_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(left_btn_icon, VIEWER_COLOR_255, VIEWER_COLOR_255, VIEWER_COLOR_255, VIEWER_COLOR_255);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Enable prev_button");
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "prev_enable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Enable prev_button");
+ }
}
if (blast_page) { /*lastpage*/
- elm_object_disabled_set(viewer_play_data->next_button, TRUE);
- right_btn_icon = elm_object_part_content_get(viewer_play_data->next_button, "icon");
- evas_object_color_get(right_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(right_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, 128);
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "next_disable", "*");
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable next_button");
+ }
} else {
- elm_object_disabled_set(viewer_play_data->next_button, FALSE);
- right_btn_icon = elm_object_part_content_get(viewer_play_data->next_button, "icon");
- evas_object_color_get(right_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(right_btn_icon, VIEWER_COLOR_255, VIEWER_COLOR_255, VIEWER_COLOR_255, VIEWER_COLOR_255);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Enable next_button");
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "next_enable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Enable next_button");
+ }
}
/*smil player is finished*/
if (eventStatus->clientCbEvent == SMIL_RENDER_EVENT_LAST_PAGE_PLAY_COMPLETE &&
eventStatus->isLastSlide == TRUE) {
- elm_object_disabled_set(viewer_play_data->next_button, TRUE);
- right_btn_icon = elm_object_part_content_get(viewer_play_data->next_button, "icon");
- evas_object_color_get(right_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(right_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable next_button");
-
- elm_object_disabled_set(viewer_play_data->prev_button, TRUE);
- left_btn_icon = elm_object_part_content_get(viewer_play_data->prev_button, "icon");
- evas_object_color_get(left_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(left_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable prev_button");
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "next_disable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable next_button");
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "prev_disable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable prev_button");
+ }
}
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Multipart.mixed message");
- elm_object_disabled_set(viewer_play_data->next_button, TRUE);
- right_btn_icon = elm_object_part_content_get(viewer_play_data->next_button, "icon");
- evas_object_color_get(right_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(right_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128);
-
- elm_object_disabled_set(viewer_play_data->prev_button, TRUE);
- left_btn_icon = elm_object_part_content_get(viewer_play_data->prev_button, "icon");
- evas_object_color_get(left_btn_icon, &r, &g, &b, &a);
- evas_object_color_set(left_btn_icon, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128, VIEWER_COLOR_128);
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "next_disable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable next_button");
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "prev_disable", "*");
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Disable prev_button");
+ }
}
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
-void msg_ui_viewer_command_play_pause(void *data)
+MSG_BOOL msg_ui_viewer_command_play_pause(void *data, MSG_VIEWER_ACTION_TYPE_E action)
{
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_SMIL_ERROR_E Error = MSG_SMIL_SUCCESS;
+ MSG_UI_RETV_IF(MSG_UI_LEVEL_ERR, data == NULL, FALSE);
+ MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
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);
- return;
+ return FALSE;
}
- /* play */
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
- Error = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
- if (Error != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", Error);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
- viewer_play_data->status = MSG_VIEWER_PAUSE;
+ switch(action) {
+ case MSG_VIEWER_ACTION_TOOLBAR_PAUSE :
+ /* fall through */
+ case MSG_VIEWER_ACTION_AUTO_PAUSE :
+ /* Do pause action only if current status is PLAY */
+ if (viewer_play_data->status == MSG_VIEWER_PLAY) {
+ err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PAUSE);
+ if (err != MSG_SMIL_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", err);
+ return FALSE;
+ } else {
+ if (viewer_play_data->play_controller)
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "play", "*");
+ viewer_play_data->status = MSG_VIEWER_PAUSE;
- if (viewer_play_data->play_controller_progressbar_timer)
- ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
- }
- } else if (viewer_play_data->status == MSG_VIEWER_STOP) {
- Error = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PLAY);
- if (Error != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", Error);
- } else {
- if (viewer_play_data->play_controller) {
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "pause", "*");
- msg_ui_viewer_create_progressbar(viewer_play_data, 0);
+ if (viewer_play_data->play_controller_progressbar_timer)
+ ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
+ }
}
+ break;
+ case MSG_VIEWER_ACTION_TOOLBAR_PLAY :
+ /* fall through */
+ case MSG_VIEWER_ACTION_AUTO_PLAY :
+ /* Do play action when play status is STOP & PAUSE */
+ if (viewer_play_data->status == MSG_VIEWER_STOP) {
+ err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_PLAY);
+ if (err != MSG_SMIL_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", err);
+ return FALSE;
+ } else {
+ if (viewer_play_data->play_controller) {
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "pause", "*");
+ msg_ui_viewer_create_progressbar(viewer_play_data, 0);
+ }
+ viewer_play_data->status = MSG_VIEWER_PLAY;
+ }
+ } else if (viewer_play_data->status == MSG_VIEWER_PAUSE) {
+ err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_RESUME);
+ if (err != MSG_SMIL_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", err);
+ return FALSE;
+ } else {
+ if (viewer_play_data->play_controller)
+ edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "pause", "*");
+ viewer_play_data->status = MSG_VIEWER_PLAY;
- viewer_play_data->status = MSG_VIEWER_PLAY;
- }
- } else if (viewer_play_data->status == MSG_VIEWER_PAUSE) {
- Error = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_RESUME);
- if (Error != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", Error);
- return;
- } else {
- if (viewer_play_data->play_controller)
- edje_object_signal_emit(_EDJ(viewer_play_data->play_controller), "pause", "*");
- viewer_play_data->status = MSG_VIEWER_PLAY;
-
- if (viewer_play_data->play_controller_progressbar_timer)
- ecore_timer_thaw(viewer_play_data->play_controller_progressbar_timer);
- }
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid play status case");
+ if (viewer_play_data->play_controller_progressbar_timer)
+ ecore_timer_thaw(viewer_play_data->play_controller_progressbar_timer);
+ }
+ }
+ break;
+ default :
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "Invalid play status case");
+ return FALSE;
}
- /* hide optionheader if current viewer status has changed to MSG_VIEWER_PLAY */
- if (viewer_play_data->status == MSG_VIEWER_PLAY) {
+ /* refreshing play controller timer by button action */
+ if (action == MSG_VIEWER_ACTION_TOOLBAR_PLAY) {
+ msg_ui_viewer_create_play_controller_timer(viewer_play_data);
if (viewer_play_data->title_optionheader_opened) {
elm_object_item_signal_emit(viewer_play_data->navi_item, "elm,state,optionheader,close", "");
elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
msg_ui_viewer_close_title_menu_genlist(viewer_play_data);
}
- }
- MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
-}
+ viewer_play_data->auto_resume_state = true;
+ } else if (action == MSG_VIEWER_ACTION_TOOLBAR_PAUSE) {
+ msg_ui_viewer_create_play_controller_timer(viewer_play_data);
+ viewer_play_data->auto_resume_state = false;
+ } else {
+ /* case for not button action */
+ if (viewer_play_data->status == MSG_VIEWER_PLAY) {
+ if (viewer_play_data->title_optionheader_opened) {
+ elm_object_item_signal_emit(viewer_play_data->navi_item, "elm,state,optionheader,close", "");
+ elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
+ viewer_play_data->title_optionheader_opened = EINA_FALSE;
+ }
-void msg_ui_viewer_update_player_state_after_save(void *data)
-{
- MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
- MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
- MSG_SMIL_ERROR_E err = MSG_SMIL_SUCCESS;
- MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ if (viewer_play_data->title_box_layout) {
+ elm_object_signal_emit(viewer_play_data->navi_title_layout, "elm,state,title,hide", "");
+ msg_ui_viewer_close_title_menu_genlist(viewer_play_data);
+ }
- if (viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
- err = msg_smil_on_slide_event_handler(&(viewer_play_data->SmilHandle), PLAYER_EVENT_RESUME);
- if (err != MSG_SMIL_SUCCESS) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_smil_on_slide_event_handler failed! : %d", err);
- return;
- } else {
- viewer_play_data->status = MSG_VIEWER_PLAY;
+ /* show play controller again to notify SMIL is resumed */
+ if (viewer_play_data->play_controller && !viewer_play_data->playcontroller_opened) {
+ elm_object_part_content_set(viewer_play_data->play_layout, "viewer.swallow.play.controller", viewer_play_data->play_controller);
+ evas_object_show(viewer_play_data->play_controller);
+ viewer_play_data->playcontroller_opened = TRUE;
+ msg_ui_viewer_create_play_controller_timer(viewer_play_data);
+ }
+ } else if (viewer_play_data->status == MSG_VIEWER_PAUSE) {
+ if (viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ /* show play controller again to notify SMIL is paused */
+ if (viewer_play_data->play_controller && !viewer_play_data->playcontroller_opened) {
+ elm_object_part_content_set(viewer_play_data->play_layout, "viewer.swallow.play.controller", viewer_play_data->play_controller);
+ evas_object_show(viewer_play_data->play_controller);
+ viewer_play_data->playcontroller_opened = TRUE;
+ msg_ui_viewer_create_play_controller_timer(viewer_play_data);
+ }
+ }
}
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->status : %d", viewer_play_data->status);
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "viewer_play_data->previous_status : %d", viewer_play_data->previous_status);
}
- viewer_play_data->previous_status = MSG_VIEWER_UNKOWN;
-
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
+
+ return TRUE;
}
void msg_ui_viewer_play_view_init(void *data)
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "subject text is %s", strSubject);
if (strSubject[0] != '\0')
- edje_object_part_text_set(_EDJ(viewer_play_data->subject_index_layout), "subject", strSubject);
+ edje_object_part_text_set(_EDJ(viewer_play_data->subject_index_layout), "subject/text", strSubject);
elm_object_part_content_set(viewer_play_data->play_layout, "viewer.swallow.subject", viewer_play_data->subject_index_layout);
+ /* set LOCK icon if available */
+ bool bProtected = false;
+ msg_get_bool_value(msgInfo, MSG_MESSAGE_PROTECTED_BOOL, &bProtected);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Lock status of current message %d", bProtected);
+ edje_object_signal_emit(_EDJ(viewer_play_data->subject_index_layout), ((bProtected) ? "lock/icon/show" : "lock/icon/hide"), "*");
+
msg_release_struct(&msgInfo);
msg_release_struct(&sendOpt);
viewer_play_data->title_button = elm_button_add(viewer_play_data->navi_frame);
elm_object_theme_set(viewer_play_data->title_button, viewer_play_data->title_th);
elm_object_style_set(viewer_play_data->title_button, "title_button");
- evas_object_size_hint_weight_set(viewer_play_data->title_button, 0.0, 0.0);
+ evas_object_size_hint_weight_set(viewer_play_data->title_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(viewer_play_data->title_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
if (viewer_play_data->addr_list.addr_info[0].contact_id > 0) {
viewer_play_data->title_button = elm_button_add(viewer_play_data->navi_frame);
elm_object_theme_set(viewer_play_data->title_button, viewer_play_data->title_th);
elm_object_style_set(viewer_play_data->title_button, "title_button");
- evas_object_size_hint_weight_set(viewer_play_data->title_button, 0.0, 0.0);
+ evas_object_size_hint_weight_set(viewer_play_data->title_button, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(viewer_play_data->title_button, EVAS_HINT_FILL, EVAS_HINT_FILL);
if (viewer_play_data->addr_list.addr_info[0].contact_id > 0) {
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
-
int i;
/* create add/view contact button */
Evas_Object *addcontact_button = NULL;
+ Evas_Object *block_button = NULL;
/* clear toolbar items, max value is 3 */
- for (i = 0; i < 3; i++) {
+ for (i = 0; i < sizeof(viewer_play_data->toolbar_item)/sizeof(Elm_Object_Item *); i++) {
if (viewer_play_data->toolbar_item[i])
elm_object_item_del(viewer_play_data->toolbar_item[i]);
}
+ /* check contact button type and create */
if (viewer_play_data->addr_list.addr_info[0].contact_id <= 0) {
addcontact_button = msg_ui_viewer_create_title_toolbar_btn(toolbar, MSG_TITLE_ICON_ADD_TO_CONTACT, NULL);
evas_object_smart_callback_add(addcontact_button, "clicked", msg_ui_viewer_toolbar_add_to_contact_cb, (void *)viewer_play_data);
evas_object_smart_callback_add(addcontact_button, "clicked", msg_ui_viewer_toolbar_view_contact_cb, (void *)viewer_play_data);
}
+ /* check block button type and create */
+ int filter_id = 0;
+ if (msg_ui_viewer_check_address_is_blocked(viewer_play_data, viewer_play_data->addr_list.addr_info[0].address, &filter_id)) {
+ block_button = msg_ui_viewer_create_title_toolbar_btn(toolbar, MSG_TITLE_ICON_UNBLOCK, NULL);
+ evas_object_smart_callback_add(block_button, "clicked", msg_ui_viewer_toolbar_unblock_address_cb, (void *)viewer_play_data);
+ } else {
+ block_button = msg_ui_viewer_create_title_toolbar_btn(toolbar, MSG_TITLE_ICON_BLOCK, NULL);
+ evas_object_smart_callback_add(block_button, "clicked", msg_ui_viewer_toolbar_block_address_cb, (void *)viewer_play_data);
+ }
+
if (msg_common_is_valid_phone_number(viewer_play_data->addr_list.addr_info[0].address)) {
/* create voicecall button */
Evas_Object *voicecall_button = msg_ui_viewer_create_title_toolbar_btn(toolbar, MSG_TITLE_ICON_VOICECALL, NULL);
viewer_play_data->toolbar_item[1] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
elm_object_item_part_content_set(viewer_play_data->toolbar_item[1], "object", videocall_button);
+ /* set contact button */
viewer_play_data->toolbar_item[2] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
elm_object_item_part_content_set(viewer_play_data->toolbar_item[2], "object", addcontact_button);
+
+ /* set block button */
+ viewer_play_data->toolbar_item[3] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[3], "object", block_button);
} else if (msg_common_is_valid_email_addr(viewer_play_data->addr_list.addr_info[0].address)) {
+ /* set email button */
Evas_Object *email_button = msg_ui_viewer_create_title_toolbar_btn(toolbar, NULL, dgettext("sys_string","IDS_COM_BODY_EMAIL"));
evas_object_smart_callback_add(email_button, "clicked", msg_ui_viewer_toolbar_email_cb, (void *)viewer_play_data);
viewer_play_data->toolbar_item[0] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
elm_object_item_part_content_set(viewer_play_data->toolbar_item[0], "object", email_button);
+ /* set contact button */
viewer_play_data->toolbar_item[1] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
elm_object_item_part_content_set(viewer_play_data->toolbar_item[1], "object", addcontact_button);
} else {
MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "given address cannot be handled : %s", viewer_play_data->addr_list.addr_info[0].address);
- viewer_play_data->toolbar_item[CONTROLBAR_ITEM_1] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ viewer_play_data->toolbar_item[0] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
elm_object_item_part_content_set(viewer_play_data->toolbar_item[0], "object", addcontact_button);
elm_object_item_disabled_set(viewer_play_data->toolbar_item[0], EINA_TRUE);
elm_object_disabled_set(addcontact_button, EINA_TRUE);
+
+ viewer_play_data->toolbar_item[1] = elm_toolbar_item_append(toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[1], "object", block_button);
+ elm_object_item_disabled_set(viewer_play_data->toolbar_item[1], EINA_TRUE);
+ elm_object_disabled_set(block_button, EINA_TRUE);
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
return NULL;
}
-void msg_ui_viewer_contact_info_update(MSG_PLAY_DATA_S *data)
+void msg_ui_viewer_title_update(MSG_PLAY_DATA_S *data, MSG_VIEWER_OPTION_CHANGE_TYPE_E option_type)
{
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- /* reload thread address list */
- __msg_ui_viewer_get_thread_addr_list(viewer_play_data);
+ if (option_type == MSG_VIEWER_OPTION_CONTACT) {
+ Evas_Object *contact_button = NULL;
+ Evas_Object *block_button = NULL;
+ int filter_id = 0;
- /* change control bar button */
- if (viewer_play_data->title_optionheader_opened) {
- if (viewer_play_data->addr_list.addr_info[0].contact_id > 0) {
- Evas_Object *addcontact_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_CONTROLBAR_ICON_VIEW_CONTACT, NULL);
- evas_object_smart_callback_add(addcontact_button, "clicked", msg_ui_viewer_toolbar_view_contact_cb, (void *)viewer_play_data);
+ /* reload thread address list */
+ __msg_ui_viewer_get_thread_addr_list(viewer_play_data);
- if (msg_common_is_valid_phone_number(viewer_play_data->addr_list.addr_info[0].address)) {
- elm_object_item_del(viewer_play_data->toolbar_item[2]);
- viewer_play_data->toolbar_item[2] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
- elm_object_item_part_content_set(viewer_play_data->toolbar_item[2], "object", addcontact_button);
- } else if (msg_common_is_valid_email_addr(viewer_play_data->addr_list.addr_info[0].address)) {
- elm_object_item_del(viewer_play_data->toolbar_item[1]);
- viewer_play_data->toolbar_item[1] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
- elm_object_item_part_content_set(viewer_play_data->toolbar_item[1], "object", addcontact_button);
+ /* change control bar button */
+ if (viewer_play_data->title_optionheader_opened) {
+ if (msg_ui_viewer_check_address_is_blocked(viewer_play_data, viewer_play_data->addr_list.addr_info[0].address, &filter_id)) {
+ block_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_TITLE_ICON_UNBLOCK, NULL);
+ evas_object_smart_callback_add(block_button, "clicked", msg_ui_viewer_toolbar_unblock_address_cb, (void *)viewer_play_data);
+ } else {
+ block_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_TITLE_ICON_BLOCK, NULL);
+ evas_object_smart_callback_add(block_button, "clicked", msg_ui_viewer_toolbar_block_address_cb, (void *)viewer_play_data);
}
- } else {
- Evas_Object *addcontact_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_TITLE_ICON_ADD_TO_CONTACT, NULL);
- evas_object_smart_callback_add(addcontact_button, "clicked", msg_ui_viewer_toolbar_add_to_contact_cb, (void *)viewer_play_data);
- if (msg_common_is_valid_phone_number(viewer_play_data->addr_list.addr_info[0].address)) {
- elm_object_item_del(viewer_play_data->toolbar_item[2]);
- viewer_play_data->toolbar_item[2] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
- elm_object_item_part_content_set(viewer_play_data->toolbar_item[2], "object", addcontact_button);
- } else if (msg_common_is_valid_email_addr(viewer_play_data->addr_list.addr_info[0].address)) {
- elm_object_item_del(viewer_play_data->toolbar_item[1]);
- viewer_play_data->toolbar_item[1] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
- elm_object_item_part_content_set(viewer_play_data->toolbar_item[1], "object", addcontact_button);
+ if (viewer_play_data->addr_list.addr_info[0].contact_id > 0) {
+ contact_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_CONTROLBAR_ICON_VIEW_CONTACT, NULL);
+ evas_object_smart_callback_add(contact_button, "clicked", msg_ui_viewer_toolbar_view_contact_cb, (void *)viewer_play_data);
+
+ if (msg_common_is_valid_phone_number(viewer_play_data->addr_list.addr_info[0].address)) {
+ elm_object_item_del(viewer_play_data->toolbar_item[3]);
+ elm_object_item_del(viewer_play_data->toolbar_item[2]);
+ viewer_play_data->toolbar_item[2] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[2], "object", contact_button);
+ viewer_play_data->toolbar_item[3] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[3], "object", block_button);
+ } else if (msg_common_is_valid_email_addr(viewer_play_data->addr_list.addr_info[0].address)) {
+ elm_object_item_del(viewer_play_data->toolbar_item[1]);
+ viewer_play_data->toolbar_item[1] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[1], "object", contact_button);
+ }
+ } else {
+ contact_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_TITLE_ICON_ADD_TO_CONTACT, NULL);
+ evas_object_smart_callback_add(contact_button, "clicked", msg_ui_viewer_toolbar_add_to_contact_cb, (void *)viewer_play_data);
+
+ if (msg_common_is_valid_phone_number(viewer_play_data->addr_list.addr_info[0].address)) {
+ elm_object_item_del(viewer_play_data->toolbar_item[3]);
+ elm_object_item_del(viewer_play_data->toolbar_item[2]);
+ viewer_play_data->toolbar_item[2] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[2], "object", contact_button);
+ viewer_play_data->toolbar_item[3] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[3], "object", block_button);
+ } else if (msg_common_is_valid_email_addr(viewer_play_data->addr_list.addr_info[0].address)) {
+ elm_object_item_del(viewer_play_data->toolbar_item[1]);
+ viewer_play_data->toolbar_item[1] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[1], "object", contact_button);
+ }
}
}
- }
- /* change title button */
- if (viewer_play_data->addr_list.addr_cnt == 1) {
- if (viewer_play_data->addr_list.addr_info[0].name[0] != '\0')
- elm_object_text_set(viewer_play_data->title_button, viewer_play_data->addr_list.addr_info[0].name);
- else
- elm_object_text_set(viewer_play_data->title_button, viewer_play_data->addr_list.addr_info[0].address);
- } else if (viewer_play_data->addr_list.addr_cnt > 1) {
- char title_text[DEF_BUF_LEN+1] = {0,};
+ /* change title button */
+ if (viewer_play_data->addr_list.addr_cnt == 1) {
+ if (viewer_play_data->addr_list.addr_info[0].name[0] != '\0')
+ elm_object_text_set(viewer_play_data->title_button, viewer_play_data->addr_list.addr_info[0].name);
+ else
+ elm_object_text_set(viewer_play_data->title_button, viewer_play_data->addr_list.addr_info[0].address);
+ } else if (viewer_play_data->addr_list.addr_cnt > 1) {
+ char title_text[DEF_BUF_LEN+1] = {0,};
- if (viewer_play_data->addr_list.addr_info[0].name[0] != '\0')
- snprintf(title_text, sizeof(title_text), "%s +%d", viewer_play_data->addr_list.addr_info[0].name, viewer_play_data->addr_list.addr_cnt-1);
- else
- snprintf(title_text, sizeof(title_text), "%s +%d", viewer_play_data->addr_list.addr_info[0].address, viewer_play_data->addr_list.addr_cnt-1);
+ if (viewer_play_data->addr_list.addr_info[0].name[0] != '\0')
+ snprintf(title_text, sizeof(title_text), "%s +%d", viewer_play_data->addr_list.addr_info[0].name, viewer_play_data->addr_list.addr_cnt-1);
+ else
+ snprintf(title_text, sizeof(title_text), "%s +%d", viewer_play_data->addr_list.addr_info[0].address, viewer_play_data->addr_list.addr_cnt-1);
- elm_object_text_set(viewer_play_data->title_button, title_text);
- } else {
- elm_object_text_set(viewer_play_data->title_button, dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+ elm_object_text_set(viewer_play_data->title_button, title_text);
+ } else {
+ elm_object_text_set(viewer_play_data->title_button, dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+ }
+ } else { //if (option_type == MSG_VIEWER_OPTION_BLOCK)
+ int filter_id = 0;
+ Evas_Object *block_button = NULL;
+
+ if (viewer_play_data->addr_list.addr_cnt == 1) {
+ if (msg_ui_viewer_check_address_is_blocked(viewer_play_data, viewer_play_data->addr_list.addr_info[0].address, &filter_id)) {
+ block_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_TITLE_ICON_UNBLOCK, NULL);
+ evas_object_smart_callback_add(block_button, "clicked", msg_ui_viewer_toolbar_unblock_address_cb, (void *)viewer_play_data);
+ } else {
+ block_button = msg_ui_viewer_create_title_toolbar_btn(viewer_play_data->title_toolbar, MSG_TITLE_ICON_BLOCK, NULL);
+ evas_object_smart_callback_add(block_button, "clicked", msg_ui_viewer_toolbar_block_address_cb, (void *)viewer_play_data);
+ }
+
+ if (msg_common_is_valid_phone_number(viewer_play_data->addr_list.addr_info[0].address)) {
+ elm_object_item_del(viewer_play_data->toolbar_item[3]);
+ viewer_play_data->toolbar_item[3] = elm_toolbar_item_append(viewer_play_data->title_toolbar, NULL, NULL, NULL, (void *)viewer_play_data);
+ elm_object_item_part_content_set(viewer_play_data->toolbar_item[3], "object", block_button);
+ }
+ }
}
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- if (viewer_play_data->popup_mode == VIEWER_SAVE_MODE_POPUP)
- msg_ui_viewer_update_player_state_after_save(data);
-
if (viewer_play_data->popup) {
evas_object_del(viewer_play_data->popup);
viewer_play_data->popup = NULL;
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
- if (viewer_play_data->popup_mode == VIEWER_SAVE_MODE_POPUP) {
- msg_ui_viewer_update_player_state_after_save(data);
- } else if (viewer_play_data->popup_mode == VIEWER_DELETE_MSG_MODE_POPUP) {
+ if (viewer_play_data->popup_mode == VIEWER_DELETE_MSG_MODE_POPUP) {
//destroy ug
if (viewer_play_data->viewer_main) {
MSG_VIEWER_MAIN_DATA_S *viewer_main_data = (MSG_VIEWER_MAIN_DATA_S *)viewer_play_data->viewer_main;
evas_object_show(genlist);
elm_box_pack_end(box2, genlist);
- evas_object_size_hint_min_set(box2, 0, VIEWER_ATTACH_GL_ITEM_HEIGHT * (attach_count + 1));
+ evas_object_size_hint_min_set(box2, 0, VIEWER_ATTACH_GL_ITEM_HEIGHT * (attach_count + 1) * elm_scale_get());
viewer_play_data->hp_sa_class.item_style = "dialogue/1text.1icon";
viewer_play_data->hp_sa_class.func.text_get = __msg_ui_viewer_help_page_gl_text_get;
if (attach_count > 0) {
int attach_index = 0;
- //make 'Save all' item
- MSG_VIEWER_ATTACH_MEDIA_INFO_S *pItem = (MSG_VIEWER_ATTACH_MEDIA_INFO_S*)calloc(1, sizeof(MSG_VIEWER_ATTACH_MEDIA_INFO_S));
- memset(pItem, 0x00, sizeof(MSG_VIEWER_ATTACH_MEDIA_INFO_S));
- strncpy(pItem->pfile_name, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL"), strlen(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL")));
- pItem->isSaveAll = TRUE;
- pItem->viewer_play_data = viewer_play_data;
-
- Elm_Object_Item *item = NULL;
- item = elm_genlist_item_append(genlist, &(viewer_play_data->hp_sa_class), pItem, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_help_page_gl_sel, NULL);
-
- elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ if (attach_count > 1) {
+ //make 'Save all' item
+ MSG_VIEWER_ATTACH_MEDIA_INFO_S *pItem = (MSG_VIEWER_ATTACH_MEDIA_INFO_S*)calloc(1, sizeof(MSG_VIEWER_ATTACH_MEDIA_INFO_S));
+ memset(pItem, 0x00, sizeof(MSG_VIEWER_ATTACH_MEDIA_INFO_S));
+ strncpy(pItem->pfile_name, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL"), strlen(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_SAVE_ALL")));
+ pItem->isSaveAll = TRUE;
+ pItem->viewer_play_data = viewer_play_data;
+
+ Elm_Object_Item *item = NULL;
+ item = elm_genlist_item_append(genlist, &(viewer_play_data->hp_sa_class), pItem, NULL, ELM_GENLIST_ITEM_NONE, __msg_ui_viewer_help_page_gl_sel, NULL);
+ elm_genlist_item_select_mode_set(item, ELM_OBJECT_SELECT_MODE_DISPLAY_ONLY);
+ }
for (attach_index = 0; attach_index < attach_count; attach_index++) {
MSG_VIEWER_ATTACH_MEDIA_INFO_S *pAttach_info = eina_list_nth(viewer_play_data->attach_list, attach_index);
if (strcmp(part, "elm.text") == 0) {
if (pAttach_info) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "pAttach_info->pfile_name = %s", pAttach_info->pfile_name);
- return strdup(pAttach_info->pfile_name);
+
+ Eina_Strbuf *text_buf = eina_strbuf_new();
+ eina_strbuf_append(text_buf, pAttach_info->pfile_name);
+ eina_strbuf_append(text_buf, VIEWER_DETAILS_TEXT_SPACE);
+ eina_strbuf_append(text_buf, VIEWER_DETAILS_TEXT_LEFT_BRACE);
+
+ //get and convert size
+ char size[DEF_BUF_LEN] = {0,};
+ long long sizeKB = 0;
+ long long sizeB = 0;
+
+ if (pAttach_info->pfile_size < VIEWER_DETAILS_TEXT_MSG_SIZE_KB) {
+ snprintf(size, sizeof(size), "1 %s", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+ } else {
+ sizeKB = (long long)(pAttach_info->pfile_size)/VIEWER_DETAILS_TEXT_MSG_SIZE_KB;
+ sizeB = (long long)(pAttach_info->pfile_size)%VIEWER_DETAILS_TEXT_MSG_SIZE_KB;
+
+ if (sizeB >= (VIEWER_DETAILS_TEXT_MSG_SIZE_KB/2))
+ sizeKB++;
+
+ snprintf(size, sizeof(size), "%lld %s", sizeKB, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MSGSIZE_KB"));
+ }
+
+ eina_strbuf_append(text_buf, size);
+ eina_strbuf_append(text_buf, VIEWER_DETAILS_TEXT_RIGHT_BRACE);
+
+ char *return_text = strdup(eina_strbuf_string_get(text_buf));
+ eina_strbuf_free(text_buf);
+
+ return return_text;
}
}
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, event_info == NULL);
MSG_VIEWER_ATTACH_MEDIA_INFO_S *pAttach_info = (MSG_VIEWER_ATTACH_MEDIA_INFO_S *)data;
Elm_Object_Item *pselected_item = (Elm_Object_Item *)event_info;
+ service_h svc_handle = NULL;
+ service_error_e err = MSG_SUCCESS;
elm_genlist_item_selected_set(pselected_item, FALSE);
return;
}
- char mimetype[MSG_BUFFER_SIZE_64 + 1] = {0,};
- char defapp[MSG_BUFFER_SIZE_64 + 1] = {0,};
-
- bundle *b = bundle_create();
- appsvc_set_operation(b, APPSVC_OPERATION_VIEW);
- appsvc_set_uri(b, pAttach_info->pfile_path);
-
- /*get mime type*/
- if (aul_get_mime_from_file(pAttach_info->pfile_path, mimetype, sizeof(mimetype)) < 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "mime type failed");
-
- if (appsvc_run_service(b, 0, NULL, NULL) < 0)
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "appsvc_run_service is failed");
-
- bundle_free(b);
+ if (service_create(&svc_handle) < 0 || svc_handle == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_create() is failed !!");
return;
- } else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "mime type [%s]", mimetype);
}
- /*get default app*/
- if (aul_get_defapp_from_mime(mimetype, defapp, sizeof(defapp)) < 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "default app failed");
+ service_set_operation(svc_handle, SERVICE_OPERATION_VIEW);
+ service_set_uri(svc_handle, pAttach_info->pfile_path);
- if (appsvc_run_service(b, 0, NULL, NULL) < 0)
- MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "appsvc_run_service is failed");
-
- bundle_free(b);
- return;
+ err = service_send_launch_request(svc_handle, NULL, NULL);
+ 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)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
} else {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "default app [%s]", defapp);
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "service_send_launch_request is failed");
}
- /*launch application*/
- if (strcmp(defapp, VIDEO_PLAYER_PKG_NAME) == 0) {
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Video content");
- bundle_add(b, MSG_BUNDLE_KEY_LAUNCH_APPLICATION, MESSAGE_PKGNAME);
- }
-
- if (appsvc_run_service(b, 0, NULL, NULL) < 0)
- MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "appsvc_run_service is failed");
-
- bundle_free(b);
+ service_destroy(svc_handle);
return;
}
ecore_timer_del(viewer_play_data->play_controller_timer);
viewer_play_data->play_controller_timer = NULL;
}
+
viewer_play_data->play_controller_timer = ecore_timer_add(VIEWER_PLAY_CONTROLLER_LIFETIME, msg_ui_viewer_play_controller_timer_cb, (void *)viewer_play_data);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
MSG_UI_RET_IF(MSG_UI_LEVEL_ERR, data == NULL);
MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ MSG_UI_RET_IF(MSG_UI_LEVEL_DEBUG, viewer_play_data->SmilHandle == NULL);
+
Evas_Object *progressbar = NULL;
MSG_VIEWER_LAUNCH_VIEW_MODE_E launchmode = MSG_VIEWER_INVALID_MODE;
MSG_BOOL bExcludeHp = FALSE;
viewer_play_data->play_controller_progressbar_timer = ecore_timer_add(VIEWER_PLAY_CONTROLLER_PROGRESSBAR_TIME, msg_ui_viewer_play_controller_progressbar_timer_cb, viewer_play_data);
+ if (msg_smil_get_current_slide_status(viewer_play_data->SmilHandle) == PLAYER_STATUS_PAUSED) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "Pause progress timer because current slide status is PAUSED");
+ ecore_timer_freeze(viewer_play_data->play_controller_progressbar_timer);
+ }
+
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
}
if (is_text_copied)
- status_message_post(dgettext("sys_string", "IDS_COM_POP_COPIED_P"));
+ status_message_post(dgettext(MESSAGE_PKGNAME, "IDS_MSGF_POP_COPIED_TO_CLIPBOARD"));
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
}
evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, EVAS_HINT_EXPAND);
evas_object_size_hint_align_set(popup, EVAS_HINT_FILL, EVAS_HINT_FILL);
elm_object_style_set(popup, "menustyle");
- elm_object_part_text_set(popup, "title,text", (char *)"Message details");
+ elm_object_part_text_set(popup, "title,text", dgettext(MESSAGE_PKGNAME, "IDS_MSGF_HEADER_MESSAGE_DETAILS"));
/* create layout */
layout = elm_layout_add(viewer_play_data->main_window);
viewer_play_data->popup = popup;
elm_object_content_set(popup, layout);
+ msg_ui_viewer_disconnect_handler(viewer_play_data);
+
evas_object_show(popup);
MSG_UI_LEAVE(MSG_UI_LEVEL_DEBUG);
int contact_id = 0;
msg_struct_list_s addrList;
- /**********************
+ /*********************
* [ For sent/outbox msg]
* 1. Type:
* 2. To:
* 3. Sent time:
* 4. Subject:
* 5. Message size:
- * 5. Delivery report: //TBD : FW for multistatus
- * 6. Read report: //TBD : FW for multistatus
+ * 5. Delivery report:
+ * 6. Read report:
*
* [For inbox msg]
* 1. Type:
* 2. From:
- * 3. To: //TBD : FW for multistatus
+ * 3. To: //TBD : FW for multi recipient
* 4. Received time:
* 5. Subject:
* 6. Message size:
eina_strbuf_append(text_data, "<font_size=32>");
/*message type*/
- eina_strbuf_append(text_data, (char *)"Type : "); //TODO : change to string resource
+ eina_strbuf_append(text_data, dgettext("sys_string", "IDS_COM_BODY_DETAILS_TYPE"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
/*message type value - current view details is supporting only multimedia message */
int msg_type;
if (msg_type == MSG_TYPE_MMS || msg_type == MSG_TYPE_MMS_NOTI)
eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MULTIMEDIA_MESSAGE"));
else if (msg_type == MSG_TYPE_SMS)
- eina_strbuf_append(text_data, (char *)"Text message"); //TODO : change to string resource
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_OPT_TEXT_MESSAGE"));
else
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "invalid msg type!");
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
/*get time format setting */
int timeformat = msg_common_get_timeformat();
if (folder_id == MSG_SENTBOX_ID || folder_id == MSG_OUTBOX_ID) {
int index = 0;
- eina_strbuf_append(text_data, (char *)"To : " ); //TODO : change to string resource
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_OPT_CHANGE_RECIPIENTS_TO"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
memset(&addrList, 0x00, sizeof(msg_struct_list_s));
msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "address count = %d", addrList.nCount);
- for (index = 0; index<addrList.nCount; index++) {
+ for (index = 0; index < addrList.nCount; index++) {
bzero(name, sizeof(name));
bzero(addr_value, sizeof(addr_value));
msg_release_list_struct(&addrList);
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
+
+ /*sent*/
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MMSNOTIMSGSTATUSSENT"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
- /*time*/
- eina_strbuf_append(text_data, (char *)"Sent : "); //TODO : change to string resource
int dptime = 0;
msg_get_int_value(msgInfo, MSG_MESSAGE_DISPLAY_TIME_INT, &dptime);
eina_strbuf_append(text_data, str_time);
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
} else if (folder_id == MSG_INBOX_ID) {
int index = 0;
/*From address*/
- eina_strbuf_append(text_data, (char *)"From : " ); //TODO : change to string resource
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_FROM"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
memset(&addrList, 0x00, sizeof(msg_struct_list_s));
msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
//TODO : HOW to get??
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
+
+ /*received*/
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_RECEIVED"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
- /*time*/
- eina_strbuf_append(text_data, (char *)"Received : "); //TODO : change to string resource
int dptime = 0;
msg_get_int_value(msgInfo, MSG_MESSAGE_DISPLAY_TIME_INT, &dptime);
eina_strbuf_append(text_data, str_time);
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
}
/*subject*/
- eina_strbuf_append(text_data, (char *)"Subject : "); //TODO : change to string resource
+ eina_strbuf_append(text_data, dgettext("sys_string", "IDS_COM_BODY_SUBJECT"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
char strSubject[MAX_SUBJECT_LEN] = {0};
msg_get_str_value(msgInfo, MSG_MESSAGE_SUBJECT_STR, strSubject, MAX_SUBJECT_LEN);
if (strSubject[0] != '\0')
eina_strbuf_append(text_data, strSubject);
else
- eina_strbuf_append(text_data, (char *)"Untitled"); //TODO : change to string resource
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_UNTITLED_M_MMS"));
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
/*msg size - make sure what is the mms size, pdu size? or media total size??*/
- eina_strbuf_append(text_data, (char *)"Size : "); //TODO : change to string resource
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_MESSAGE_SIZE"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
int mediaindex = 0;
long long totalSize = 0;
eina_strbuf_append(text_data, count_str);
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
/*report status*/
if (folder_id == MSG_SENTBOX_ID || folder_id == MSG_OUTBOX_ID) {
- msg_struct_t msg_struct = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
- err = msg_get_mms_send_opt(viewer_play_data->msgHandle, msg_struct);
+ bool setting_delivery_flag = false;
+ bool setting_read_flag = false;
+
+ msg_struct_t send_opt = msg_create_struct(MSG_STRUCT_SETTING_MMS_SEND_OPT);
+ err = msg_get_mms_send_opt(viewer_play_data->msgHandle, send_opt);
if (err != MSG_SUCCESS) {
MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_get_mms_send_opt is failed");
eina_strbuf_free(text_data);
return;
}
- /*delivery report*/
- eina_strbuf_append(text_data, (char *)"Delivery report : "); //TODO : change to string resource
- /*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
-
- bool bValue = false;
- err = msg_get_bool_value(msg_struct, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, &bValue);
- if (!bValue) {
- eina_strbuf_append(text_data, (char *)"Not required"); //TODO : change to string resource
- } else {
- //TODO : How to Get Multistatus delivery report?
- memset(&addrList, 0x00, sizeof(msg_struct_list_s));
- msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
- err = msg_get_address_list(viewer_play_data->msgHandle, thread_id, &addrList);
-
- bzero(addr_value, sizeof(addr_value));
- msg_get_str_value(addrList.msg_struct_info[0], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, addr_value, MAX_ADDRESS_VAL_LEN);
- msg_release_list_struct(&addrList);
+ msg_get_bool_value(send_opt, MSG_MMS_SENDOPT_DELIVERY_REPORT_BOOL, &setting_delivery_flag);
+ msg_get_bool_value(send_opt, MSG_MMS_SENDOPT_READ_REPLY_BOOL, &setting_read_flag);
- // now 1st address delivery status can be get only.
- eina_strbuf_append(text_data, addr_value);
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_DASH);
+ msg_release_struct(&send_opt);
- msg_struct_t report_status = msg_create_struct(MSG_STRUCT_REPORT_STATUS_INFO);
- int msgId = 0;
- msg_get_int_value(msgInfo, MSG_MESSAGE_ID_INT, &msgId);
- msg_get_report_status(viewer_play_data->msgHandle, msgId, report_status);
-
- int deliveryStatus = 0;
- msg_get_int_value(report_status, MSG_REPORT_STATUS_DELIVERY_STATUS_INT, &deliveryStatus);
+ MSG_VIEWER_REPORT_LIST_S *viewer_report_list = NULL;
+ viewer_report_list = (MSG_VIEWER_REPORT_LIST_S *)calloc(viewer_play_data->addr_list.addr_cnt, sizeof(MSG_VIEWER_REPORT_LIST_S));
+ if (viewer_report_list == NULL) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "report_list is null");
+ eina_strbuf_free(text_data);
+ return;
+ }
- if (deliveryStatus == MSG_DELIVERY_REPORT_NONE) {
- eina_strbuf_append(text_data, (char *)"Requested"); //TODO : change to string resource
- } else if (deliveryStatus == MSG_DELIVERY_REPORT_EXPIRED) {
- eina_strbuf_append(text_data, (char *)"Expired"); //TODO : change to string resource
- } else if (deliveryStatus == MSG_DELIVERY_REPORT_SUCCESS) {
- eina_strbuf_append(text_data, (char *)"Received "); //TODO : change to string resource
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LEFT_BRACE);
+ /* initialize report list */
+ int i = 0;
+ for (i = 0; i < viewer_play_data->addr_list.addr_cnt; i++) {
+ strncpy(viewer_report_list[i].address, viewer_play_data->addr_list.addr_info[i].address, MAX_ADDRESS_VAL_LEN);
+ viewer_report_list[i].delivery.status = MSG_DELIVERY_REPORT_NONE;
+ viewer_report_list[i].read.status = MSG_READ_REPORT_NONE;
+ }
- int dsTime = 0;
- msg_get_int_value(report_status, MSG_REPORT_STATUS_DELIVERY_TIME_INT, &dsTime);
- char *str_time = NULL;
- if (timeformat == MSG_TIME_FORMAT_24H)
- str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "HH:mm, d MMM", &dsTime);
- else
- str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "hh:mm a, d MMM", &dsTime);
- eina_strbuf_append(text_data, str_time);
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_RIGHT_BRACE);
- } else if (deliveryStatus == MSG_DELIVERY_REPORT_REJECTED) {
- eina_strbuf_append(text_data, (char *)"Rejected "); //TODO : change to string resource
+ /* get fw report list */
+ msg_struct_list_s fw_report_list = {0,};
+
+ msg_get_report_status(viewer_play_data->msgHandle, viewer_play_data->msgID, &fw_report_list);
+
+ if (fw_report_list.nCount != 0) {
+ msg_struct_t report;
+ msg_report_type_t type;
+ int status;
+ time_t time;
+ char address[MAX_ADDRESS_VAL_LEN+1];
+ int i = 0;
+ for (i = 0; i < fw_report_list.nCount; i++) {
+ bzero(address, sizeof(address));
+
+ report = fw_report_list.msg_struct_info[i];
+
+ msg_get_int_value(report, MSG_REPORT_TYPE_INT, (int *)&type);
+ msg_get_int_value(report, MSG_REPORT_STATUS_INT, (int *)&status);
+ msg_get_str_value(report, MSG_REPORT_ADDRESS_STR, address, MAX_ADDRESS_VAL_LEN);
+ msg_get_int_value(report, MSG_REPORT_TIME_INT, (int *)&time);
+
+ int j = 0;
+ /* fill values for viewer report list */
+ for (j=0; j < viewer_play_data->addr_list.addr_cnt; j++) {
+ if (!strcmp(viewer_report_list[j].address, address)) {
+ if (type == MSG_REPORT_TYPE_DELIVERY) {
+ viewer_report_list[j].delivery.status = status;
+ viewer_report_list[j].delivery.time = time;
+ } else {
+ viewer_report_list[j].read.status = status;
+ viewer_report_list[j].read.time = time;
+ }
+ }
+ }
}
-
- msg_release_struct(&report_status);
}
- /*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
- /*read reportt*/
- eina_strbuf_append(text_data, (char *)"Read report : "); //TODO : change to string resource
+ msg_release_list_struct(&fw_report_list);
+
+ /*delivery report*/
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_DELIVERY_REPORT"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
/*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
- err = msg_get_bool_value(msg_struct, MSG_MMS_SENDOPT_READ_REPLY_BOOL, &bValue);
- if (!bValue) {
- eina_strbuf_append(text_data, (char *)"Not required"); //TODO : change to string resource
+ if (!setting_delivery_flag) {
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_BODY_NOT_REQUESTED"));
} else {
- //TODO : How to Get Multistatus read report?
- memset(&addrList, 0x00, sizeof(msg_struct_list_s));
- msg_get_int_value(msgInfo, MSG_MESSAGE_THREAD_ID_INT, &thread_id);
- err = msg_get_address_list(viewer_play_data->msgHandle, thread_id, &addrList);
-
- bzero(addr_value, sizeof(addr_value));
- msg_get_str_value(addrList.msg_struct_info[0], MSG_ADDRESS_INFO_ADDRESS_VALUE_STR, addr_value, MAX_ADDRESS_VAL_LEN);
-
- msg_release_list_struct(&addrList);
-
- // now 1st address delivery status can be get only.
- eina_strbuf_append(text_data, addr_value);
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_DASH);
+ int i = 0;
+ for (i = 0; i < viewer_play_data->addr_list.addr_cnt; i++) {
+ eina_strbuf_append(text_data, viewer_report_list[i].address);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_DASH);
+
+ if (viewer_report_list[i].delivery.status == MSG_DELIVERY_REPORT_NONE) {
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_REQUESTED"));
+ } else if (viewer_report_list[i].delivery.status == MSG_DELIVERY_REPORT_EXPIRED) {
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_EXPIRED"));
+ } else if (viewer_report_list[i].delivery.status == MSG_DELIVERY_REPORT_SUCCESS) {
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_RECEIVED"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_SPACE);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LEFT_BRACE);
+ char *str_time = NULL;
+ if (timeformat == MSG_TIME_FORMAT_24H)
+ str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "HH:mm, d MMM", &(viewer_report_list[i].delivery.time));
+ else
+ str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "hh:mm a, d MMM", &(viewer_report_list[i].delivery.time));
+ eina_strbuf_append(text_data, str_time);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_RIGHT_BRACE);
+ } else if (viewer_report_list[i].delivery.status == MSG_DELIVERY_REPORT_REJECTED) {
+ eina_strbuf_append(text_data, dgettext("sys_string", "IDS_COM_POP_REJECTED"));
+ } else {
+ eina_strbuf_append(text_data, dgettext("sys_string", "IDS_COM_BODY_UNKNOWN"));
+ }
- msg_struct_t report_status = msg_create_struct(MSG_STRUCT_REPORT_STATUS_INFO);
- int msgId = 0;
- msg_get_int_value(msgInfo, MSG_MESSAGE_ID_INT, &msgId);
- msg_get_report_status(viewer_play_data->msgHandle, msgId, report_status);
+ if (i != viewer_play_data->addr_list.addr_cnt-1)
+ /*line change*/
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
+ }
+ }
- int readStatus = 0;
- msg_get_int_value(report_status, MSG_REPORT_STATUS_READ_STATUS_INT, &readStatus);
+ /*line change*/
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
- if (readStatus == MSG_READ_REPORT_NONE) {
- eina_strbuf_append(text_data, (char *)"Requested "); //TODO : change to string resource
- } else if (readStatus == MSG_READ_REPORT_IS_READ) {
- eina_strbuf_append(text_data, (char *)"Read "); //TODO : change to string resource
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LEFT_BRACE);
+ /*read report*/
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_READ_REPORT"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_COLLON);
+ /*line change*/
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
- int rsTime = 0;
- msg_get_int_value(report_status, MSG_REPORT_STATUS_READ_TIME_INT, &rsTime);
+ if (!setting_read_flag) {
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGC_BODY_NOT_REQUESTED"));
+ } else {
+ int i = 0;
+ for (i = 0; i < viewer_play_data->addr_list.addr_cnt; i++) {
+ eina_strbuf_append(text_data, viewer_report_list[i].address);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_DASH);
+ if (viewer_report_list[i].read.status == MSG_READ_REPORT_NONE) {
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_REQUESTED"));
+ } else if (viewer_report_list[i].read.status == MSG_READ_REPORT_IS_READ) {
+ eina_strbuf_append(text_data, dgettext(MESSAGE_PKGNAME, "IDS_MSGF_BODY_READ"));
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_SPACE);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LEFT_BRACE);
+ char *str_time = NULL;
+ if (timeformat == MSG_TIME_FORMAT_24H)
+ str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "HH:mm, d MMM", &(viewer_report_list[i].read.time));
+ else
+ str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "hh:mm a, d MMM", &(viewer_report_list[i].read.time));
+ eina_strbuf_append(text_data, str_time);
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_RIGHT_BRACE);
+ } else if (viewer_report_list[i].read.status == MSG_READ_REPORT_IS_DELETED) {
+ eina_strbuf_append(text_data, dgettext("sys_string", "IDS_COM_POP_DELETED"));
+ }
- char *str_time = NULL;
- if (timeformat == MSG_TIME_FORMAT_24H)
- str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "HH:mm, d MMM", &rsTime);
- else
- str_time = msg_common_get_formatted_date(msg_common_get_default_locale(), "hh:mm a, d MMM", &rsTime);
- eina_strbuf_append(text_data, str_time);
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_RIGHT_BRACE);
- /*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
- } else if (readStatus == MSG_READ_REPORT_IS_DELETED) {
- eina_strbuf_append(text_data, (char *)"Deleted "); //TODO : change to string resource
+ if (i != viewer_play_data->addr_list.addr_cnt-1)
+ /*line change*/
+ eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_NEW_LINE);
}
-
- msg_release_struct(&report_status);
}
- /*line change*/
- eina_strbuf_append(text_data, VIEWER_DETAILS_TEXT_LINE_FEED);
- msg_release_struct(&msg_struct);
+ free(viewer_report_list);
}
/*display total text*/
evas_object_del(viewer_play_data->popup);
viewer_play_data->popup = NULL;
}
+
+ /*connect mouse down signal*/
+ if (!viewer_play_data->mouse_down_event_handler)
+ viewer_play_data->mouse_down_event_handler = ecore_event_handler_add(ECORE_EVENT_MOUSE_BUTTON_DOWN, msg_ui_viewer_mouse_down_cb, (void *)viewer_play_data);
+
+
+ /* play viewer again if previous status was PLAY */
+ if (viewer_play_data->auto_resume_state && viewer_play_data->status == MSG_VIEWER_PAUSE && viewer_play_data->previous_status == MSG_VIEWER_PLAY) {
+ if (!msg_ui_viewer_command_play_pause(viewer_play_data, MSG_VIEWER_ACTION_AUTO_PLAY)) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_ERR, "msg_ui_viewer_command_play_pause is failed");
+ return;
+ }
+ }
+}
+
+MSG_BOOL msg_ui_viewer_check_address_is_blocked(void *data, char *address, int *filter_id)
+{
+ MSG_UI_ENTER(MSG_UI_LEVEL_DEBUG);
+ MSG_PLAY_DATA_S *viewer_play_data = (MSG_PLAY_DATA_S *)data;
+ msg_error_t err = MSG_SUCCESS;
+ msg_struct_list_s filter_list;
+ int i = 0;
+ int total_cnt = 0;
+ char filter_val[MAX_FILTER_VALUE_LEN] = {0,};
+
+ err = msg_get_filter_list(viewer_play_data->msgHandle, &filter_list);
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_get_filter_list() fail - err [%d]", err);
+ return FALSE;
+ }
+
+ total_cnt = filter_list.nCount;
+
+ for (i = 0; i < total_cnt; i++) {
+ /* get number */
+ bzero(filter_val, sizeof(filter_val));
+ err = msg_get_str_value(filter_list.msg_struct_info[i], MSG_FILTER_VALUE_STR, filter_val, sizeof(filter_val));
+
+ if (err != MSG_SUCCESS) {
+ MSG_UI_DEBUG(MSG_UI_LEVEL_DEBUG, "msg_get_str_value() fail - err [%d]", err);
+ msg_release_list_struct(&filter_list);
+ return FALSE;
+ }
+
+ if (!strcmp(address, filter_val)) {
+ int filter_type;
+ msg_get_int_value(filter_list.msg_struct_info[i], MSG_FILTER_TYPE_INT, &filter_type);
+ if (filter_type == MSG_FILTER_BY_ADDRESS_SAME) {
+ /* get filter id if address is exist in block list */
+ msg_get_int_value(filter_list.msg_struct_info[i], MSG_FILTER_ID_INT, filter_id);
+ msg_release_list_struct(&filter_list);
+ return TRUE;
+ }
+ }
+ }
+
+ msg_release_list_struct(&filter_list);
+ return FALSE;
}
+
#define MAIN_W 720
-#define BODY_TOP_PADDING_MIN_H 34
+#define BODY_PADDING_MIN_H 34
+#define BODY_PADDING_MID_MIN_H 16
#define SUBJECT_MIN_H 48
+#define AUDIO_PANEL_H 80
+#define PAGE_INDEX_MIN_W 96
+#define DETAIL_PADDING_V_MIN 20
+#define DETAIL_PADDING_H_MIN 16
+
+//colors
#define COLOR_SUBJECT_BG 216 226 232 255
+#define COLOR_SUBJECT_INDEX 29 100 149 255 //winset guide font 'index list'
#define COLOR_DETAIL_INFO_TEXT 108 168 199 255
#define COLOR_PROGRESS_START_TEXT 255 255 255 255
#define COLOR_PROGRESS_END_TEXT 142 142 142 255
//play controllbar attributes
#define PLAY_CTRBAR_MIN_H 218
-#define PLAY_CTRBAR_TOP_PADDING_MIN_H 48
+#define PLAY_CTRBAR_TOP_PADDING_MIN_H 51
#define PLAY_CTRBAR_PROGRESSBAR_PADDING_MIN_H 28
-#define PLAY_CTRBAR_MIDDLE_PADDING_MIN_H 54
-#define PLAY_CTRBAR_BOTTOM_PADDING_MIN_H 32
-#define PLAY_CTRBAR_PROGRESS_BAR_W 482
-#define PLAY_CTRBAR_PROGRESS_TEXT_START_X 20
-#define PLAY_CTRBAR_PROGRESS_TEXT_W 79
-#define PLAY_CTRBAR_PROGRESS_PADDING_W 22
-#define PLAY_CTRBAR_BUTTON_W 56
-#define PLAY_CTRBAR_BUTTON_PADDING_W 88
-#define PLAY_CTRBAR_BUTTON_VOLUME_START_X 44
-#define PLAY_CTRBAR_BUTTON_PREV_START_X (PLAY_CTRBAR_BUTTON_VOLUME_START_X+PLAY_CTRBAR_BUTTON_W+PLAY_CTRBAR_BUTTON_PADDING_W)
-#define PLAY_CTRBAR_BUTTON_PLAY_START_X (PLAY_CTRBAR_BUTTON_PREV_START_X+PLAY_CTRBAR_BUTTON_W+PLAY_CTRBAR_BUTTON_PADDING_W)
-#define PLAY_CTRBAR_BUTTON_NEXT_START_X (PLAY_CTRBAR_BUTTON_PLAY_START_X+PLAY_CTRBAR_BUTTON_W+PLAY_CTRBAR_BUTTON_PADDING_W)
+#define PLAY_CTRBAR_MIDDLE_PADDING_MIN_H 42
+#define PLAY_CTRBAR_BOTTOM_PADDING_MIN_H 17
+
+#define PLAY_CTRBAR_PROGRESS_BAR_W 486
+#define PLAY_CTRBAR_PROGRESS_PADDING_W 20
+
+#define PLAY_CTRBAR_VOL_BUTTON_W 104
+#define PLAY_CTRBAR_VOL_BUTTON_PADDING_W 30
-//msg details popup
-#define DETAIL_PADDING_V_MIN 30
-#define DETAIL_PADDING_H_MIN 20
+#define PLAY_CTRBAR_NAVI_BUTTON_W 122
+#define PLAY_CTRBAR_NAVI_BUTTON_PADDING_W 22
+
+#define PLAY_CTRBAR_BUTTON_VOLUME_START_X 20
+#define PLAY_CTRBAR_BUTTON_PREV_START_X (PLAY_CTRBAR_BUTTON_VOLUME_START_X+PLAY_CTRBAR_VOL_BUTTON_W+PLAY_CTRBAR_VOL_BUTTON_PADDING_W)
+#define PLAY_CTRBAR_BUTTON_PLAY_START_X (PLAY_CTRBAR_BUTTON_PREV_START_X+PLAY_CTRBAR_NAVI_BUTTON_W+PLAY_CTRBAR_NAVI_BUTTON_PADDING_W)
+#define PLAY_CTRBAR_BUTTON_NEXT_START_X (PLAY_CTRBAR_BUTTON_PLAY_START_X+PLAY_CTRBAR_NAVI_BUTTON_W+PLAY_CTRBAR_NAVI_BUTTON_PADDING_W)
//edc images
#define PLAYER_BG "M01_player_bg.png"
-#define VOL_BTN "M01_play_btn_volume.png"
-#define VOL_BTN_PRESS "M01_play_btn_volume_press.png"
+#define VOL_BTN "M01_controller_icon_volume.png"
+#define VOL_BTN_PRESS "M01_controller_icon_volume_press.png"
#define PREV_BTN "M01_play_btn_previous.png"
#define PREV_BTN_PRESS "M01_play_btn_previous_press.png"
-#define PLAY_BTN "M01_play_btn_play.png"
-#define PLAY_BTN_PRESS "M01_play_btn_play_press.png"
+#define PREV_BTN_DIM "M01_Play_btn_previous_dim.png"
+#define PLAY_BTN "M01_Play_btn__play.png"
+#define PLAY_BTN_PRESS "M01_Play_btn__play_press.png"
#define PAUSE_BTN "M01_play_btn_pause.png"
#define PAUSE_BTN_PRESS "M01_play_btn_pause_press.png"
#define NEXT_BTN "M01_play_btn_next.png"
#define NEXT_BTN_PRESS "M01_play_btn_next_press.png"
+#define NEXT_BTN_DIM "M01_Play_btn_next_dim.png"
#define PROGRESS_BAR "M01_player_progress_bar.png"
#define PROGRESS_BG "M01_player_progress_bg.png"
+#define LOCK_ICON "M01_icon_locked.png"
+#define SUBJECT_INDEX_BG "00_index list_bg.png"
+
+#define TITLE_BUTTON_ARROW "optionheader_arrow.png"
+#define TITLE_BUTTON_LIST_ARROW "M01_popup_bubble_tail_top.png"
+#define TITLE_LIST_BG "M01_popup_bubble_bg.png"
+
+#define AUDIO_ICON "myfile_icon_music.png"
+
collections {
group {
name: "play_controller";
image: VOL_BTN_PRESS COMP;
image: PREV_BTN COMP;
image: PREV_BTN_PRESS COMP;
+ image: PREV_BTN_DIM COMP;
image: PLAY_BTN COMP;
image: PLAY_BTN_PRESS COMP;
image: PAUSE_BTN COMP;
image: PAUSE_BTN_PRESS COMP;
image: NEXT_BTN COMP;
image: NEXT_BTN_PRESS COMP;
+ image: NEXT_BTN_DIM COMP;
}
parts {
part {
min: 0 PLAY_CTRBAR_PROGRESSBAR_PADDING_MIN_H;
align: 0.5 0.5;
fixed: 1 1;
- rel1{to:"rect/padding/progressbar"; relative:0.0 0.0; offset: PLAY_CTRBAR_PROGRESS_TEXT_START_X 0;}
- rel2{to:"progressbar"; relative:0.0 1.0; offset: -PLAY_CTRBAR_PROGRESS_PADDING_W 0;}
+ rel1{to:"rect/padding/progressbar"; relative:0.0 0.0;}
+ rel2{to:"progressbar"; relative:0.0 1.0;}
color: COLOR_PROGRESS_START_TEXT;
text {
font: SLP_FONT_REGULAR;
min: 0 PLAY_CTRBAR_PROGRESSBAR_PADDING_MIN_H;
align: 0.5 0.5;
fixed: 1 1;
- rel1{to:"progressbar"; relative:1.0 0.0; offset: PLAY_CTRBAR_PROGRESS_PADDING_W 0;}
- rel2{to:"rect/padding/progressbar"; relative:1.0 1.0; offset: -PLAY_CTRBAR_PROGRESS_PADDING_W 0;}
+ rel1{to:"progressbar"; relative:1.0 0.0;}
+ rel2{to:"rect/padding/progressbar"; relative:1.0 1.0;}
color: COLOR_PROGRESS_END_TEXT;
text {
font: SLP_FONT_REGULAR;
mouse_events: 1;
description { state: "default" 0.0;
visible: 1;
- min: 56 56;
+ min: 104 74;
+ max: 104 74;
fixed: 1 1;
align: 0.5 0.5;
- rel1 { relative: PLAY_CTRBAR_BUTTON_VOLUME_START_X/MAIN_W 0.0; to, "rect/padding/buttons";}
- rel2 { relative: PLAY_CTRBAR_BUTTON_VOLUME_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_BUTTON_W 0;}
+ rel1 { relative: PLAY_CTRBAR_BUTTON_VOLUME_START_X/MAIN_W 0.0; to, "rect/padding/buttons"; offset: 0 3;}
+ rel2 { relative: PLAY_CTRBAR_BUTTON_VOLUME_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_VOL_BUTTON_W -3;}
image { normal: VOL_BTN; }
}
description {
state: "default" 0.0;
visible: 1;
- min: 1 56;
+ min: 1 70;
align: 0.0 0.0;
fixed: 1 1;
- rel1{to:"volume"; relative:1.0 0.0; offset: 35 0;}
- rel2{to:"volume"; relative:1.0 1.0; offset: 35 0;}
+ rel1{to:"volume"; relative:1.0 0.0; offset: 10 2;}
+ rel2{to:"volume"; relative:1.0 1.0; offset: 10 -2;}
color: 144 144 144 255;
}
}
mouse_events: 1;
description { state: "default" 0.0;
visible: 1;
- min: 56 56;
+ min: 122 80;
+ max: 122 80;
fixed: 1 1;
rel1 { relative: PLAY_CTRBAR_BUTTON_PREV_START_X/MAIN_W 0.0; to, "rect/padding/buttons";}
- rel2 { relative: PLAY_CTRBAR_BUTTON_PREV_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_BUTTON_W 0;}
+ rel2 { relative: PLAY_CTRBAR_BUTTON_PREV_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_NAVI_BUTTON_W 0;}
image { normal: PREV_BTN; }
}
description { state: "pressed" 0.0;
inherit: "default" 0.0;
image { normal: PREV_BTN_PRESS; }
}
+ description { state: "dimmed" 0.0;
+ inherit: "default" 0.0;
+ image { normal: PREV_BTN_DIM; }
+ }
}
part { name: "next";
type : IMAGE;
description {
state: "default" 0.0;
visible: 1;
- min: 56 56;
+ min: 122 80;
+ max: 122 80;
fixed: 1 1;
align: 0.5 0.5;
rel1 { relative: PLAY_CTRBAR_BUTTON_NEXT_START_X/MAIN_W 0.0; to, "rect/padding/buttons";}
- rel2 { relative: PLAY_CTRBAR_BUTTON_NEXT_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_BUTTON_W 0;}
+ rel2 { relative: PLAY_CTRBAR_BUTTON_NEXT_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_NAVI_BUTTON_W 0;}
image { normal: NEXT_BTN; }
}
description { state: "pressed" 0.0;
inherit: "default" 0.0;
image { normal: NEXT_BTN_PRESS; }
}
+ description { state: "dimmed" 0.0;
+ inherit: "default" 0.0;
+ image { normal: NEXT_BTN_DIM; }
+ }
}
part { name: "play_pause";
type : IMAGE;
description {
state: "default" 0.0;
visible: 1;
- min: 56 56;
+ min: 122 80;
+ max: 122 80;
fixed: 1 1;
align: 0.5 0.5;
rel1 { relative: PLAY_CTRBAR_BUTTON_PLAY_START_X/MAIN_W 0.0; to, "rect/padding/buttons";}
- rel2 { relative: PLAY_CTRBAR_BUTTON_PLAY_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_BUTTON_W 0;}
+ rel2 { relative: PLAY_CTRBAR_BUTTON_PLAY_START_X/MAIN_W 1.0; to, "rect/padding/buttons"; offset: PLAY_CTRBAR_NAVI_BUTTON_W 0;}
image { normal: PLAY_BTN; }
}
description { state: "default" 1.0;
source: "prev";
signal: "mouse,clicked,1";
script {
- emit ("prev_clicked", "");
+ new st[31];
+ new Float:vl;
+ get_state(PART:"prev", st, 30, vl)
+
+ if (!strcmp(st, "default"))
+ emit ("prev_clicked", "");
}
}
program {
source: "prev";
signal: "mouse,down,1";
script {
- set_state(PART:"prev", "pressed", 0.0);
+ new st[31];
+ new Float:vl;
+ get_state(PART:"prev", st, 30, vl)
+
+ if (!strcmp(st, "default"))
+ set_state(PART:"prev", "pressed", 0.0);
}
}
program {
source: "prev";
signal: "mouse,up,1";
script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"prev", st, 30, vl)
+
+ if (!strcmp(st, "pressed"))
+ set_state(PART:"prev", "default", 0.0);
+ }
+ }
+ program {
+ name: "prev_btn_enable";
+ source: "*";
+ signal: "prev_enable";
+ script {
set_state(PART:"prev", "default", 0.0);
}
}
program {
+ name: "prev_btn_disable";
+ source: "*";
+ signal: "prev_disable";
+ script {
+ set_state(PART:"prev", "dimmed", 0.0);
+ }
+ }
+ program {
name: "play_btn_click";
source: "play_pause";
signal: "mouse,clicked,1";
source: "next";
signal: "mouse,clicked,1";
script {
- emit ("next_clicked", "");
+ new st[31];
+ new Float:vl;
+ get_state(PART:"next", st, 30, vl)
+
+ if (!strcmp(st, "default"))
+ emit ("next_clicked", "");
}
}
program {
source: "next";
signal: "mouse,down,1";
script {
- set_state(PART:"next", "pressed", 0.0);
+ new st[31];
+ new Float:vl;
+ get_state(PART:"next", st, 30, vl)
+
+ if (!strcmp(st, "default"))
+ set_state(PART:"next", "pressed", 0.0);
}
}
program {
source: "next";
signal: "mouse,up,1";
script {
+ new st[31];
+ new Float:vl;
+ get_state(PART:"next", st, 30, vl)
+
+ if (!strcmp(st, "pressed"))
+ set_state(PART:"next", "default", 0.0);
+ }
+ }
+ program {
+ name: "next_btn_enable";
+ source: "*";
+ signal: "next_enable";
+ script {
set_state(PART:"next", "default", 0.0);
}
}
+ program {
+ name: "next_btn_disable";
+ source: "*";
+ signal: "next_disable";
+ script {
+ set_state(PART:"next", "dimmed", 0.0);
+ }
+ }
}
}
}
+
group {
name: "elm/progressbar/horizontal/list_progress";
images {
}
image {
normal: PROGRESS_BAR;
- //border: 0 0 1 1;
}
}
description {
group {
name: "subject/pageindex";
+ images {
+ image: LOCK_ICON COMP;
+ image: SUBJECT_INDEX_BG COMP;
+ }
parts {
part {
name: "rect";
description {
state: "default" 0.0;
min: 0 SUBJECT_MIN_H;
- color: COLOR_SUBJECT_BG;
}
}
part {
- name: "subject";
+ name: "rect/bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ rel1{to:"rect"; relative:0.0 0.0;}
+ rel2{to:"rect"; relative:1.0 1.0;}
+ image {
+ normal: SUBJECT_INDEX_BG;
+ border: 2 2 2 2;
+ }
+ }
+ }
+ part {
+ name: "subject/text";
type: TEXT;
scale: 1;
mouse_events: 0;
rel1{to:"rect"; relative:0.0 0.0; offset: DETAIL_PADDING_H_MIN 0; }
rel2{to:"rect"; relative:0.8 1.0;}
align: 0.0 0.5;
- color: COLOR_DETAIL_INFO_TEXT;
+ color: COLOR_SUBJECT_INDEX;
text {
- font: SLP_FONT_REGULAR;
- text_class: FONT_TEXT_CLASS_REGULAR;
+ font: "SLP:style=Bold";
+ text_class: "slp_medium";
size: 32;
align: 0.0 0.5;
- ellipsis: 0.0;
- text: "";
}
}
}
part {
- name: "page/index";
+ name: "page/text";
type: TEXT;
scale: 1;
mouse_events: 0;
description {
state: "default" 0.0;
align: 1.0 0.5;
- rel1{to:"rect"; relative:0.8 0.0;}
- rel2{to:"rect"; relative:1.0 1.0; offset: -DETAIL_PADDING_H_MIN 0;}
- color: COLOR_DETAIL_INFO_TEXT;
+ min: PAGE_INDEX_MIN_W SUBJECT_MIN_H;
+ rel1{to:"rect"; relative:1.0 0.0;}
+ rel2{to:"rect"; relative:1.0 1.0;}
+ color: COLOR_SUBJECT_INDEX;
text {
- font: SLP_FONT_REGULAR;
- text_class: FONT_TEXT_CLASS_REGULAR;
+ font: "SLP:style=Bold";
+ text_class: "slp_medium";
size: 32;
- align: 1.0 0.5;
- ellipsis: 0.0;
- text: "";
}
}
}
+ part {
+ name: "lock/icon";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 0;
+ min: SUBJECT_MIN_H SUBJECT_MIN_H;
+ max: SUBJECT_MIN_H SUBJECT_MIN_H;
+ fixed: 1 1;
+ rel1{to:"page/text"; relative:0.0 0.0; offset: -SUBJECT_MIN_H 0;}
+ rel2{to:"page/text"; relative:0.0 1.0;}
+ align: 1.0 0.5;
+ image { normal: LOCK_ICON; }
+ }
+ description {
+ state: "default" 1.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ }
+ programs {
+ program {
+ name: "lock/icon/enabled";
+ source: "*";
+ signal: "lock/icon/show";
+ script {
+ set_state(PART:"lock/icon", "default", 1.0);
+ }
+ }
+ program {
+ name: "lock/icon/disabled";
+ source: "*";
+ signal: "lock/icon/hide";
+ script {
+ set_state(PART:"lock/icon", "default", 0.0);
+ }
+ }
+ }
+ }
+ }
+
+ group {
+ name: "audio/panel";
+ images {
+ image: AUDIO_ICON COMP;
+ }
+ parts {
+ part {
+ name: "rect";
+ type: RECT;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ min: 0 AUDIO_PANEL_H;
+ }
+ }
+ part {
+ name: "audio.text.filename";
+ type: TEXT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ rel1{to:"rect"; relative:0.0 0.0; offset: 76 0; }
+ rel2{to:"rect"; relative:0.8 1.0;}
+ align: 0.0 0.5;
+ color: COLOR_SUBJECT_INDEX;
+ text {
+ font: "SLP:style=Bold";
+ text_class: "slp_medium";
+ size: 36;
+ align: 0.0 0.5;
+ }
+ }
+ }
+ part {
+ name: "audio.image.icon";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ visible: 1;
+ min: 64 64;
+ max: 64 64;
+ fixed: 1 1;
+ rel1{to:"rect"; relative:0.0 0.0;}
+ rel2{to:"rect"; relative:0.0 1.0;}
+ align: 0.0 0.5;
+ image { normal: AUDIO_ICON; }
+ }
+ }
+ }
+ }
+
+ group {
+ name: "viewer_body_outer_margin";
+ parts {
+ part {
+ name: "rect";
+ type: RECT;
+ scale: 1;
+ description {
+ visible: 0;
+ state: "default" 0.0;
+ min: 0 BODY_PADDING_MIN_H;
+ }
+ }
+ }
+ }
+
+ group {
+ name: "viewer_body_inner_margin";
+ parts {
+ part {
+ name: "rect";
+ type: RECT;
+ scale: 1;
+ description {
+ visible: 0;
+ state: "default" 0.0;
+ min: 0 BODY_PADDING_MID_MIN_H;
+ }
+ }
}
}
group {
name : "viewer_main";
+ images {
+ image: TITLE_LIST_BG COMP;
+ }
parts {
part {
name: "rect";
scale: 1;
description {
state: "default" 0.0;
- fixed: 1 1;
+ fixed: 1 0;
min: 0 0;
color: 0 0 0 0;
- rel1 {to: "viewer.swallow.subject"; relative: 0.02 1.0; offset: 0 BODY_TOP_PADDING_MIN_H;}
- rel2 {to: "rect"; relative: 0.98 1.0;}
+ rel1 {to: "viewer.swallow.subject"; relative: 0.02 1.0;}
+ rel2 {to: "viewer.swallow.audio.panel"; relative: 0.98 0.0;}
align: 0.0 0.0;
- }
}
- part {
- name: "viewer.body.content";
- type: SWALLOW;
- scale: 1;
- mouse_events: 1;
+ }
+ part {
+ name: "viewer.body.content";
+ type: SWALLOW;
+ scale: 1;
+ mouse_events: 1;
description {
state: "default" 0.0;
fixed: 1 0;
min:0 0;
color: 0 0 0 0;
- rel1 {to: "viewer.swallow.subject"; relative: 0.02 0.0;}
- rel2 {to: "rect"; relative: 0.98 1.0;}
+ rel1 {to: "viewer.swallow.subject"; relative: 0.02 1.0;}
+ rel2 {to: "viewer.swallow.audio.panel"; relative: 0.98 0.0;}
align: 0.0 0.0;
}
- }
- part {
+ }
+ part {
+ name: "viewer.swallow.audio.panel";
+ type: SWALLOW;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ align: 0.0 1.0;
+ rel1 {to: "rect"; relative:0.0 1.0;}
+ rel2 {to: "rect"; relative:1.0 1.0;}
+ }
+ }
+ part {
name: "viewer.swallow.play.controller";
type: SWALLOW;
scale: 1;
}
}
part {
- name:"viewer.titlebtn.list";
+ name: "viewer.title.list.bg";
+ type: IMAGE;
+ scale: 1;
+ description {
+ state: "default" 0.0;
+ fixed: 0 0;
+ align: 0.0 0.0;
+ rel1 {
+ to_x: "viewer.title.list.padding.left";
+ to_y: "viewer.swallow.title.list";
+ relative: 1.0 0.0;
+ }
+ rel2 {
+ to_x: "viewer.title.list.padding.right";
+ to_y: "viewer.swallow.title.list";
+ relative: 0.0 1.0;
+ offset: 0 6;
+ }
+ image {
+ normal: TITLE_LIST_BG;
+ border: 11 11 11 11;
+ border_scale: 1;
+ }
+ color: 255 255 255 0;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ color: 255 255 255 255;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ }
+ }
+ part {
+ name: "viewer.title.list.padding.left";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 0;
+ min: 16 0;
+ rel1 { relative: 0.0 0.0;}
+ rel2 { relative: 0.0 1.0;}
+ align: 0.0 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "viewer.title.list.padding.right";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 1 0;
+ min: 9 0;
+ rel1 { relative: 1.0 0.0;}
+ rel2 { relative: 1.0 1.0;}
+ align: 1.0 0.0;
+ visible: 0;
+ }
+ }
+ part {
+ name: "viewer.title.list.padding.bottom";
+ type: RECT;
+ scale: 1;
+ mouse_events: 0;
+ description {
+ state: "default" 0.0;
+ fixed: 0 1;
+ min: 0 7;
+ max: 0 7;
+ rel1 { to: "viewer.swallow.title.list"; relative: 0.0 1.0;}
+ rel2 { to: "viewer.swallow.title.list"; relative: 1.0 1.0;}
+ align: 0.0 0.0;
+ visible: 1;
+ color: 255 0 0 100;
+ }
+ description {
+ state: "show" 0.0;
+ inherit: "default" 0.0;
+ visible: 1;
+ }
+ description {
+ state: "hide" 0.0;
+ inherit: "default" 0.0;
+ }
+
+ }
+ part {
+ name:"viewer.swallow.title.list";
type: SWALLOW;
scale: 1;
description {
state: "default" 0.0;
fixed: 1 0;
min: 0 1;
- rel1 {to: "rect"; relative: 0.0 0.0;}
- rel2 {to: "rect"; relative: 1.0 0.0;}
+ rel1 {to: "rect"; relative: 0.0 0.0; offset: 16 0;}
+ rel2 {to: "rect"; relative: 1.0 0.0; offset: -16 0;}
align: 0.0 0.0;
}
description {
max: 0 0;
}
}
- programs
+
+ programs
{
program {
- name: "viewer.titlebtn.list.open";
+ name: "viewer.title.list.open";
signal: "elm,state,titlelist,open";
source: "";
action: STATE_SET "show" 0.0;
- target: "viewer.titlebtn.list";
+ target: "viewer.swallow.title.list";
+ target: "viewer.title.list.bg";
transition: LINEAR 0.2;
}
program {
- name: "viewer.titlebtn.list.close";
+ name: "viewer.title.list.close";
signal: "elm,state,titlelist,close";
source: "";
action: STATE_SET "hide" 0.0;
- target: "viewer.titlebtn.list";
+ target: "viewer.swallow.title.list";
+ target: "viewer.title.list.bg";
transition: LINEAR 0.2;
}
}
}
group {
- name : "item_list";
+ name : "title";
+ images {
+ image: TITLE_BUTTON_ARROW COMP;
+ image: TITLE_BUTTON_LIST_ARROW COMP;
+ }
+ script {
+ public title_show = 0;
+ }
parts {
part {
name: "rect";
}
}
part {
- name: "viewer.itemlist.body";
- type: SWALLOW;
+ name: "title_top_padding";
+ type: RECT;
scale: 1;
- description {
+ description {
state: "default" 0.0;
- color: 0 0 0 0;
- rel1 {to: "rect"; relative: 0.0 0.0;}
- rel2 {to: "rect"; relative: 1.0 1.0;}
+ visible: 0;
+ fixed: 0 1;
+ min: 0 10;
+ align: 0.5 0;
+ rel1{to: "rect"; relative: 0.0 0.0;}
+ rel2{to: "rect"; relative: 1.0 0.0;}
}
}
- }
- }
-
- group {
- name : "title";
- images {
- image: "optionheader_arrow.png" COMP;
- }
- script {
- public title_show = 0;
- }
- parts {
part {
- name: "rect";
+ name: "title_bottom_padding";
type: RECT;
scale: 1;
- description {
+ description {
state: "default" 0.0;
- color: 0 0 0 0;
+ visible: 0;
+ fixed: 0 1;
+ min: 0 16;
+ align: 0 1.0;
+ rel1{to: "rect"; relative: 0.0 1.0;}
+ rel2{to: "rect"; relative: 1.0 1.0;}
}
}
part {
scale: 1;
description {
state: "default" 0.0;
- fixed: 1 1;
- min: 0 78;
+ fixed: 0 0;
+ min: 0 72;
align: 0 0.5;
- color: 255 0 0 255;
- rel1{to: "rect"; relative: 0.0 0.5;}
- rel2{to: "rect"; relative: 1.0 0.5;}
+ rel1{to: "title_top_padding"; relative: 0.0 1.0;}
+ rel2{to: "title_bottom_padding"; relative: 1.0 0.0;}
}
}
part {
- name: "titlebtn_arrow";
+ name: "title_btn_arrow";
type: IMAGE;
scale: 1;
description {
align: 0.5 0.0;
rel1 { relative: 0.0 0.89; to_x: "title_btn"; }
rel2 { relative: 1.0 0.89; to_x: "title_btn"; }
- image.normal: "optionheader_arrow.png";
+ image.normal: TITLE_BUTTON_ARROW;
color: 255 255 255 0;
}
description {
inherit: "default" 0.0;
color: 255 255 255 255;
}
+ description {
+ state: "show_multi" 0.0;
+ inherit: "default" 0.0;
+ min: 26 21;
+ max: 26 21;
+ rel1 { relative: 0.0 0.82; to_x: "title_btn"; }
+ rel2 { relative: 1.0 0.82; to_x: "title_btn"; }
+ image.normal: TITLE_BUTTON_LIST_ARROW;
+ color: 255 255 255 255;
}
}
programs {
source: "";
script {
set_int(title_show, 1);
- set_state(PART:"titlebtn_arrow", "show", 0.0);
+ set_state(PART:"title_btn_arrow", "show", 0.0);
+ }
+ }
+ program {
+ name: "title_show_multi";
+ signal: "elm,state,title,show,multi";
+ source: "";
+ script {
+ set_int(title_show, 1);
+ set_state(PART:"title_btn_arrow", "show_multi", 0.0);
}
}
program {
source: "";
script {
set_int(title_show, 0);
- set_state(PART:"titlebtn_arrow", "default", 0.0);
+ set_state(PART:"title_btn_arrow", "default", 0.0);
}
}
}