/* * myfile * * 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 #include #include #include #include #include #include "mf-ug-main.h" #include "mf-ug-util.h" #include "mf-ug-inotify-handle.h" #include "mf-ug-winset.h" #include "mf-ug-fs-util.h" #include "mf-ug-fm-svc-wrapper.h" #include "mf-ug-resource.h" #define UG_MAX_LEN_VIB_DURATION 0.5 /****************************** ** Prototype : mf_ug_cb_back_button_cb ** Description : ** Input : void *data ** Evas_Object *obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_back_button_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugData is NULL"); if (ugd->ug_Status.ug_bCancelDisableFlag) { return; } if (0 != ugd->ug_ListPlay.ug_Player) { mf_ug_list_play_destory_playing_file(ugd); } if (ugd->ug_Status.ug_iMore == UG_MORE_SEARCH) { ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); ug_mf_retm_if(pNavi_s == NULL, "get navi failed"); Evas_Object *playout = ugd->ug_MainWindow.ug_pNaviLayout; ug_mf_retm_if(playout == NULL, "get conformant failed"); Evas_Object *newContent = NULL; newContent = mf_ug_genlist_create_content_list_view(ugd); Evas_Object *unUsed = elm_object_part_content_unset(playout, "part1"); evas_object_del(unUsed); elm_object_part_content_set(playout, "part1", newContent); ugd->ug_Status.ug_iMore = UG_MORE_DEFAULT; mf_ug_ctrl_bar_listby_item_diable(ugd->ug_MainWindow.ug_pNaviCtrlBar, false); } else { if (ugd->ug_Status.ug_bSettingEntry == true && ugd->ug_Status.ug_bInSettingView == false) { Eina_List *l = NULL; void *item = NULL; ugNaviBar *pNavi_s = NULL; ugNaviBar *pNavi_toshow = NULL; GString *title = NULL; if (ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PLAYING || ugd->ug_ListPlay.ug_iPlayState == PLAY_STATE_PAUSED) { mf_ug_list_play_destory_playing_file(ugd); } if(ugd->ug_Status.ug_pEntryPath) { int len = strlen(ugd->ug_Status.ug_pEntryPath); if(ugd->ug_Status.ug_pEntryPath[len-1] == '/') ugd->ug_Status.ug_pEntryPath[len-1] = '\0'; } EINA_LIST_FOREACH(ugd->ug_MainWindow.ug_pNaviBarList, l, item) { pNavi_s = (ugNaviBar *)item; if (pNavi_s == NULL) return; if (g_strcmp0(pNavi_s->ug_pNaviLabel, MF_UG_LABEL_PHONE) == 0) { if (pNavi_s->ug_pCurrentPath != NULL) { free(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = NULL; } pNavi_s->ug_pCurrentPath = strdup(ugd->ug_Status.ug_pEntryPath); pNavi_s->ug_bNaviFlagInUse = true; pNavi_toshow = pNavi_s; } else { if (pNavi_s->ug_pCurrentPath != NULL) { free(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = NULL; } pNavi_s->ug_pCurrentPath = strdup(MEMORY_FOLDER); pNavi_s->ug_bNaviFlagInUse = false; } } if (pNavi_toshow == NULL) { ug_debug("pNavi_toshow is NULL"); return; } if (ugd->ug_Status.ug_pPath) { g_string_free(ugd->ug_Status.ug_pPath, TRUE); ugd->ug_Status.ug_pPath = NULL; } ugd->ug_Status.ug_bInSettingView = true; if (ugd->ug_Status.ug_pPath) { g_string_free(ugd->ug_Status.ug_pPath, TRUE); ugd->ug_Status.ug_pPath = NULL; } pNavi_toshow->ug_pCurrentPath = strdup(ugd->ug_Status.ug_pEntryPath); ugd->ug_Status.ug_pPath = g_string_new(pNavi_toshow->ug_pCurrentPath); title = mf_ug_fm_svc_wapper_get_file_name(ugd->ug_Status.ug_pPath); if (title != NULL) { pNavi_toshow->ug_pNaviTitle = g_strdup(title->str); g_string_free(title, TRUE); title = NULL; } mf_ug_navi_bar_create_default_view(ugd); mf_ug_ctrl_bar_set_item_disable(ugd); elm_object_item_text_set(ugd->ug_MainWindow.ug_pNaviItem, pNavi_toshow->ug_pNaviTitle); elm_naviframe_item_title_visible_set(ugd->ug_MainWindow.ug_pNaviItem, EINA_TRUE); if (ugd->ug_MainWindow.ug_pTabBar && mf_ug_tab_bar_items_count_get(ugd->ug_MainWindow.ug_pTabBar) > 1) { elm_object_part_content_unset(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.content"); elm_object_part_content_unset(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.tabbar"); elm_object_part_content_unset(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content"); //mf_ug_tab_bar_remove_all_items(ugd->ug_MainWindow.ug_pTabBar); UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pTabBar); mf_ug_navi_bar_remove_navi_list_item_by_label(ugd, MF_UG_LABEL_MMC); Evas_Object *navibar = ugd->ug_MainWindow.ug_pNaviBar; elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", navibar); evas_object_hide(ugd->ug_MainWindow.ug_pTabLayout); UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pTabLayout); } } else { ug_destroy_me(ugd->ug); } } UG_TRACE_END; } /****************************** ** Prototype : mf_ug_cb_add_button_cb ** Description : ** Input : void *data ** Evas_Object *obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_add_button_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugData is NULL"); service_h service; char *result = NULL; if (ugd->ug_Status.ug_b_NaviPushFlag) { UG_TRACE_END; return; } if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE) { result = g_strdup(ugd->ug_Status.ug_pPath->str); } else { result = mf_ug_util_get_send_result(ugd); } if (result) { int ret = 0; ret = service_create(&service); if (ret == SERVICE_ERROR_NONE) { service_add_extra_data(service, "result", result); ug_send_result(ugd->ug, service); service_destroy(service); } ug_debug("result is [%s]", result); UG_SAFE_FREE_CHAR(result); } if (0 != ugd->ug_ListPlay.ug_Player) { mf_ug_list_play_destory_playing_file(ugd); } ug_destroy_me(ugd->ug); UG_TRACE_END; } void mf_ug_cb_list_by_response_cb(void *data) { ugData *ugd = (ugData *)data; assert(ugd); ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); ug_mf_retm_if(pNavi_s == NULL, "get navi failed"); Evas_Object *playout = ugd->ug_MainWindow.ug_pNaviLayout; ug_mf_retm_if(playout == NULL, "get conformant failed"); Evas_Object *newContent = NULL; newContent = mf_ug_genlist_create_content_list_view(ugd); Evas_Object *unUsed = elm_object_part_content_unset(playout, "part1"); evas_object_del(unUsed); elm_object_part_content_set(playout, "part1", newContent); } void mf_ug_cb_list_by_button_callback(void *data, Evas_Object * obj, void *event_info) { assert(data); assert(obj); ugData *ugd = (ugData *)data; Evas_Object *btn = (Evas_Object *)obj; const char *label = elm_object_text_get(btn); int iListBySortType = 0; if (g_strcmp0(label, MF_UG_LABEL_ASCENDING) == 0 ) { switch(ugd->ug_Status.ug_iSelectedSortType) { case 0: iListBySortType = MF_UG_SORT_BY_NAME_Z2A; break; case 1: iListBySortType = MF_UG_SORT_BY_DATE_R2O; break; case 2: iListBySortType = MF_UG_SORT_BY_SIZE_L2S; break; case 3: iListBySortType = MF_UG_SORT_BY_TYPE_Z2A; break; default: iListBySortType = MF_UG_SORT_BY_DATE_R2O; break; } } else if(g_strcmp0(label, MF_UG_LABEL_DESCENDING) == 0 ) { switch(ugd->ug_Status.ug_iSelectedSortType) { case 0: iListBySortType = MF_UG_SORT_BY_NAME_A2Z; break; case 1: iListBySortType = MF_UG_SORT_BY_DATE_O2R; break; case 2: iListBySortType = MF_UG_SORT_BY_SIZE_S2L; break; case 3: iListBySortType = MF_UG_SORT_BY_TYPE_A2Z; break; default: iListBySortType = MF_UG_SORT_BY_DATE_O2R; break; } } ugd->ug_Status.ug_iSortType = iListBySortType; mf_ug_cb_list_by_response_cb(ugd); } void mf_ug_cb_popup_deleted_cb(void *data, Evas_Object * obj, void *event_info) { ugData *ugd = (ugData *)data; assert(ugd); mf_ug_cb_list_by_button_callback(data, obj, event_info); if (ugd->ug_MainWindow.ug_pNormalPopup != NULL) { evas_object_del(ugd->ug_MainWindow.ug_pNormalPopup); } ugd->ug_MainWindow.ug_pNormalPopup = NULL; } void mf_ug_cb_sort_by_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugData is NULL"); if (ugd->ug_Status.ug_b_NaviPushFlag) { UG_TRACE_END; return; } mf_ug_popup_create(ugd, UG_POPMODE_LIST_BY, MF_UG_LABEL_LIST_BY, NULL, NULL, NULL, NULL, mf_ug_cb_popup_deleted_cb, ugd); UG_TRACE_END; } void mf_ug_cb_goto_myfile_button_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugData is NULL"); if (ugd->ug_Status.ug_bCancelDisableFlag) { ug_debug("ug_Status.ug_bCancelDisableFlag is true"); return; } ugNaviBar *item = NULL; Eina_List *l = NULL; ugNaviBar *pNavi_s = NULL;//ug_mf_navi_bar_get_navi_from_navilist(ugd->ug_MainWindow.ug_pNaviBarList, MF_UG_LABEL_PHONE); ugNaviBar *pNavi_toshow = NULL; EINA_LIST_FOREACH(ugd->ug_MainWindow.ug_pNaviBarList, l, item) { pNavi_s = (ugNaviBar *)item; if (pNavi_s == NULL) return; if (g_strcmp0(pNavi_s->ug_pNaviLabel, MF_UG_LABEL_PHONE) == 0) { if (pNavi_s->ug_pCurrentPath != NULL) { free(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = NULL; } pNavi_s->ug_pCurrentPath = strdup(PHONE_FOLDER); pNavi_s->ug_bNaviFlagInUse = true; pNavi_toshow = pNavi_s; } else { if (pNavi_s->ug_pCurrentPath != NULL) { free(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = NULL; } pNavi_s->ug_pCurrentPath = strdup(MEMORY_FOLDER); pNavi_s->ug_bNaviFlagInUse = false; } } if (0 != ugd->ug_ListPlay.ug_Player) mf_ug_list_play_destory_playing_file(ugd); if (ugd->ug_Status.ug_pPath) { g_string_free(ugd->ug_Status.ug_pPath, TRUE); ugd->ug_Status.ug_pPath = NULL; } ugd->ug_Status.ug_pPath = g_string_new(SOUNDS_FOLDER); UG_SAFE_FREE_CHAR(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = strdup(ugd->ug_Status.ug_pPath->str); ugd->ug_Status.ug_bInSettingView = false; mf_ug_navi_bar_create_default_view(ugd); ugd->ug_Status.ug_bCancelDisableFlag = true; mf_ug_ctrl_bar_set_item_disable(ugd); mf_ug_tab_bar_init(ugd); } /****************************** ** Prototype : _ug_popup_exit ** Description : Samsung ** Input : void *data ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_mass_storage_popup_cb(void *data) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugData is NULL"); mf_ug_cb_back_button_cb(ugd, NULL, NULL); if (ugd->ug_MainWindow.ug_pNormalPopup) { evas_object_del(ugd->ug_MainWindow.ug_pNormalPopup); ugd->ug_MainWindow.ug_pNormalPopup = NULL; } UG_TRACE_END; } /****************************** ** Prototype : mf_ug_cb_upper_click_cb ** Description : Samsung ** Input : void *data ** Evas_Object * obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_upper_click_cb(void *data, Evas_Object * obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL"); if (ugd->ug_Status.ug_b_NaviPushFlag) { UG_TRACE_END; return; } if (ugd->ug_Status.ug_pPath != NULL && pNavi_s->ug_pCurrentPath != NULL) { if (g_strcmp0(pNavi_s->ug_pCurrentPath, MF_UG_LABEL_PHONE) == 0 || g_strcmp0(pNavi_s->ug_pCurrentPath, MF_UG_LABEL_MMC) == 0) { mf_ug_navi_bar_create_default_view(ugd); return; } GString *new_path = NULL; char *file_dir = ecore_file_dir_get(pNavi_s->ug_pCurrentPath); if (file_dir) { new_path = g_string_new(file_dir); UG_SAFE_FREE_GSTRING(ugd->ug_Status.ug_pPath); ugd->ug_Status.ug_pPath = new_path; UG_SAFE_FREE_CHAR(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = strdup(new_path->str); free(file_dir); file_dir = NULL; } else { ug_debug("file_dir is NULL"); } } else { ugd->ug_Status.ug_pPath = g_string_new(MF_UG_LABEL_PHONE); pNavi_s->ug_pCurrentPath = strdup(MF_UG_LABEL_PHONE); } mf_ug_navi_bar_create_default_view(ugd); mf_ug_ctrl_bar_set_item_disable(ugd); mf_ug_ctrl_bar_listby_item_diable(ugd->ug_MainWindow.ug_pNaviCtrlBar, false); mf_ug_tar_bar_disable(ugd, false); UG_TRACE_END; } void mf_ug_cb_home_button_cb(void *data, Evas_Object * obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); ug_mf_retm_if(pNavi_s == NULL, "pNavi_s is NULL"); if (ugd->ug_Status.ug_b_NaviPushFlag) { UG_TRACE_END; return; } int storage = MF_UG_PHONE; mf_ug_tar_bar_disable(ugd, false); storage = mf_ug_fm_svc_wapper_get_location(ugd->ug_Status.ug_pPath->str); switch (storage) { case MF_UG_PHONE: UG_SAFE_FREE_GSTRING(ugd->ug_Status.ug_pPath); ugd->ug_Status.ug_pPath = g_string_new(PHONE_FOLDER); UG_SAFE_FREE_CHAR(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = g_strdup(PHONE_FOLDER); mf_ug_util_set_current_state(ugd, STATE_PHONE); break; case MF_UG_MMC: UG_SAFE_FREE_GSTRING(ugd->ug_Status.ug_pPath); ugd->ug_Status.ug_pPath = g_string_new(MEMORY_FOLDER); UG_SAFE_FREE_CHAR(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = g_strdup(MEMORY_FOLDER); mf_ug_util_set_current_state(ugd, STATE_MEMORY); break; default: return; } mf_ug_navi_bar_create_default_view(ugd); mf_ug_ctrl_bar_set_item_disable(ugd); mf_ug_tar_bar_disable(ugd, false); UG_TRACE_END; } /****************************** ** Prototype : tab_callback ** Description : ** Input : void *data ** Evas_Object *obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_tab_bar_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); const char *label = NULL; Evas_Object *newContent = NULL; Evas_Object *pNaviBar = NULL; Elm_Object_Item *it = NULL; ugNaviBar *pNavi_s_toshow = NULL; ugNaviBar *pNavi_s_inuse = NULL; //mf_ug_navi_bar_del_item_directly(ugd); it = (Elm_Object_Item *)event_info; label = elm_object_item_text_get(it); if (label != NULL) { char *rootpath = NULL; /*0. set the previous navi to be out of use */ pNavi_s_inuse = mf_ug_navi_bar_get_in_use_navi(ugd); if (pNavi_s_inuse == NULL || pNavi_s_inuse->ug_pNaviLabel == NULL) { UG_TRACE_END; return; } ug_debug("label is [%s] pNavi_s_inuse->ug_pNaviLabel is [%s]", label, pNavi_s_inuse->ug_pNaviLabel); if (g_strcmp0(label, pNavi_s_inuse->ug_pNaviLabel) == 0) { UG_TRACE_END; return; } pNavi_s_inuse->ug_bNaviFlagInUse = FALSE; if (0 != ugd->ug_ListPlay.ug_Player) { mf_ug_list_play_destory_playing_file(ugd); } /*if the muisc is playing, destory the play */ /*1. get navi bar pointer by the label */ pNaviBar = ugd->ug_MainWindow.ug_pNaviBar; pNavi_s_toshow = ug_mf_navi_bar_get_navi_from_navilist(ugd->ug_MainWindow.ug_pNaviBarList, label); ug_debug("label is %s", label); /*2. create navi bar if not created, otherwise get it by pNaviBar */ if (pNavi_s_toshow == NULL) { /*2.0 get root path by storage label */ rootpath = mf_ug_fm_svc_wapper_get_root_path_by_tab_label(label); if (rootpath == NULL) { UG_TRACE_END; return; } /*2.1 create the navi for the tab */ pNavi_s_toshow = calloc(1, sizeof(ugNaviBar)); if (pNavi_s_toshow == NULL) { ug_debug("pNavi_s_toshow is NULL"); free(rootpath); rootpath = NULL; return; } pNavi_s_toshow->ug_bNaviFlagInUse = TRUE; /*2.2 set path as root path of the storage */ pNavi_s_toshow->ug_pCurrentPath = g_strdup(rootpath); pNavi_s_toshow->ug_pNaviLabel = strdup(label); free(rootpath); rootpath = NULL; /*2.3 insert phone navi into the navi_list */ ugd->ug_MainWindow.ug_pNaviBarList = eina_list_append(ugd->ug_MainWindow.ug_pNaviBarList, pNavi_s_toshow); if (ugd->ug_Status.ug_pPath != NULL) { g_string_free(ugd->ug_Status.ug_pPath, TRUE); ugd->ug_Status.ug_pPath = NULL; } ugd->ug_Status.ug_pPath = g_string_new(pNavi_s_toshow->ug_pCurrentPath); mf_ug_navi_bar_create_default_view(ugd); /*2.4 set the navi to tab bar item */ mf_ug_navi_bar_set_blocking(ugd, false); } else { /*/2.1 get the navi of the tab */ pNavi_s_toshow = mf_ug_navi_bar_get_navi_struct_by_label(ugd, label); pNavi_s_toshow->ug_bNaviFlagInUse = TRUE; /*/2.2 set related status value. */ if (ugd->ug_Status.ug_pPath != NULL) { g_string_free(ugd->ug_Status.ug_pPath, TRUE); ugd->ug_Status.ug_pPath = NULL; } ugd->ug_Status.ug_pPath = g_string_new(pNavi_s_toshow->ug_pCurrentPath); /*/2.3 update the content to catch update */ newContent = mf_ug_genlist_create_content_list_view(ugd); ugd->ug_MainWindow.ug_pContent = newContent; mf_ug_navi_bar_set_new_content(ugd->ug_MainWindow.ug_pNaviLayout, newContent); } mf_ug_tab_bar_set_item_view(ugd->ug_MainWindow.ug_pTabLayout, ugd->ug_MainWindow.ug_pNaviBar); mf_ug_ctrl_bar_set_item_disable(ugd); mf_ug_ctrl_bar_listby_item_diable(ugd->ug_MainWindow.ug_pNaviCtrlBar, false); } else { ug_debug("Invalid argument: label is NULL\n"); } UG_TRACE_END; } void mf_ug_cb_ctrl_bar_button_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); ug_mf_retm_if(event_info == NULL, "event_info is NULL"); const char *label = NULL; if (ugd->ug_Status.ug_b_NaviPushFlag) return; label = elm_object_item_text_get((Elm_Object_Item *)event_info); ug_mf_retm_if(label == NULL, "label is NULL"); ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); if (g_strcmp0(label, MF_UG_LABEL_RINGTONES) == 0) { if (g_strcmp0(ugd->ug_Status.ug_pPath->str, UG_RINGTION_PATH) != 0) { UG_SAFE_FREE_GSTRING(ugd->ug_Status.ug_pPath); ugd->ug_Status.ug_pPath = g_string_new(UG_RINGTION_PATH); UG_SAFE_FREE_CHAR(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = g_strdup(UG_RINGTION_PATH); mf_ug_util_set_current_state(ugd, STATE_PHONE); ugd->ug_Status.ug_iCtrlBarType = CTRL_BAR_MUSIC; mf_ug_navi_bar_create_default_view(ugd); } } else if (g_strcmp0(label, MF_UG_LABEL_OTHER_MUSIC) == 0) { if (g_strcmp0(ugd->ug_Status.ug_pPath->str, UG_MUSIC_PATH) != 0) { UG_SAFE_FREE_GSTRING(ugd->ug_Status.ug_pPath); ugd->ug_Status.ug_pPath = g_string_new(UG_MUSIC_PATH); UG_SAFE_FREE_CHAR(pNavi_s->ug_pCurrentPath); pNavi_s->ug_pCurrentPath = g_strdup(UG_MUSIC_PATH); mf_ug_util_set_current_state(ugd, STATE_PHONE); ugd->ug_Status.ug_iCtrlBarType = CTRL_BAR_RINGTONE; mf_ug_navi_bar_create_default_view(ugd); } } UG_TRACE_END; } /****************************** ** Prototype : mf_ug_cb_list_play_cb ** Description : Samsung ** Input : ugListItemData *data ** Evas_Object *obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_list_play_cb(ugListItemData *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugListItemData *itemData = data; ug_mf_retm_if(itemData == NULL, "itemData is NULL"); ug_mf_retm_if(itemData->ug_pData == NULL, "ug_pData is NULL"); if (itemData->ug_pData->ug_Status.ug_b_NaviPushFlag) return; mf_ug_list_play_play_music_item(itemData); UG_TRACE_END; } /****************************** ** Prototype : mf_ug_cb_select_info_show_cb ** Description : Samsung ** Input : void *data ** Evas *e ** Evas_Object *obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_select_info_show_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); edje_object_signal_emit(_EDJ(ugd->ug_MainWindow.ug_pMainLayout), "elm,state,show,default", "elm"); UG_TRACE_END; return; } /****************************** ** Prototype : mf_ug_cb_select_info_hide_cb ** Description : Samsung ** Input : void *data ** Evas *e ** Evas_Object *obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_select_info_hide_cb(void *data, Evas *e, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); edje_object_signal_emit(_EDJ(ugd->ug_MainWindow.ug_pMainLayout), "elm,state,hide,default", "elm"); UG_TRACE_END; return; } /****************************** ** Prototype : mf_ug_cb_select_info_timeout_cb ** Description : Samsung ** Input : void *data ** Evas_Object *obj ** void *event_info ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_select_info_timeout_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); edje_object_signal_emit(_EDJ(ugd->ug_MainWindow.ug_pMainLayout), "elm,state,hide,default", "elm"); UG_TRACE_END; return; } /****************************** ** Prototype : mf_ug_cb_mmc_changed_cb ** Description : Samsung ** Input : keynode_t *key ** void* data ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_mmc_changed_cb(keynode_t *key, void *data) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); ug_mf_retm_if(ugd->ug_Status.ug_pPath == NULL || ugd->ug_Status.ug_pPath->str == NULL, "ugd->ug_Status.ug_pPath is NULL"); int optStorage = MF_UG_NONE; char *labelStorage = NULL; if (VCONF_TYPE_INT == vconf_keynode_get_type(key) && VCONFKEY_SYSMAN_MMC_MOUNTED == vconf_keynode_get_int(key)) { if (ugd->ug_Status.ug_bInSettingView && ugd->ug_Status.ug_bSettingEntry) { ugd->ug_Status.ug_iMmcFlag = MMC_ON; return; } ugd->ug_Status.ug_iMmcFlag = MMC_ON; mf_ug_util_storage_insert_action(ugd, MF_UG_LABEL_MMC); } else { ugNaviBar *pNaviInUseStruct = NULL; if (VCONFKEY_SYSMAN_MMC_REMOVED == vconf_keynode_get_int(key) || VCONFKEY_SYSMAN_MMC_INSERTED_NOT_MOUNTED == vconf_keynode_get_int(key)) { ug_debug("mmc removed"); if (ugd->ug_Status.ug_bInSettingView && ugd->ug_Status.ug_bSettingEntry) { ugd->ug_Status.ug_iMmcFlag = MMC_OFF; return; } optStorage = MF_UG_MMC; ugd->ug_Status.ug_iMmcFlag = MMC_OFF; } if (optStorage == MF_UG_NONE) { ug_debug("get removed storage failed"); return; } switch (optStorage) { case MF_UG_MMC: labelStorage = MF_UG_LABEL_MMC; break; default: break; } if (mf_ug_fm_svc_wapper_get_location(ugd->ug_Status.ug_pPath->str) != optStorage) { mf_ug_navi_bar_remove_navi_list_item_by_label(ugd, labelStorage); mf_ug_tab_bar_remove_item_by_label(ugd->ug_MainWindow.ug_pTabBar, labelStorage); if (mf_ug_util_set_main_layout_by_tab_item_count(ugd) == 0) { elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", ugd->ug_MainWindow.ug_pNaviBar); evas_object_show(ugd->ug_MainWindow.ug_pMainLayout); } } else { if (0 != ugd->ug_ListPlay.ug_Player) { mf_ug_list_play_destory_playing_file(ugd); if (ugd->ug_ListPlay.ug_pPlayFilePath) { g_free(ugd->ug_ListPlay.ug_pPlayFilePath); ugd->ug_ListPlay.ug_pPlayFilePath = NULL; } } mf_ug_navi_bar_remove_navi_list_item_by_label(ugd, labelStorage); mf_ug_tab_bar_remove_item_by_label(ugd->ug_MainWindow.ug_pTabBar, labelStorage); pNaviInUseStruct = mf_ug_navi_bar_get_in_use_navi(ugd); if (mf_ug_util_set_main_layout_by_tab_item_count(ugd) == 0) { elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", ugd->ug_MainWindow.ug_pNaviBar); evas_object_show(ugd->ug_MainWindow.ug_pMainLayout); } mf_ug_navi_bar_refresh_navibar_recovered_view(ugd, pNaviInUseStruct); } } mf_ug_navi_bar_title_set(ugd); UG_TRACE_END; return; } void mf_ug_cb_mass_storage_changed_cb(keynode_t *key, void *data) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugData is NULL"); ug_mf_retm_if(ugd->ug_Status.ug_pPath == NULL || ugd->ug_Status.ug_pPath->str == NULL, "ugd->ug_Status.ug_pPath is NULL"); if (VCONF_TYPE_INT == vconf_keynode_get_type(key) && VCONFKEY_USB_STORAGE_STATUS_OFF == vconf_keynode_get_int(key)) { if (ugd->ug_Status.ug_bMassStorageFlag == true) { if (ugd->ug_Status.ug_bInSettingView && ugd->ug_Status.ug_bSettingEntry) { ugd->ug_Status.ug_bMassStorageFlag = false; return; } Evas_Object *newContent = NULL; ugNaviBar *pNavi_toshow = NULL; pNavi_toshow = mf_ug_navi_bar_get_in_use_navi(ugd); ug_mf_retm_if(pNavi_toshow == NULL, "get navigation bar in use failed"); ugd->ug_Status.ug_bMassStorageFlag = false; ugd->ug_MainWindow.ug_pContent = newContent = mf_ug_genlist_create_content_list_view(ugd); mf_ug_navi_bar_set_new_content(ugd->ug_MainWindow.ug_pNaviLayout, newContent); mf_ug_ctrl_bar_set_item_disable(ugd); if (ugd->ug_MainWindow.ug_pTabBar) { mf_ug_tab_bar_set_item_disable(ugd->ug_MainWindow.ug_pTabBar, EINA_FALSE); } } UG_TRACE_END; return; } else if (VCONF_TYPE_INT == vconf_keynode_get_type(key) && (VCONFKEY_USB_STORAGE_STATUS_UMS_ON == vconf_keynode_get_int(key) || VCONFKEY_USB_STORAGE_STATUS_UMS_MMC_ON == vconf_keynode_get_int(key))) { if (ugd->ug_Status.ug_bInSettingView && ugd->ug_Status.ug_bSettingEntry) { ugd->ug_Status.ug_bMassStorageFlag = true; return; } } UG_TRACE_END; return; } int mf_ug_cb_set_mass_storage_state_cb(void *data) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retvm_if(ugd == NULL, -1, "ugData is NULL"); return vconf_notify_key_changed(VCONFKEY_USB_STORAGE_STATUS, mf_ug_cb_mass_storage_changed_cb, ugd); } /****************************** ** Prototype : mf_ug_cb_dir_update_cb ** Description : Samsung ** Input : mf_ug_inotify_event event ** char *name ** void *data ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_dir_update_cb(mf_ug_inotify_event event, char *name, void *data) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugData is NULL"); ug_debug("event : %d, name : %s", event, name); ug_dir_event_t buffer; buffer.event = event; buffer.name = strdup(name); ecore_pipe_write(ugd->ug_UiGadget.ug_pInotifyPipe, &buffer, sizeof(buffer)); UG_TRACE_END; return; } /****************************** ** Prototype : mf_ug_cb_dir_pipe_cb ** Description : Samsung ** Input : void *data ** void *buffer ** unsigned int nbyte ** Output : None ** Return Value : ** Calls : ** Called By : ** ** History : ** 1.Date : 2010/12/10 ** Author : Samsung ** Modification : Created function ** ******************************/ void mf_ug_cb_dir_pipe_cb(void *data, void *buffer, unsigned int nbyte) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); ugNaviBar *pNavi_s = mf_ug_navi_bar_get_in_use_navi(ugd); ug_mf_retm_if(pNavi_s == NULL, "get navigation bar in use failed"); if (ugd->ug_ListPlay.ug_iPlayState != PLAY_STATE_INIT) { return; } if (buffer) { ug_dir_event_t *msg = (ug_dir_event_t *) buffer; ug_debug("event : %d, name : %s", msg->event, msg->name); Evas_Object *newContent = NULL; switch (msg->event) { case UG_MF_INOTI_CREATE: case UG_MF_INOTI_MOVE_IN: /*/1 TODO: add new item to list */ break; case UG_MF_INOTI_DELETE: case UG_MF_INOTI_MOVE_OUT: /*/1 TODO: remove item from list */ break; case UG_MF_INOTI_MODIFY: /*/1 TODO: update item in list */ break; case UG_MF_INOTI_DELETE_SELF: case UG_MF_INOTI_MOVE_SELF: /*/1 TODO: watching directory is removed, change current directory. */ break; default: ug_mf_error("Unknown event"); break; } ugd->ug_MainWindow.ug_pContent = newContent = mf_ug_genlist_create_content_list_view(ugd); mf_ug_navi_bar_set_new_content(ugd->ug_MainWindow.ug_pNaviLayout, newContent); mf_ug_ctrl_bar_set_item_disable(ugd); if (msg->name) { free(msg->name); msg->name = NULL; } } UG_TRACE_END; } #ifdef UG_THUMB_REAL_TIME_UPDATE Eina_Bool mf_ug_cb_thumb_timer_cb(void *data) { ugListItemData *itemData = (ugListItemData *)data; ug_mf_retvm_if(itemData == NULL, EINA_FALSE, "input params is NULL"); ugData *ugd = (ugData *)itemData->ug_pData; ug_mf_retvm_if(ugd == NULL, EINA_FALSE, "ugd is NULL"); bool allright_flag = true; Evas_Object *pContent = NULL; if (ugd->ug_Status.ug_pThumbUpdateTimer == NULL) { return EINA_FALSE; } /****read the realized part of the list****/ if (itemData->ug_pItem) { pContent = elm_object_item_widget_get(itemData->ug_pItem); if (pContent == NULL) { ugd->ug_Status.ug_pThumbUpdateTimer = NULL; return EINA_FALSE; } } else { ugd->ug_Status.ug_pThumbUpdateTimer = NULL; return EINA_FALSE; } Eina_List *realized_list = elm_genlist_realized_items_get(pContent); Eina_List *list = NULL; Elm_Object_Item *it; ugListItemData *item_data = NULL; if (realized_list == NULL) { allright_flag = false; } EINA_LIST_FOREACH(realized_list, list, it) { item_data = (ugListItemData *)elm_object_item_data_get(it); if (item_data == NULL) continue; if (item_data->ug_bRealThumbFlag == false) { ug_debug("Update item: %s", item_data->ug_pItemName->str); if (ecore_file_is_dir(item_data->ug_pItemName->str) == true) { item_data->ug_pThumbPath = strdup(UG_ICON_FOLDER); item_data->ug_bRealThumbFlag = true; elm_object_item_data_set(it, item_data); elm_genlist_item_update(it); } else if (ecore_file_exists(item_data->ug_pItemName->str)) { char *new_thumb = NULL; int thumbnail_type = 0; thumbnail_type = mf_ug_file_attr_get_file_icon(item_data->ug_pItemName->str, NULL, &new_thumb); if (new_thumb) { if (thumbnail_type == MF_UG_THUMBNAIL_TYPE_DEFAULT) { if (item_data->ug_pThumbPath && g_strcmp0(new_thumb, item_data->ug_pThumbPath) == 0) { allright_flag = FALSE; } else { if (item_data->ug_pThumbPath) { free(item_data->ug_pThumbPath); item_data->ug_pThumbPath = NULL; } item_data->ug_pThumbPath = strdup(new_thumb); item_data->ug_bRealThumbFlag = TRUE; elm_object_item_data_set(it, item_data); elm_genlist_item_update(it); free(new_thumb); new_thumb = NULL; } } else { if (item_data->ug_pThumbPath) { free(item_data->ug_pThumbPath); item_data->ug_pThumbPath = NULL; } item_data->ug_pThumbPath = strdup(new_thumb); item_data->ug_bRealThumbFlag = TRUE; elm_object_item_data_set(it, item_data); elm_genlist_item_update(it); free(new_thumb); new_thumb = NULL; } } else { allright_flag = false; } } } } if (allright_flag == false) { return EINA_TRUE; } else { ugd->ug_Status.ug_pThumbUpdateTimer = NULL; return EINA_FALSE; } } #endif void mf_ug_cb_create_new_folder(void *data, Evas_Object * obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; if (ugd->ug_Status.ug_b_NaviPushFlag) { UG_TRACE_END; return; } if (ugd->ug_Status.ug_iMore == UG_MORE_CREATE_FOLDER) return; int ret = 0; ugd->ug_Status.ug_iMore = UG_MORE_CREATE_FOLDER; ret = mf_ug_util_check_disk_space(ugd); if (ret == MYFILE_ERR_NO_FREE_SPACE) { ugd->ug_Status.ug_iMore = UG_MORE_DEFAULT; return; } #ifdef UG_THUMB_REAL_TIME_UPDATE if (ugd->ug_Status.ug_pThumbUpdateTimer != NULL) { ecore_timer_del(ugd->ug_Status.ug_pThumbUpdateTimer); ugd->ug_Status.ug_pThumbUpdateTimer = NULL; } #endif mf_ug_navi_bar_create_new_folder_view(ugd); } void mf_ug_cb_warning_popup_cb(void *data, Evas_Object * obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; Evas_Object *btn = (Evas_Object *)obj; const char *label = elm_object_text_get(btn); if (g_strcmp0(label, MF_UG_LABEL_OK) == 0 ) { evas_object_del(ugd->ug_MainWindow.ug_pNormalPopup); ugd->ug_MainWindow.ug_pNormalPopup = NULL; } } void mf_ug_cb_reach_max_len_cb(void *data, Evas_Object * obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; mf_ug_util_play_vibration(ugd, UG_MAX_LEN_VIB_DURATION); UG_TRACE_END; } void mf_ug_cb_eraser_clicked_cb(void *data, Evas_Object *obj, const char *emission, const char *source) { elm_entry_entry_set(data, ""); } void mf_ug_cb_cancel_new_folder_cb(void *data, Evas_Object * obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; mf_ug_navi_bar_reset_tab_to_main(ugd); ugNaviBar *pNavi_toshow = NULL; pNavi_toshow = mf_ug_navi_bar_get_in_use_navi(ugd); ugd->ug_Status.ug_iMore = UG_MORE_DEFAULT; ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(ugd->ug_MainWindow.ug_pEntry)); evas_object_del(ugd->ug_MainWindow.ug_pEntry); mf_ug_navi_bar_create_default_view(ugd); mf_ug_ctrl_bar_set_item_disable(ugd); } static int __mf_cb_imk_cancel_cb(void *data) { UG_TRACE_BEGIN; ug_mf_retvm_if(data == NULL, false, "data is NULL"); ugData *ugd = (ugData *)data; mf_ug_cb_cancel_new_folder_cb(ugd, NULL, NULL); return 0; } static void __mf_ug_cb_illegal_char_popup_cb(void *data, Evas_Object * obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; Evas_Object *btn = (Evas_Object *)obj; const char *label = elm_object_text_get(btn); if (g_strcmp0(label, MF_UG_LABEL_YES) == 0 ) { UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pNormalPopup); Evas_Object *entry = ugd->ug_MainWindow.ug_pEntry; if (entry != NULL) elm_object_focus_set(entry, EINA_TRUE); } else if (g_strcmp0(label, MF_UG_LABEL_NO) == 0 ) { UG_SAFE_FREE_OBJ(ugd->ug_MainWindow.ug_pNormalPopup); ecore_idler_add((Ecore_Task_Cb) __mf_cb_imk_cancel_cb, ugd); } } static int __mf_ug_cb_ime_mkdir_cb(void *data, char *fileName) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retvm_if(ugd == NULL, MYFILE_ERR_SRC_ARG_INVALID, "ugd is NULL"); ug_mf_retvm_if(fileName == NULL, MYFILE_ERR_SRC_ARG_INVALID, "data is NULL"); ug_mf_retvm_if(ugd->ug_Status.ug_pPath == NULL, MYFILE_ERR_SRC_ARG_INVALID, "ugd is NULL"); ug_mf_retvm_if(ugd->ug_Status.ug_pPath->str == NULL, MYFILE_ERR_SRC_ARG_INVALID, "ugd is NULL"); int ret = 0; const char *message = NULL; const char *left_label = NULL; const char *right_label = NULL; left_label = MF_UG_LABEL_YES; right_label = MF_UG_LABEL_NO; if (strlen(fileName)) { GString *fullpathdir = g_string_new(ugd->ug_Status.ug_pPath->str); if (fullpathdir == NULL) { mf_ug_util_operation_alloc_failed(ugd); return MYFILE_ERR_ALLOCATE_MEMORY_FAIL; } GString *fullpathname = g_string_new(fileName); if (fullpathname == NULL) { g_string_free(fullpathdir, TRUE); fullpathdir = NULL; mf_ug_util_operation_alloc_failed(ugd); return MYFILE_ERR_ALLOCATE_MEMORY_FAIL; } /*check the space */ gchar *test_space = g_strdup(fileName); if (test_space == NULL) { g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; mf_ug_util_operation_alloc_failed(ugd); return MYFILE_ERR_ALLOCATE_MEMORY_FAIL; } if (strlen(g_strchug(test_space)) == 0) { message = MF_UG_LABEL_NAME_INVALID; /*TODO */ mf_ug_popup_create(ugd, UG_POPMODE_TEXT_TWO_BTN, NULL, message, left_label, right_label, NULL, __mf_ug_cb_illegal_char_popup_cb, ugd); g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; g_free(test_space); test_space = NULL; return MYFILE_ERR_DIR_CREATE_FAIL; } g_free(test_space); test_space = NULL; /*check if input name is valid */ if (mf_ug_file_attr_is_valid_name(fullpathname->str) == MYFILE_ERR_INVALID_FILE_NAME) { message = MF_UG_LABEL_ILLEGAL_CHAR; mf_ug_popup_create(ugd, UG_POPMODE_TEXT_TWO_BTN, NULL, message, left_label, right_label, NULL, __mf_ug_cb_illegal_char_popup_cb, ugd); g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; return MYFILE_ERR_DIR_CREATE_FAIL; } GString *fullpath = NULL; char *temp_fullpath = g_strconcat(fullpathdir->str, "/", fullpathname->str, NULL); if (temp_fullpath) { fullpath = g_string_new(temp_fullpath); free(temp_fullpath); temp_fullpath = NULL; if (fullpath == NULL) { g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; mf_ug_util_operation_alloc_failed(ugd); return MYFILE_ERR_ALLOCATE_MEMORY_FAIL; } } else { g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; return MYFILE_ERR_ALLOCATE_MEMORY_FAIL; } /*check whether DIR name is override(DIR name has no extention) */ /*check whether path length is override */ if ((strlen(fullpathdir->str) + strlen(fullpathname->str)) > MYFILE_FILE_PATH_LEN_MAX) { message = MF_UG_LABEL_PATH_REACH_MAX_LEN; mf_ug_popup_create(ugd, UG_POPMODE_TEXT_TWO_BTN, NULL, message, left_label, right_label, NULL, __mf_ug_cb_illegal_char_popup_cb, ugd); g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; ret = MYFILE_ERR_DIR_CREATE_FAIL; } /*check if duplicated name */ else if (mf_ug_file_attr_is_duplicated_name(ugd->ug_Status.ug_pPath->str, fileName) == MYFILE_ERR_DUPLICATED_NAME) { message = MF_UG_LABEL_DUP_NAME; mf_ug_popup_create(ugd, UG_POPMODE_TEXT_TWO_BTN, NULL, message, left_label, right_label, NULL, __mf_ug_cb_illegal_char_popup_cb, ugd); g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; ret = MYFILE_ERR_DIR_CREATE_FAIL; } /*check if DIR name is all spaces */ else { ret = mf_ug_fm_svc_wrapper_create_service(ugd, fullpath); /*check whether operate on read only area */ if (errno == EROFS) { message = MF_UG_LABEL_OPER_READ_ONLY; mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, message, NULL, NULL, NULL, NULL, NULL); ret = MYFILE_ERR_DIR_CREATE_FAIL; } else if (ret) { message = MF_UG_LABEL_CREATE_DIR_FAILED; mf_ug_popup_create(ugd, UG_POPMODE_TEXT, NULL, message, NULL, NULL, NULL, NULL, NULL); } g_string_free(fullpathdir, TRUE); fullpathdir = NULL; g_string_free(fullpathname, TRUE); fullpathname = NULL; g_string_free(fullpath, TRUE); fullpath = NULL; } } else { message = MF_UG_LABEL_EMPTY_FOLDER_NAME; mf_ug_popup_create(ugd, UG_POPMODE_TEXT_TWO_BTN, NULL, message, left_label, right_label, NULL, __mf_ug_cb_illegal_char_popup_cb, ugd); ret = MYFILE_ERR_DIR_CREATE_FAIL; } return ret; } void mf_ug_cb_save_cb(void *data, Evas_Object *obj, void *event_info) { UG_TRACE_BEGIN; ug_mf_retm_if(data == NULL, "data is NULL"); ugData *ugd = (ugData *)data; if (ugd->ug_Status.ug_b_NaviPushFlag) { UG_TRACE_END; return; } int ret = 0; const char *message = NULL; const char *left_label = NULL; const char *right_label = NULL; if (ugd->ug_Status.ug_iMore == UG_MORE_CREATE_FOLDER) { const char *entry_data = NULL; char *name = NULL; /*hide IMF*/ if (ugd->ug_MainWindow.ug_pEntry != NULL) { Ecore_IMF_Context *imf_context = elm_entry_imf_context_get(ugd->ug_MainWindow.ug_pEntry); if (imf_context != NULL) ecore_imf_context_hide(imf_context); } entry_data = elm_entry_entry_get(ugd->ug_MainWindow.ug_pEntry); if (entry_data) { name = elm_entry_markup_to_utf8(entry_data); } else { message = MF_UG_LABEL_GET_NAME_FAILED; left_label = MF_UG_LABEL_YES; right_label = MF_UG_LABEL_NO; mf_ug_popup_create(ugd, UG_POPMODE_TEXT_TWO_BTN, NULL, message, left_label, right_label, NULL, __mf_ug_cb_illegal_char_popup_cb, ugd); return; } if (name == NULL) return; ret = __mf_ug_cb_ime_mkdir_cb(ugd, name); if (ret == 0) { mf_ug_navi_bar_reset_tab_to_main(ugd); ugd->ug_Status.ug_iMore = UG_MORE_DEFAULT; ecore_imf_context_input_panel_hide(elm_entry_imf_context_get(ugd->ug_MainWindow.ug_pEntry)); evas_object_del(ugd->ug_MainWindow.ug_pEntry); mf_ug_navi_bar_create_default_view(ugd); mf_ug_ctrl_bar_set_item_disable(ugd); } if (name != NULL) { free(name); name = NULL; } } } void mf_ug_cb_lcd_state_changed_cb(power_state_e state, void *user_data) { UG_TRACE_BEGIN; ug_mf_retm_if(user_data == NULL, "user_data is NULL"); ugData *ugd = (ugData *)user_data; if(state == POWER_STATE_SCREEN_OFF){ if (0 != ugd->ug_ListPlay.ug_Player) { ug_debug("destory the playing file"); mf_ug_list_play_destory_playing_file(ugd); mf_ug_list_play_update_item_icon(ugd); UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath); } } UG_TRACE_END; }