diff options
Diffstat (limited to 'src/mf-ug-main.c')
-rw-r--r--[-rwxr-xr-x] | src/mf-ug-main.c | 232 |
1 files changed, 151 insertions, 81 deletions
diff --git a/src/mf-ug-main.c b/src/mf-ug-main.c index af80db3..a415596 100755..100644 --- a/src/mf-ug-main.c +++ b/src/mf-ug-main.c @@ -1,30 +1,31 @@ /* + * 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 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, + * 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. * - * See the License for the specific language governing permissions and limitations under the License. */ - #include <stdio.h> #include <sys/time.h> #include <Elementary.h> #include <Ecore_X.h> #include <vconf.h> -#include <visual-svc.h> -#include <media-svc.h> +#include <media_content.h> #include "mf-ug-main.h" #include "mf-ug-fs-util.h" @@ -34,6 +35,7 @@ #include "mf-ug-winset.h" #include "mf-ug-fm-svc-wrapper.h" #include "mf-ug-resource.h" +#include "mf-ug-cb.h" /****************************** ** Prototype : __mf_ug_main_init_data @@ -68,10 +70,12 @@ static void __mf_ug_main_init_data(void *data) ugd->ug_Status.ug_bInstallFlag = true; ugd->ug_Status.ug_bInSettingView = false; ugd->ug_Status.ug_bSettingEntry = false; + ugd->ug_Status.ug_iMore = UG_MORE_DEFAULT; ugd->ug_UiGadget.ug_iSelectMode = SINGLE_FILE_MODE; ugd->ug_UiGadget.ug_iFilterMode = SHOW_ALL_LIST; ugd->ug_UiGadget.ug_pExtension = NULL; + ugd->ug_UiGadget.ug_iDrmFilter = DRM_FILTER_NONE; ugd->ug_UiGadget.ug_iMarkedMode = MARKED_OFF; ugd->ug_UiGadget.ug_pMultiSelectFileList = NULL; @@ -173,11 +177,6 @@ static void __mf_ug_main_free_evas_object(void *data) for (index = 0; index < iNaviListLen; index++) { ugNaviBar *pNavi_s = NULL; pNavi_s = (ugNaviBar *)eina_list_nth(ugd->ug_MainWindow.ug_pNaviBarList, index); - evas_object_del(pNavi_s->ug_pNaviCtrlBar); - evas_object_del(pNavi_s->ug_pContent); - evas_object_del(pNavi_s->ug_pNaviLayout); - evas_object_del(pNavi_s->ug_pNaviBox); - evas_object_del(pNavi_s->ug_pNaviBar); if (pNavi_s->ug_pNaviLabel != NULL) { free(pNavi_s->ug_pNaviLabel); pNavi_s->ug_pNaviLabel = NULL; @@ -189,7 +188,6 @@ static void __mf_ug_main_free_evas_object(void *data) } if (ugd->ug_MainWindow.ug_pTabBar != NULL) { - mf_ug_tab_bar_remove_all_items(ugd->ug_MainWindow.ug_pTabBar); evas_object_del(ugd->ug_MainWindow.ug_pTabBar); ugd->ug_MainWindow.ug_pTabBar = NULL; } @@ -315,7 +313,8 @@ static int __mf_ug_main_set_path_option(void *data, const char *path) return MYFILE_ERR_ALLOCATE_FAIL; } } else if (strncmp(path, UG_SETTING_RINGTONE_PATH, strlen(UG_SETTING_RINGTONE_PATH)) == 0 - || strncmp(path, UG_SETTING_ALERTS_PATH, strlen(UG_SETTING_ALERTS_PATH)) == 0) { + || strncmp(path, UG_SETTING_ALERTS_PATH, strlen(UG_SETTING_ALERTS_PATH)) == 0 + || strncmp(path, UG_SETTING_MSG_ALERTS_PATH, strlen(UG_SETTING_MSG_ALERTS_PATH)) == 0) { /**check whether is setting ringtone or alerts path */ entry_path = strdup(path); @@ -347,9 +346,18 @@ static int __mf_ug_main_set_path_option(void *data, const char *path) } if (ecore_file_exists(entry_path) == false) { - ug_mf_debug("path is not exist"); - free(entry_path); - return MYFILE_ERR_INVALID_FILE_PATH; + + if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE || + ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE) { + error_code = mf_ug_fm_svc_wrapper_create_p(entry_path); + if (error_code != MYFILE_ERR_NONE) { + free(entry_path); + return MYFILE_ERR_INVALID_FILE_PATH; + } + } else { + free(entry_path); + return MYFILE_ERR_INVALID_FILE_PATH; + } } if (ecore_file_is_dir(entry_path) == false) { ug_mf_debug("path is not a directory"); @@ -400,13 +408,13 @@ static void __mf_ug_main_set_select_mode(void *data, const char *select_mode) } else if (!strncmp(select_mode, UG_SELECT_MODE_MULTI_FILE, strlen(select_mode))) { ugd->ug_UiGadget.ug_iSelectMode = MULTI_FILE_MODE; } else if (!strncmp(select_mode, UG_SELECT_MODE_SINGLE_ALL, strlen(select_mode))) { - ugd->ug_UiGadget.ug_iSelectMode = SINGLE_ALL_MODE; - } - - else if (!strncmp(select_mode, UG_SELECT_MODE_MULTI_ALL, strlen(select_mode))) { - + } else if (!strncmp(select_mode, UG_SELECT_MODE_MULTI_ALL, strlen(select_mode))) { ugd->ug_UiGadget.ug_iSelectMode = MULTI_ALL_MODE; + } else if(!strncmp(select_mode, UG_SELECT_MODE_IMPORT, strlen(select_mode))) { + ugd->ug_UiGadget.ug_iSelectMode = IMPORT_MODE; + } else if(!strncmp(select_mode, UG_SELECT_MODE_EXPORT, strlen(select_mode))) { + ugd->ug_UiGadget.ug_iSelectMode = EXPORT_MODE; } else { ugd->ug_UiGadget.ug_iSelectMode = SINGLE_FILE_MODE; } @@ -464,6 +472,9 @@ static void __mf_ug_main_set_filter_mode(void *data, const char *file_filter) } else { ugd->ug_UiGadget.ug_iFilterMode = SHOW_BY_EXTENSION; ugd->ug_UiGadget.ug_pExtension = strdup(file_filter); + if (g_strcmp0(file_filter, "opml") == 0) { + ugd->ug_UiGadget.ug_iImportMode = 1; + } } } else { ugd->ug_UiGadget.ug_iFilterMode = SHOW_ALL_LIST; @@ -520,10 +531,10 @@ static void __mf_ug_main_set_marked_mode(void *data, const char *marked_mode) /****************************** -** Prototype : __mf_ug_main_set_option_status +** Prototype : __mf_ug_main_set_drm_filter_mode ** Description : Samsung ** Input : void *data -** bundle *option +** char *drm_filter ** Output : None ** Return Value : ** Calls : @@ -536,24 +547,71 @@ static void __mf_ug_main_set_marked_mode(void *data, const char *marked_mode) ** ******************************/ -static void __mf_ug_main_set_option_status(void *data, bundle * option) +static void __mf_ug_main_set_drm_filter_mode(void *data, const char *drm_filter) { + UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retm_if(ugd == NULL, "ugd is NULL"); - ug_mf_retm_if(option == NULL, "option is NULL"); - char *key[UG_OPTION_COUNT] = { "path", "select_type", "file_type", "marked_mode"}; - const char *path = NULL, *select_mode = NULL, *filter_mode = NULL, *marked_mode = NULL; + if (drm_filter != NULL) { + if (!strncmp(drm_filter, UG_DRM_FILTER_NONE, strlen(drm_filter))) { + ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_NONE; + } else if (!strncmp(drm_filter, UG_DRM_FILTER_ALL, strlen(drm_filter))) { + ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_ALL; + } else if (!strncmp(drm_filter, UG_DRM_FILTER_WITHOUT_FL, strlen(drm_filter))) { + ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_WITHOUT_FL; + } else { + ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_NONE; + } + } else { + ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_NONE; + } - path = bundle_get_val(option, key[0]); - select_mode = bundle_get_val(option, key[1]); - filter_mode = bundle_get_val(option, key[2]); - marked_mode = bundle_get_val(option, key[3]); + ugd->ug_UiGadget.ug_iDrmFilter = mf_ug_fm_svc_wapper_get_drm_filter(ugd->ug_UiGadget.ug_iDrmFilterMode, ugd->ug_UiGadget.ug_iFileFilter); + UG_TRACE_END; +} + + +/****************************** +** Prototype : __mf_ug_main_set_option_status +** Description : Samsung +** Input : void *data +** service_h service +** Output : None +** Return Value : +** Calls : +** Called By : +** +** History : +** 1.Date : 2010/12/10 +** Author : Samsung +** Modification : Created function +** +******************************/ + +static void __mf_ug_main_set_option_status(void *data, service_h service) +{ + UG_TRACE_BEGIN; + ugData *ugd = (ugData *)data; + ug_mf_retm_if(ugd == NULL, "ugd is NULL"); + char *key[UG_OPTION_COUNT] = { "path", "select_type", "file_type", "marked_mode", "drm_type"}; + char *path = NULL; + char *select_mode = NULL; + char *filter_mode = NULL; + char *marked_mode = NULL; + char *drm_filter_mode = NULL; + + service_get_extra_data(service, key[0], &path); + service_get_extra_data(service, key[1], &select_mode); + service_get_extra_data(service, key[2], &filter_mode); + service_get_extra_data(service, key[3], &marked_mode); + service_get_extra_data(service, key[4], &drm_filter_mode); - __mf_ug_main_set_path_option(ugd, path); __mf_ug_main_set_select_mode(ugd, select_mode); + __mf_ug_main_set_path_option(ugd, path); __mf_ug_main_set_filter_mode(ugd, filter_mode); __mf_ug_main_set_marked_mode(ugd, marked_mode); + __mf_ug_main_set_drm_filter_mode(ugd, drm_filter_mode); UG_TRACE_END; } @@ -575,7 +633,6 @@ static void __mf_ug_main_set_option_status(void *data, bundle * option) ******************************/ static Evas_Object *__mf_ug_main_create_default_layout(Evas_Object *parent, void *data) { - UG_TRACE_BEGIN; ugData *ugd = (ugData *)data; ug_mf_retvm_if(ugd == NULL, NULL, "ugd is NULL"); ug_mf_retvm_if(parent == NULL, NULL, "parent is NULL"); @@ -599,9 +656,9 @@ static Evas_Object *__mf_ug_main_create_default_layout(Evas_Object *parent, void ugNaviBar *pNavi_phone = calloc(1, sizeof(ugNaviBar)); ug_mf_retvm_if(pNavi_phone == NULL, NULL, "pNavi_phone is NULL"); - pNavi_phone->ug_pNaviBar = mf_ug_navi_bar_create_navi_bar(parent); - if (pNavi_phone->ug_pNaviBar == NULL) { - ug_debug("pNavi_phone->ug_pNaviBar is NULL"); + ugd->ug_MainWindow.ug_pNaviBar = mf_ug_navi_bar_create_navi_bar(parent); + if (ugd->ug_MainWindow.ug_pNaviBar == NULL) { + ug_debug("ugd->ug_MainWindow.ug_pNaviBar is NULL"); free(pNavi_phone); pNavi_phone = NULL; UG_TRACE_END; @@ -633,7 +690,7 @@ static Evas_Object *__mf_ug_main_create_default_layout(Evas_Object *parent, void //mf_ug_tab_bar_set_selected_item(pItemPhone); } UG_TRACE_END; - return pNavi_phone->ug_pNaviBar; + return ugd->ug_MainWindow.ug_pNaviBar; } /****************************** @@ -665,24 +722,27 @@ static void __mf_ug_main_start(void *data) if (pContent != NULL) { error_code = mf_ug_util_get_mmc_state(&mmc_card); - if (error_code == 0 && mmc_card == 1) { - ug_debug(" mmc is inserted"); - ugd->ug_Status.ug_iMmcFlag = MMC_ON; - if (ugd->ug_Status.ug_bSettingEntry) { - ug_debug(" entry from setting sounds"); - elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", pContent); + if (!mf_ug_fm_svc_wapper_is_root_path(ugd)) { + elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", pContent); + } else { + if (error_code == 0 && mmc_card == 1) { + ug_debug(" mmc is inserted"); + ugd->ug_Status.ug_iMmcFlag = MMC_ON; + if (ugd->ug_Status.ug_bSettingEntry) { + ug_debug(" entry from setting sounds"); + elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", pContent); + } else { + ug_debug(" not entry from setting sounds"); + evas_object_show(ugd->ug_MainWindow.ug_pTabLayout); + elm_object_part_content_set(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.content", pContent); + elm_object_part_content_set(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.tabbar", ugd->ug_MainWindow.ug_pTabBar); + elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", ugd->ug_MainWindow.ug_pTabLayout); + } } else { - ug_debug(" not entry from setting sounds"); - evas_object_show(ugd->ug_MainWindow.ug_pTabLayout); - elm_object_part_content_set(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.content", pContent); - elm_object_part_content_set(ugd->ug_MainWindow.ug_pTabLayout, "elm.swallow.tabbar", ugd->ug_MainWindow.ug_pTabBar); - elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", ugd->ug_MainWindow.ug_pTabLayout); + ug_debug(" mmc is not inserted"); + elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", pContent); } - } else { - ug_debug(" mmc is not inserted"); - elm_object_part_content_set(ugd->ug_MainWindow.ug_pMainLayout, "elm.swallow.content", pContent); } - mf_ug_navi_bar_create_default_view(ugd); mf_ug_ctrl_bar_set_item_disable(ugd); if (ugd->ug_Status.ug_bMassStorageFlag && ugd->ug_MainWindow.ug_pTabBar) { @@ -705,9 +765,9 @@ static void __mf_ug_main_start(void *data) /****************************** ** Prototype : on_create ** Description : Samsung -** Input : struct ui_gadget *ug +** Input : ui_gadget_h ug ** enum ug_mode mode -** bundle *data +** service_h service ** void *priv ** Output : None ** Return Value : @@ -721,14 +781,13 @@ static void __mf_ug_main_start(void *data) ** ******************************/ -static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle * data, void *priv) +static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h service, void *priv) { UG_TRACE_BEGIN; Evas_Object *win = NULL; ugData *ugd = NULL; - ug_mf_retv_if(NULL == ug, NULL); ug_mf_retv_if(NULL == priv, NULL); ugd = priv; @@ -743,6 +802,7 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle * data, v ugd->ug_Status.ug_bInstallFlag = false; ugd->ug_Status.ug_bMassStorageFlag = false; ugd->ug_Status.ug_bCancelDisableFlag = false; + ugd->ug_UiGadget.ug_iImportMode = 0; ugd->ug_MainWindow.ug_pMainLayout = __mf_ug_main_create_main_layout(ugd->ug_MainWindow.ug_pWindow); ugd->ug_MainWindow.ug_pTabLayout = mf_ug_main_tab_layout_create(ugd->ug_MainWindow.ug_pWindow); ugd->ug_MainWindow.ug_pBackGround = mf_ug_main_create_bg(ugd->ug_MainWindow.ug_pWindow); @@ -766,10 +826,13 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle * data, v #endif { __mf_ug_main_init_data(ugd); - __mf_ug_main_set_option_status(ugd, data); - media_svc_connect(&ugd->ug_Status.ug_pMedia_svc_handle); + __mf_ug_main_set_option_status(ugd, service); + media_content_connect(); + ugd->ug_Status.ug_iThemeType = mf_ug_util_get_theme(); __mf_ug_main_start(ugd); + + power_set_changed_cb(mf_ug_cb_lcd_state_changed_cb, ugd); UG_TRACE_END; return ugd->ug_MainWindow.ug_pMainLayout; } @@ -778,8 +841,8 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle * data, v /****************************** ** Prototype : on_start ** Description : -** Input : struct ui_gadget *ug -** bundle *data +** Input : ui_gadget_h ug +** service_h service ** void *priv ** Output : None ** Return Value : @@ -792,7 +855,7 @@ static void *on_create(struct ui_gadget *ug, enum ug_mode mode, bundle * data, v ** Modification : Created function ** ******************************/ -static void on_start(struct ui_gadget *ug, bundle * data, void *priv) +static void on_start(ui_gadget_h ug, service_h service, void *priv) { } @@ -800,8 +863,8 @@ static void on_start(struct ui_gadget *ug, bundle * data, void *priv) /****************************** ** Prototype : on_pause ** Description : -** Input : struct ui_gadget *ug -** bundle *data +** Input : ui_gadget_h ug +** service_h service ** void *priv ** Output : None ** Return Value : @@ -814,21 +877,22 @@ static void on_start(struct ui_gadget *ug, bundle * data, void *priv) ** Modification : Created function ** ******************************/ -static void on_pause(struct ui_gadget *ug, bundle * data, void *priv) +static void on_pause(ui_gadget_h ug, service_h service, void *priv) { + UG_TRACE_BEGIN; if (!priv) return; ugData *ugd = (ugData *)priv; if (0 != ugd->ug_ListPlay.ug_Player) { - mf_ug_list_play_destory_playing_file(ugd); + //mf_ug_list_play_destory_playing_file(ugd); } } /****************************** ** Prototype : on_resume ** Description : -** Input : struct ui_gadget *ug +** Input : ui_gadget_h ug ** bundle *data ** void *priv ** Output : None @@ -850,7 +914,7 @@ inline bool __mf_ug_main_check_exist(const char *path) return false; } -static void on_resume(struct ui_gadget *ug, bundle * data, void *priv) +static void on_resume(ui_gadget_h ug, service_h service, void *priv) { UG_TRACE_BEGIN; ug_mf_retm_if(NULL == priv, "priv is NULL"); @@ -904,7 +968,7 @@ static void on_resume(struct ui_gadget *ug, bundle * data, void *priv) /****************************** ** Prototype : on_message ** Description : -** Input : struct ui_gadget *ug +** Input : ui_gadget_h ug ** bundle *msg ** bundle *data ** void *priv @@ -919,16 +983,16 @@ static void on_resume(struct ui_gadget *ug, bundle * data, void *priv) ** Modification : Created function ** ******************************/ -static void on_message(struct ui_gadget *ug, bundle * msg, bundle * data, void *priv) +static void on_message(ui_gadget_h ug, service_h msg, service_h service, void *priv) { } /****************************** ** Prototype : on_event ** Description : -** Input : struct ui_gadget *ug +** Input : ui_gadget_h ug ** enum ug_event event -** bundle *data +** service_h service ** void *priv ** Output : None ** Return Value : @@ -941,7 +1005,7 @@ static void on_message(struct ui_gadget *ug, bundle * msg, bundle * data, void * ** Modification : Created function ** ******************************/ -static void on_event(struct ui_gadget *ug, enum ug_event event, bundle * data, void *priv) +static void on_event(ui_gadget_h ug, enum ug_event event, service_h service, void *priv) { UG_TRACE_BEGIN; switch (event) { @@ -977,9 +1041,9 @@ static void on_event(struct ui_gadget *ug, enum ug_event event, bundle * data, v /****************************** ** Prototype : on_key_event ** Description : Samsung -** Input : struct ui_gadget *ug +** Input : ui_gadget_h ug ** enum ug_key_event event -** bundle *data +** service_h service ** void *priv ** Output : None ** Return Value : @@ -993,7 +1057,7 @@ static void on_event(struct ui_gadget *ug, enum ug_event event, bundle * data, v ** ******************************/ -static void on_key_event(struct ui_gadget *ug, enum ug_key_event event, bundle * data, void *priv) +static void on_key_event(ui_gadget_h ug, enum ug_key_event event, service_h service, void *priv) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)priv; @@ -1019,8 +1083,8 @@ static void on_key_event(struct ui_gadget *ug, enum ug_key_event event, bundle * /****************************** ** Prototype : on_destroy ** Description : -** Input : struct ui_gadget *ug -** bundle *data +** Input : ui_gadget_h ug +** service_h service ** void *priv ** Output : None ** Return Value : @@ -1033,7 +1097,7 @@ static void on_key_event(struct ui_gadget *ug, enum ug_key_event event, bundle * ** Modification : Created function ** ******************************/ -static void on_destroy(struct ui_gadget *ug, bundle * data, void *priv) +static void on_destroy(ui_gadget_h ug, service_h service, void *priv) { UG_TRACE_BEGIN; ugData *ugd = (ugData *)priv; @@ -1044,13 +1108,19 @@ static void on_destroy(struct ui_gadget *ug, bundle * data, void *priv) if (ugd->ug_Status.ug_bInstallFlag == true) { mf_ug_util_destory_dir_monitor(ugd); mf_ug_util_destory_mmc_state_cb(); - media_svc_disconnect(ugd->ug_Status.ug_pMedia_svc_handle); + media_content_disconnect(); mf_ug_util_destory_mass_storage_callback(); } if (0 != ugd->ug_ListPlay.ug_Player) { mf_ug_list_play_destory_playing_file(ugd); } + + if (ugd->ug_Status.callback_timer) { + ecore_timer_del(ugd->ug_Status.ug_pThumbUpdateTimer); + ugd->ug_Status.ug_pThumbUpdateTimer = NULL; + } + if (ugd->ug_Status.ug_pThumbUpdateTimer != NULL) { ecore_timer_del(ugd->ug_Status.ug_pThumbUpdateTimer); ugd->ug_Status.ug_pThumbUpdateTimer = NULL; |