[SR][Nabi-se][Nabi_SEN_SE-32480] Unable to select more then one file for attachment...
[apps/core/preloaded/ug-myfile-efl.git] / src / mf-ug-main.c
index b8bd008..591e29e 100644 (file)
 #include "mf-ug-cb.h"
 #include "mf-ug-list-play.h"
 
+#ifdef UG_OPERATION_SELECT_MODE
+
+#define MF_BUNDLE_SELECTION_MODE        "http://tizen.org/appcontrol/data/selection_mode"
+#define MF_BUNDLE_SELECTION_MODE_SINGLE "single"
+#define MF_BUNDLE_SELECTION_MODE_MULTI  "multiple"
+#endif
+
 /******************************
 ** Prototype    : __mf_ug_main_init_data
 ** Description  :
@@ -81,6 +88,9 @@ static void __mf_ug_main_init_data(void *data)
 
        ugd->ug_ListPlay.ug_pPlayFilePath = NULL;
        ugd->ug_ListPlay.ug_iPlayState = PLAY_STATE_INIT;
+#ifdef UG_OPERATION_SELECT_MODE
+       ugd->ug_UiGadget.ug_bOperationSelectFlag = false;
+#endif
 
 
        mf_ug_util_create_dir_monitor(ugd);
@@ -316,6 +326,7 @@ static int __mf_ug_main_set_path_option(void *data, const char *path)
                }
                ugd->ug_Status.ug_bInSettingView = true;
                ugd->ug_Status.ug_bSettingEntry = true;
+               ugd->ug_Status.ug_bRingtoneSet = true;
        } else if (strlen(path) == 1 && strncmp(path, "/", 1)) {
                /**chech the path whether is "/" */
                entry_path = strdup(PHONE_FOLDER);
@@ -341,6 +352,7 @@ static int __mf_ug_main_set_path_option(void *data, const char *path)
                if (ecore_file_exists(entry_path) == false) {
 
                        if (ugd->ug_UiGadget.ug_iSelectMode == EXPORT_MODE ||
+                           ugd->ug_UiGadget.ug_iSelectMode == IMPORT_PATH_SELECT_MODE ||
                            ugd->ug_UiGadget.ug_iSelectMode == IMPORT_MODE ||
                            ugd->ug_UiGadget.ug_iSelectMode == SAVE_MODE ||
                            ugd->ug_UiGadget.ug_iSelectMode == IMPORT_SINGLE) {
@@ -414,6 +426,8 @@ static void __mf_ug_main_set_select_mode(void *data, const char *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_IMPORT_PATH_SELECT, strlen(select_mode))) {
+                       ugd->ug_UiGadget.ug_iSelectMode = IMPORT_PATH_SELECT_MODE;
                } else if(!strncmp(select_mode, UG_SELECT_MODE_EXPORT, strlen(select_mode))) {
                        ugd->ug_UiGadget.ug_iSelectMode = EXPORT_MODE;
                } else if (!strncmp(select_mode, UG_SELECT_MODE_IMPORT_SINGLE, strlen(select_mode))) {
@@ -569,17 +583,37 @@ static void __mf_ug_main_set_drm_filter_mode(void *data, const char *drm_filter)
                } 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;
+                       ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_ALL;
                }
        } else {
-               ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_NONE;
+               ugd->ug_UiGadget.ug_iDrmFilterMode = DRM_FILTER_ALL;
        }
 
        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;
 }
 
+#ifdef UG_OPERATION_SELECT_MODE
+static void __mf_ug_main_set_operation_select_mode(void *data, const char *select_mode)
+{
+       UG_TRACE_BEGIN;
+       ugData *ugd = (ugData *)data;
+       ug_mf_retm_if(ugd == NULL, "ugd is NULL");
 
+       if (select_mode != NULL) {
+               if (!strncmp(select_mode, MF_BUNDLE_SELECTION_MODE_SINGLE, strlen(select_mode))) {
+                       ugd->ug_UiGadget.ug_iSelectMode = SINGLE_FILE_MODE;
+               } else if (!strncmp(select_mode, MF_BUNDLE_SELECTION_MODE_MULTI, strlen(select_mode))) {
+                       ugd->ug_UiGadget.ug_iSelectMode = MULTI_FILE_MODE;
+               } else {
+                       ugd->ug_UiGadget.ug_iSelectMode = SINGLE_FILE_MODE;
+               }
+               ugd->ug_UiGadget.ug_bOperationSelectFlag = true;
+       }
+       UG_TRACE_END;
+
+}
+#endif
 /******************************
 ** Prototype    : __mf_ug_main_set_option_status
 ** Description  : Samsung
@@ -602,12 +636,17 @@ 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;
+#ifdef UG_OPERATION_SELECT_MODE
+       char *key[UG_OPTION_COUNT] = { "path", "select_type", "file_type", "marked_mode", "drm_type", MF_BUNDLE_SELECTION_MODE};
+       char *operation_select_mode = NULL;
+#else
+       char *key[UG_OPTION_COUNT] = { "path", "select_type", "file_type", "marked_mode", "drm_type"};
+#endif
 
        service_get_extra_data(service, key[0], &path);
        service_get_extra_data(service, key[1], &select_mode);
@@ -620,6 +659,10 @@ static void __mf_ug_main_set_option_status(void *data, service_h service)
        __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);
+#ifdef UG_OPERATION_SELECT_MODE
+       service_get_extra_data(service, key[5], &operation_select_mode);
+       __mf_ug_main_set_operation_select_mode(ugd, operation_select_mode);
+#endif
        UG_TRACE_END;
 }
 
@@ -1076,10 +1119,8 @@ static void on_destroy(ui_gadget_h ug, service_h service, void *priv)
                UG_SAFE_FREE_CHAR(ugd->ug_ListPlay.ug_pPlayFilePath);
        }
 
-       if (ugd->ug_Status.ug_pThumbUpdateTimer != NULL) {
-               ecore_timer_del(ugd->ug_Status.ug_pThumbUpdateTimer);
-               ugd->ug_Status.ug_pThumbUpdateTimer = NULL;
-       }
+       UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.ug_pThumbUpdateTimer);
+       UG_SAFE_DEL_ECORE_TIMER(ugd->ug_Status.play_timer);
        __mf_ug_main_free_evas_object(ugd);
        UG_TRACE_END;
 }