TizenRefApp-5723 [Email] Replace app_control API used for modules iteractions 07/59707/1
authorIgor Nazarov <i.nazarov@samsung.com>
Wed, 17 Feb 2016 12:10:43 +0000 (14:10 +0200)
committerIgor Nazarov <i.nazarov@samsung.com>
Wed, 17 Feb 2016 15:26:00 +0000 (17:26 +0200)
Change-Id: I50e5b9edef6d731c754555d939093aadaf4c3f4b

46 files changed:
Project-Files/common/inc/email-common-types.h
Project-Files/common/inc/email-module-core.h
Project-Files/common/inc/email-module-dev.h
Project-Files/common/inc/email-module-launcher.h
Project-Files/common/inc/email-module.h
Project-Files/common/inc/email-params.h [new file with mode: 0644]
Project-Files/common/inc/email-utils.h
Project-Files/common/src/email-module-core.c
Project-Files/common/src/email-module-launcher.c
Project-Files/common/src/email-params.c [new file with mode: 0644]
Project-Files/common/src/email-utils.c
Project-Files/main/email-main.c
Project-Files/modules/account/src/email-account-folder-move.c
Project-Files/modules/account/src/email-account-folder.c
Project-Files/modules/account/src/email-account-list-view.c
Project-Files/modules/account/src/email-account.c
Project-Files/modules/composer/inc/email-composer-initial-data.h
Project-Files/modules/composer/inc/email-composer.h
Project-Files/modules/composer/src/email-composer-initial-data.c
Project-Files/modules/composer/src/email-composer-launcher.c
Project-Files/modules/composer/src/email-composer.c
Project-Files/modules/filter/inc/email-filter.h
Project-Files/modules/filter/src/email-filter-edit-view.c
Project-Files/modules/filter/src/email-filter.c
Project-Files/modules/mailbox/inc/email-mailbox-ug-util.h
Project-Files/modules/mailbox/inc/email-mailbox.h
Project-Files/modules/mailbox/src/email-mailbox-item.c
Project-Files/modules/mailbox/src/email-mailbox-list.c
Project-Files/modules/mailbox/src/email-mailbox-more-menu.c
Project-Files/modules/mailbox/src/email-mailbox-ug-util.c
Project-Files/modules/mailbox/src/email-mailbox.c
Project-Files/modules/setting/src/email-setting-utils.c
Project-Files/modules/setting/src/email-setting.c
Project-Files/modules/setting/src/email-view-notification.c
Project-Files/modules/setting/src/email-view-setting.c
Project-Files/modules/viewer/inc/email-viewer-initial-data.h
Project-Files/modules/viewer/inc/email-viewer-util.h
Project-Files/modules/viewer/inc/email-viewer.h
Project-Files/modules/viewer/src/email-viewer-contents.c
Project-Files/modules/viewer/src/email-viewer-ext-gesture.c
Project-Files/modules/viewer/src/email-viewer-initial-data.c
Project-Files/modules/viewer/src/email-viewer-more-menu-callback.c
Project-Files/modules/viewer/src/email-viewer-more-menu.c
Project-Files/modules/viewer/src/email-viewer-recipient.c
Project-Files/modules/viewer/src/email-viewer-util.c
Project-Files/modules/viewer/src/email-viewer.c

index e5160cb..f9b2996 100644 (file)
 #include "email-colors.h"
 
 #ifndef EMAIL_API
+#ifdef SHARED_MODULES_FEATURE
 #define EMAIL_API __attribute__ ((visibility("default")))
+#else
+#define EMAIL_API
 #endif
+#endif
+
 
 #define EMAIL_FILEPATH_MAX             4096    // PATH_MAX in limits.h
 #define EMAIL_FILENAME_MAX             255     // NAME_MAX in limits.h
 #define MIN_FREE_SPACE                 (5) /* MB */
 #define MAX_ACCOUNT_COUNT              10
 
+#define EMAIL_BUFF_SIZE_TIN 16
+#define EMAIL_BUFF_SIZE_SML 32
+#define EMAIL_BUFF_SIZE_MID 64
+#define EMAIL_BUFF_SIZE_BIG 128
+#define EMAIL_BUFF_SIZE_HUG 256
+#define EMAIL_BUFF_SIZE_4K 4096
+
 /* define bundle key */
 #define EMAIL_BUNDLE_KEY_ACCOUNT_TYPE                          "ACCOUNT_TYPE"
 #define EMAIL_BUNDLE_KEY_ACCOUNT_ID                                    "ACCOUNT_ID"
index 38a75ca..fed48ea 100644 (file)
@@ -37,7 +37,7 @@ typedef struct _email_view email_view_t;
  * @return 0 - on success,
  *             negative value - on error
  */
-EMAIL_API int email_module_send_result(email_module_t *module, app_control_h result);
+EMAIL_API int email_module_send_result(email_module_t *module, email_params_h result);
 
 /**
  * @brief Makes destroy request to listener
@@ -64,7 +64,7 @@ EMAIL_API int email_module_make_destroy_request(email_module_t *module);
  *             NULL - on error
  */
 EMAIL_API email_module_h email_module_create_child(email_module_t *module, email_module_type_e module_type,
-               app_control_h params, email_module_listener_t *listener);
+               email_params_h params, email_module_listener_t *listener);
 
 /**
  * @brief Creates view for specified module
index 75398b6..eae1a76 100644 (file)
@@ -83,7 +83,7 @@ struct _email_module
         * @return 0 - on success,
         *              negative value - on error
         */
-       int (*create) (email_module_t *self, app_control_h params);
+       int (*create) (email_module_t *self, email_params_h params);
 
        /**
         * @brief Virtual function which is called from base implementation to destroy the concrete module
@@ -111,7 +111,7 @@ struct _email_module
         *
         * @param[in]   self            pointer to this module
         */
-       void (*on_message) (email_module_t *self, app_control_h msg);
+       void (*on_message) (email_module_t *self, email_params_h msg);
 
        /**
         * @brief Virtual function to handle events from module manager
index 396c262..1010430 100644 (file)
@@ -53,7 +53,7 @@ typedef struct _email_launch_app_listener
         * @param[in]   result          result status of the reply
         * @param[in]   reply           reply message send back from the application
         */
-       void (*reply_cb) (void *data, app_control_result_e result, app_control_h reply);
+       void (*reply_cb) (void *data, app_control_result_e result, email_params_h reply);
 
        /**
         * @brief Callback which is used to signal close of the application
@@ -129,7 +129,7 @@ typedef struct _email_module email_module_t;
  *             negative value - on error
  */
 EMAIL_API int email_module_launch_app(email_module_t *module, email_launch_app_type_e app_type,
-               app_control_h params, email_launched_app_listener_t *listener);
+               email_params_h params, email_launched_app_listener_t *listener);
 
 /**
  * @brief Launches the attach panel
index be9311c..76a5111 100644 (file)
 #ifndef _EMAIL_MODULE_H_
 #define _EMAIL_MODULE_H_
 
-#include <app_control.h>
 #include <Evas.h>
 
-#include "email-common-types.h"
+#include "email-params.h"
 
 /**
  * Opaque handle of the email module
@@ -91,7 +90,7 @@ typedef struct _email_module_listener
         * @param[in]   module          sender module
         * @param[in]   result          result message send back to the listener
         */
-       void (*result_cb) (void *data, email_module_h module, app_control_h result);
+       void (*result_cb) (void *data, email_module_h module, email_params_h result);
 
        /**
         * @brief Callback which is used to send destroy request to the listener
@@ -189,7 +188,7 @@ EMAIL_API int email_module_mgr_send_event(email_module_event_e event);
  *             NULL - on error
  */
 EMAIL_API email_module_h email_module_mgr_create_root_module(email_module_type_e module_type,
-               app_control_h params, email_module_listener_t *listener);
+               email_params_h params, email_module_listener_t *listener);
 
 /**
  * @brief Checks weather the module manager is in the middle of switching views
@@ -247,6 +246,6 @@ EMAIL_API int email_module_destroy_no_pop(email_module_h module);
  * @return 0 - on success,
  *             negative value - on error
  */
-EMAIL_API int email_module_send_message(email_module_h module, app_control_h msg);
+EMAIL_API int email_module_send_message(email_module_h module, email_params_h msg);
 
 #endif /* _EMAIL_MODULE_H_ */
diff --git a/Project-Files/common/inc/email-params.h b/Project-Files/common/inc/email-params.h
new file mode 100644 (file)
index 0000000..d882f42
--- /dev/null
@@ -0,0 +1,60 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 __EMAIL_PARAMS__
+#define __EMAIL_PARAMS__
+
+#include "email-common-types.h"
+
+#include <bundle.h>
+#include <app_control.h>
+
+typedef bundle *email_params_h;
+
+EMAIL_API bool email_params_create(email_params_h *params);
+EMAIL_API void email_params_free(email_params_h *params);
+
+EMAIL_API bool email_params_clone(email_params_h *dst, email_params_h src);
+EMAIL_API bool email_params_from_app_control(email_params_h *params, app_control_h app_control);
+EMAIL_API bool email_params_to_app_control(email_params_h params, app_control_h *app_control);
+
+EMAIL_API bool email_params_set_operation(email_params_h params, const char *operation);
+EMAIL_API bool email_params_set_uri(email_params_h params, const char *uri);
+EMAIL_API bool email_params_set_mime(email_params_h params, const char *mime);
+
+EMAIL_API bool email_params_get_operation(email_params_h params, const char **result);
+EMAIL_API bool email_params_get_operation_opt(email_params_h params, const char **result);
+EMAIL_API bool email_params_get_uri(email_params_h params, const char **result);
+EMAIL_API bool email_params_get_uri_opt(email_params_h params, const char **result);
+EMAIL_API bool email_params_get_mime(email_params_h params, const char **result);
+EMAIL_API bool email_params_get_mime_opt(email_params_h params, const char **result);
+
+EMAIL_API bool email_params_add_int(email_params_h params, const char *key, int value);
+EMAIL_API bool email_params_add_str(email_params_h params, const char *key, const char *value);
+EMAIL_API bool email_params_add_str_array(email_params_h params, const char *key,
+               const char **value, int array_length);
+
+EMAIL_API bool email_params_get_is_array(email_params_h params, const char *key, bool *is_array);
+
+EMAIL_API bool email_params_get_int(email_params_h params, const char *key, int *result);
+EMAIL_API bool email_params_get_int_opt(email_params_h params, const char *key, int *result);
+EMAIL_API bool email_params_get_str(email_params_h params, const char *key, const char **result);
+EMAIL_API bool email_params_get_str_opt(email_params_h params, const char *key, const char **result);
+EMAIL_API bool email_params_get_str_array(email_params_h params, const char *key,
+               const char ***result, int *array_length);
+
+#endif /* __EMAIL_PARAMS__ */
index f6db573..b9b1a97 100644 (file)
 #include <errno.h>
 #include <system_settings.h>
 #include <efl_extension.h>
-#include <app_control.h>
 
 #include "email-common-types.h"
 #include "email-debug.h"
 #include "email-editfield-utils.h"
 #include "email-module-dev.h"
+#include "email-params.h"
 
 #define DEFAULT_CHARSET "UTF-8"
 #define EMAIL_DATETIME_FORMAT_12 "yMdhm"
@@ -444,19 +444,6 @@ EMAIL_API Eina_Bool email_util_get_rgb_string(char *buf, int size, unsigned char
 EMAIL_API void email_set_need_restart_flag(bool value);
 EMAIL_API bool email_get_need_restart_flag();
 
-EMAIL_API bool email_params_create(app_control_h *params);
-EMAIL_API void email_params_free(app_control_h *params);
-EMAIL_API bool email_params_operation_set(app_control_h params, const char *operation);
-EMAIL_API bool email_params_uri_set(app_control_h params, const char *uri);
-
-EMAIL_API bool email_params_add_int(app_control_h params, const char *key, int value);
-EMAIL_API bool email_params_add_str(app_control_h params, const char *key, const char *value);
-
-EMAIL_API bool email_params_get_int(app_control_h params, const char *key, int *result);
-EMAIL_API bool email_params_get_int_opt(app_control_h params, const char *key, int *result);
-EMAIL_API bool email_params_get_str(app_control_h params, const char *key, char *result, int result_size);
-EMAIL_API bool email_params_get_str_opt(app_control_h params, const char *key, char *result, int result_size);
-
 EMAIL_API int email_preview_attachment_file(email_module_t *module, const char *path, email_launched_app_listener_t *listener);
 EMAIL_API email_ext_save_err_type_e email_prepare_temp_file_path(const int index,const char *tmp_root_dir, const char *src_file_path, char **dst_file_path);
 /*
index d5c3bde..d7d826e 100644 (file)
@@ -146,7 +146,7 @@ static email_module_t *_email_module_mgr_alloc_module(email_module_type_e module
  *
  * @return handle to the module or NULL on error
  */
-static email_module_h _email_module_mgr_create_module(email_module_type_e module_type, app_control_h params,
+static email_module_h _email_module_mgr_create_module(email_module_type_e module_type, email_params_h params,
                email_module_listener_t *listener, email_module_t *parent);
 
 /**
@@ -225,7 +225,7 @@ static void _email_module_mgr_pop_job_cb(void *data);
  * @return 0 on success,
  *             negative value on error
  */
-static int _email_module_init(email_module_t *module, app_control_h params,
+static int _email_module_init(email_module_t *module, email_params_h params,
                email_module_listener_t *listener, email_module_t *parent, Elm_Object_Item *parent_navi_item);
 
 /**
@@ -696,7 +696,7 @@ int email_module_mgr_send_event(email_module_event_e event)
 }
 
 email_module_h email_module_mgr_create_root_module(email_module_type_e module_type,
-               app_control_h params, email_module_listener_t *listener)
+               email_params_h params, email_module_listener_t *listener)
 {
        debug_enter();
 
@@ -802,7 +802,7 @@ email_module_t *_email_module_mgr_alloc_module(email_module_type_e module_type)
 }
 #endif
 
-email_module_h _email_module_mgr_create_module(email_module_type_e module_type, app_control_h params,
+email_module_h _email_module_mgr_create_module(email_module_type_e module_type, email_params_h params,
                email_module_listener_t *listener, email_module_t *parent)
 {
        debug_enter();
@@ -1184,7 +1184,7 @@ void _email_module_mgr_pop_job_cb(void *data)
  * email_module
  */
 
-int _email_module_init(email_module_t *module, app_control_h params,
+int _email_module_init(email_module_t *module, email_params_h params,
                email_module_listener_t *listener, email_module_t *parent, Elm_Object_Item *parent_navi_item)
 {
        debug_enter();
@@ -1481,7 +1481,7 @@ void _email_module_do_send_event(email_module_t *module, email_module_event_e ev
        }
 }
 
-int email_module_send_message(email_module_h module_h, app_control_h msg)
+int email_module_send_message(email_module_h module_h, email_params_h msg)
 {
        debug_enter();
        /* Check input arguments */
@@ -1508,7 +1508,7 @@ int email_module_send_message(email_module_h module_h, app_control_h msg)
        return 0;
 }
 
-int email_module_send_result(email_module_t *module, app_control_h result)
+int email_module_send_result(email_module_t *module, email_params_h result)
 {
        debug_enter();
        /* Check input arguments */
@@ -1563,7 +1563,7 @@ int _email_module_make_destroy_request(email_module_t *module)
 }
 
 email_module_h email_module_create_child(email_module_t *module, email_module_type_e module_type,
-               app_control_h params, email_module_listener_t *listener)
+               email_params_h params, email_module_listener_t *listener)
 {
        debug_enter();
        /* Check input arguments */
index f3544d2..83151de 100644 (file)
@@ -136,7 +136,7 @@ static void _email_module_attach_panel_event_cb(attach_panel_h attach_panel,
                void *user_data);
 
 int email_module_launch_app(email_module_t *module, email_launch_app_type_e app_type,
-               app_control_h params, email_launched_app_listener_t *listener)
+               email_params_h params, email_launched_app_listener_t *listener)
 {
        debug_enter();
        /* Check state and input arguments */
@@ -155,12 +155,11 @@ int email_module_launch_app(email_module_t *module, email_launch_app_type_e app_
 
        /* Dummy loop to handle exceptions and cleanup */
        while (1) {
-               /* Compile-time warning is preferred over undefined behaviour in run-time. */
+               /* Compile-time warning is preferred over undefined behavior in run-time. */
                int r;
 
-               r = app_control_clone(&module->_launched_app, params);
-               if (r != APP_CONTROL_ERROR_NONE) {
-                       debug_error("Failed to clone launch parameters: %d", r);
+               if (!email_params_to_app_control(params, &module->_launched_app)) {
+                       debug_error("Failed to convert parameters.");
                        break;
                }
 
@@ -507,7 +506,13 @@ void _email_module_app_reply_cb(app_control_h request, app_control_h reply,
        default:
                /* In other cases - forward reply to listener */
                if (module->_app_listener.reply_cb) {
-                       module->_app_listener.reply_cb(module->_app_listener.cb_data, result, reply);
+                       email_params_h params = NULL;
+                       if (email_params_from_app_control(&params, reply)) {
+                               module->_app_listener.reply_cb(module->_app_listener.cb_data, result, params);
+                               email_params_free(&params);
+                       } else {
+                               debug_error("Reply convert error!");
+                       }
                        module->_app_listener.reply_cb = NULL;
                }
        }
diff --git a/Project-Files/common/src/email-params.c b/Project-Files/common/src/email-params.c
new file mode 100644 (file)
index 0000000..b54d029
--- /dev/null
@@ -0,0 +1,470 @@
+/*
+ * Copyright (c) 2009-2015 Samsung Electronics Co., Ltd All Rights Reserved
+ *
+ * Licensed under the Apache License, Version 2.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.apache.org/licenses/LICENSE-2.0
+ *
+ * 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 "email-params.h"
+
+#include "email-debug.h"
+
+#define EMAIL_PARAMS_OPERATION "__EMAIL_PARAMS_OPERATION__"
+#define EMAIL_PARAMS_URI               "__EMAIL_PARAMS_URI__"
+#define EMAIL_PARAMS_MIME              "__EMAIL_PARAMS_MIME__"
+
+static inline bool _email_params_get_str_impl(email_params_h params, const char *key, const char **result, bool opt);
+static inline bool _email_params_get_int_impl(email_params_h params, const char *key, int *result, bool opt);
+
+static bool _app_control_extra_data_cb(app_control_h app_control, const char *key, void *user_data);
+static void _bundle_extra_data_cb(const char *key, const int type,
+               const bundle_keyval_t *kv, void *user_data);
+
+static inline bool _email_params_get_str_impl(email_params_h params, const char *key, const char **result, bool opt)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(!key, false, "key is NULL");
+       retvm_if(!result, false, "result is NULL");
+
+       char *str = NULL;
+
+       int ret = bundle_get_str(params, key, &str);
+       if (ret != BUNDLE_ERROR_NONE) {
+               if (ret == BUNDLE_ERROR_KEY_NOT_AVAILABLE) {
+                       if (opt) {
+                               return true;
+                       }
+                       debug_log("key(%s) not available.", key);
+               } else {
+                       debug_error("bundle_get_str(%s) failed! ret = %d", key, ret);
+               }
+               return false;
+       }
+       retvm_if(!str, false, "buff is NULL");
+
+       *result = str;
+
+       return true;
+}
+
+static inline bool _email_params_get_int_impl(email_params_h params, const char *key, int *result, bool opt)
+{
+       const char *buff = NULL;
+
+       if (!_email_params_get_str_impl(params, key, &buff, opt)) {
+               return false;
+       }
+
+       if (buff) {
+               *result = atoi(buff);
+       }
+
+       return true;
+}
+
+EMAIL_API bool email_params_create(email_params_h *params)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(*params, false, "*params is not NULL");
+
+       bundle *bundle = bundle_create();
+       if (!bundle) {
+               debug_error("bundle_create() failed!");
+               return false;
+       }
+
+       *params = bundle;
+
+       return true;
+}
+
+EMAIL_API void email_params_free(email_params_h *params)
+{
+       retm_if(!params, "params is NULL");
+
+       if (*params) {
+               int ret = bundle_free(*params);
+               warn_if(ret != BUNDLE_ERROR_NONE, "bundle_free() failed! ret = %d", ret);
+
+               *params = NULL;
+       }
+}
+
+EMAIL_API bool email_params_clone(email_params_h *dst, email_params_h src)
+{
+       retvm_if(!dst, false, "dst is NULL");
+       retvm_if(*dst, false, "*dst is not NULL");
+       retvm_if(!src, false, "src is NULL");
+
+       *dst = bundle_dup(src);
+
+       return (*dst != NULL);
+}
+
+static bool _app_control_extra_data_cb(app_control_h app_control, const char *key, void *user_data)
+{
+       email_params_h *params = user_data;
+
+       bool is_array = false;
+
+       int ret = app_control_is_extra_data_array(app_control, key, &is_array);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               debug_error("app_control_is_extra_data_array() failed! ret = %d", ret);
+               email_params_free(params);
+               return false;
+       }
+
+       bool result = false;
+
+       if (is_array) {
+               int i = 0;
+               char **array = NULL;
+               int array_length = 0;
+
+               ret = app_control_get_extra_data_array(app_control, key, &array, &array_length);
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_get_extra_data_array() failed! ret = %d", ret);
+               } else {
+                       result = email_params_add_str_array(*params, key, (const char **)array, array_length);
+               }
+
+               for (i = 0; i < array_length; ++ array_length) {
+                       free(array[i]);
+               }
+               free(array);
+
+       } else {
+               char *str = NULL;
+
+               ret = app_control_get_extra_data(app_control, key, &str);
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_get_extra_data() failed! ret = %d", ret);
+               } else {
+                       result = email_params_add_str(*params, key, str);
+               }
+
+               free(str);
+       }
+
+       if (!result) {
+               email_params_free(params);
+       }
+
+       return result;
+}
+
+EMAIL_API bool email_params_from_app_control(email_params_h *params, app_control_h app_control)
+{
+       retvm_if(!app_control, false, "app_control is NULL");
+
+       char *operation = NULL;
+       char *uri = NULL;
+       char *mime = NULL;
+
+       bool result = false;
+
+       while (true) {
+               int ret = APP_CONTROL_ERROR_NONE;
+
+               ret = app_control_get_operation(app_control, &operation);
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_get_operation() failed! ret = %d", ret);
+                       break;
+               }
+               ret = app_control_get_uri(app_control, &uri);
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_get_uri() failed! ret = %d", ret);
+                       break;
+               }
+               ret = app_control_get_mime(app_control, &mime);
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_get_mime() failed! ret = %d", ret);
+                       break;
+               }
+
+               if (email_params_create(params) &&
+                       (!operation || email_params_set_operation(*params, operation)) &&
+                       (!uri || email_params_set_uri(*params, uri)) &&
+                       (!mime || email_params_set_mime(*params, mime))) {
+
+                       ret = app_control_foreach_extra_data(app_control, _app_control_extra_data_cb, params);
+                       if (ret != APP_CONTROL_ERROR_NONE) {
+                               debug_error("app_control_foreach_extra_data() failed! ret = %d", ret);
+                               break;
+                       }
+
+                       if (*params) {
+                               result = true;
+                       }
+               }
+
+               break;
+       }
+
+       if (!result) {
+               email_params_free(params);
+       }
+
+       free(operation);
+       free(uri);
+       free(mime);
+
+       return result;
+}
+
+static void _bundle_extra_data_cb(const char *key, const int type,
+               const bundle_keyval_t *kv, void *user_data)
+{
+       app_control_h *app_control = user_data;
+       if (!*app_control) {
+               return;
+       }
+
+       bool ok = false;
+
+       switch (type) {
+       case BUNDLE_TYPE_STR:
+       {
+               const char *val = NULL;
+               size_t size = 0;
+
+               int ret = bundle_keyval_get_basic_val((bundle_keyval_t *)kv, (void **)&val, &size);
+               if (ret != BUNDLE_ERROR_NONE) {
+                       debug_error("bundle_keyval_get_basic_val() failed! ret = %d", ret);
+                       break;
+               }
+
+               if (strcmp(key, EMAIL_PARAMS_OPERATION) == 0) {
+                       ret = app_control_set_operation(*app_control, val);
+               } else if (strcmp(key, EMAIL_PARAMS_URI) == 0) {
+                       ret = app_control_set_uri(*app_control, val);
+               } else if (strcmp(key, EMAIL_PARAMS_MIME) == 0) {
+                       ret = app_control_set_mime(*app_control, val);
+               } else {
+                       ret = app_control_add_extra_data(*app_control, key, val);
+               }
+
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_***() failed! ret = %d", ret);
+                       break;
+               }
+
+               ok = true;
+               break;
+       }
+       case BUNDLE_TYPE_STR_ARRAY:
+       {
+               const char **array = NULL;
+               unsigned int array_len = 0;
+               size_t *array_element_size = 0;
+
+               if ((strcmp(key, EMAIL_PARAMS_OPERATION) == 0) ||
+                       (strcmp(key, EMAIL_PARAMS_URI) == 0) ||
+                       (strcmp(key, EMAIL_PARAMS_MIME) == 0)) {
+                       debug_log("Key %s skipped.", key);
+                       ok = true;
+                       break;
+               }
+
+               int ret = bundle_keyval_get_array_val((bundle_keyval_t *)kv, (void ***)&array,
+                               &array_len, &array_element_size);
+               if (ret != BUNDLE_ERROR_NONE) {
+                       debug_error("bundle_keyval_get_array_val() failed! ret = %d", ret);
+                       break;
+               }
+
+               ret = app_control_add_extra_data_array(*app_control, key, array, array_len);
+               if (ret != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_add_extra_data_array() failed! ret = %d", ret);
+                       break;
+               }
+
+               ok = true;
+               break;
+       }
+       default:
+               debug_log("Key %s skipped.", key);
+               ok = true;
+               break;
+       }
+
+       if (!ok) {
+               app_control_destroy(*app_control);
+               *app_control = NULL;
+       }
+}
+
+EMAIL_API bool email_params_to_app_control(email_params_h params, app_control_h *app_control)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(!app_control, false, "app_control is NULL");
+       retvm_if(*app_control, false, "*app_control is not NULL");
+
+       int ret = app_control_create(app_control);
+       if (ret != APP_CONTROL_ERROR_NONE) {
+               debug_error("app_control_create() failed! ret = %d", ret);
+               return false;
+       }
+
+       bundle_foreach(params, _bundle_extra_data_cb, app_control);
+
+       if (!*app_control) {
+               return false;
+       }
+
+       return true;
+}
+
+EMAIL_API bool email_params_set_operation(email_params_h params, const char *operation)
+{
+       return email_params_add_str(params, EMAIL_PARAMS_OPERATION, operation);
+}
+
+EMAIL_API bool email_params_set_uri(email_params_h params, const char *uri)
+{
+       return email_params_add_str(params, EMAIL_PARAMS_URI, uri);
+}
+
+EMAIL_API bool email_params_set_mime(email_params_h params, const char *mime)
+{
+       return email_params_add_str(params, EMAIL_PARAMS_MIME, mime);
+}
+
+EMAIL_API bool email_params_get_operation(email_params_h params, const char **result)
+{
+       return _email_params_get_str_impl(params, EMAIL_PARAMS_OPERATION, result, false);
+}
+
+EMAIL_API bool email_params_get_operation_opt(email_params_h params, const char **result)
+{
+       return _email_params_get_str_impl(params, EMAIL_PARAMS_OPERATION, result, true);
+}
+
+EMAIL_API bool email_params_get_uri(email_params_h params, const char **result)
+{
+       return _email_params_get_str_impl(params, EMAIL_PARAMS_URI, result, false);
+}
+
+EMAIL_API bool email_params_get_uri_opt(email_params_h params, const char **result)
+{
+       return _email_params_get_str_impl(params, EMAIL_PARAMS_URI, result, true);
+}
+
+EMAIL_API bool email_params_get_mime(email_params_h params, const char **result)
+{
+       return _email_params_get_str_impl(params, EMAIL_PARAMS_MIME, result, false);
+}
+
+EMAIL_API bool email_params_get_mime_opt(email_params_h params, const char **result)
+{
+       return _email_params_get_str_impl(params, EMAIL_PARAMS_MIME, result, true);
+}
+
+EMAIL_API bool email_params_add_int(email_params_h params, const char *key, int value)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(!key, false, "key is NULL");
+
+       char s_value[EMAIL_BUFF_SIZE_SML] = {'\0'};
+       snprintf(s_value, sizeof(s_value), "%d", value);
+
+       int ret = bundle_add_str(params, key, s_value);
+       retvm_if(ret != BUNDLE_ERROR_NONE, false, "bundle_add_str() failed! ret = %d", ret);
+
+       return true;
+}
+
+EMAIL_API bool email_params_add_str(email_params_h params, const char *key, const char *value)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(!key, false, "key is NULL");
+       retvm_if(!value, false, "value is NULL");
+
+       int ret = bundle_add_str(params, key, value);
+       retvm_if(ret != BUNDLE_ERROR_NONE, false, "bundle_add_str() failed! ret = %d", ret);
+
+       return true;
+}
+
+EMAIL_API bool email_params_add_str_array(email_params_h params, const char *key,
+               const char **value, int array_length)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(!key, false, "key is NULL");
+       retvm_if(!value, false, "value is NULL");
+       retvm_if(array_length > 0, false, "array_length: %d", array_length);
+
+       int ret = bundle_add_str_array(params, key, value, array_length);
+       retvm_if(ret != BUNDLE_ERROR_NONE, false, "bundle_add_str_array() failed! ret = %d", ret);
+
+       return true;
+}
+
+EMAIL_API bool email_params_get_is_array(email_params_h params, const char *key, bool *is_array)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(!key, false, "key is NULL");
+       retvm_if(!is_array, false, "is_array is NULL");
+
+       int type = bundle_get_type(params, key);
+
+       if (type == BUNDLE_TYPE_STR_ARRAY) {
+               *is_array = true;
+               return true;
+       }
+
+       if (type != BUNDLE_TYPE_STR) {
+               return false;
+       }
+
+       *is_array = false;
+
+       return true;
+}
+
+EMAIL_API bool email_params_get_int(email_params_h params, const char *key, int *result)
+{
+       return _email_params_get_int_impl(params, key, result, false);
+}
+
+EMAIL_API bool email_params_get_int_opt(email_params_h params, const char *key, int *result)
+{
+       return _email_params_get_int_impl(params, key, result, true);
+}
+
+EMAIL_API bool email_params_get_str(email_params_h params, const char *key, const char **result)
+{
+       return _email_params_get_str_impl(params, key, result, false);
+}
+
+EMAIL_API bool email_params_get_str_opt(email_params_h params, const char *key, const char **result)
+{
+       return _email_params_get_str_impl(params, key, result, true);
+}
+
+EMAIL_API bool email_params_get_str_array(email_params_h params, const char *key,
+               const char ***result, int *array_length)
+{
+       retvm_if(!params, false, "params is NULL");
+       retvm_if(!key, false, "key is NULL");
+       retvm_if(!result, false, "result is NULL");
+       retvm_if(!array_length, false, "array_length is NULL");
+
+       *result = bundle_get_str_array(params, key, array_length);
+       if (!*result) {
+               debug_error("bundle_get_str_array() failed!");
+               return false;
+       }
+
+       return true;
+}
index 4f3ee60..5889d39 100644 (file)
 #define EMAIL_STR_SIZE 10
 #define EMAIL_DELIMETER_SIZE 2
 
-#define EMAIL_BUFF_SIZE_TIN 16
-#define EMAIL_BUFF_SIZE_SML 32
-#define EMAIL_BUFF_SIZE_MID 64
-#define EMAIL_BUFF_SIZE_BIG 128
-#define EMAIL_BUFF_SIZE_HUG 256
-#define EMAIL_BUFF_SIZE_4K 4096
-
 EMAIL_API const char *locale = NULL;
 static bool is_24_hr_format = false;
 
@@ -2923,181 +2916,17 @@ EMAIL_API bool email_get_need_restart_flag()
        return s_info.need_restart_flag;
 }
 
-EMAIL_API bool email_params_create(app_control_h *params)
-{
-       retvm_if(!params, false, "params is NULL");
-       retvm_if(*params, false, "*params is not NULL");
-
-       int ret = APP_CONTROL_ERROR_NONE;
-
-       ret = app_control_create(params);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_error("app_control_create() failed! ret = %d", ret);
-               *params = NULL;
-               return false;
-       }
-
-       return true;
-}
-
-EMAIL_API void email_params_free(app_control_h *params)
-{
-       retm_if(!params, "params is NULL");
-
-       if (*params) {
-               int ret = APP_CONTROL_ERROR_NONE;
-
-               ret = app_control_destroy(*params);
-               warn_if(ret != APP_CONTROL_ERROR_NONE, "app_control_destroy() failed! ret = %d", ret);
-
-               *params = NULL;
-       }
-}
-
-EMAIL_API bool email_params_operation_set(app_control_h params, const char *operation)
-{
-       retvm_if(!params, false, "params is NULL");
-       retvm_if(!operation, false, "operation is NULL");
-
-       int ret = APP_CONTROL_ERROR_NONE;
-
-       ret = app_control_set_operation(params, operation);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, false, "app_control_set_operation failed: %d", ret);
-
-       return true;
-}
-
-EMAIL_API bool email_params_uri_set(app_control_h params, const char *uri)
-{
-       retvm_if(!params, false, "params is NULL");
-       retvm_if(!uri, false, "operation is NULL");
-
-       int ret = APP_CONTROL_ERROR_NONE;
-
-       ret = app_control_set_uri(params, uri);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, false, "app_control_set_uri() failed: %d", ret);
-
-       return true;
-}
-
-EMAIL_API bool email_params_add_int(app_control_h params, const char *key, int value)
-{
-       retvm_if(!params, false, "params is NULL");
-       retvm_if(!key, false, "key is NULL");
-
-       char s_value[EMAIL_BUFF_SIZE_SML] = {'\0'};
-       int ret = APP_CONTROL_ERROR_NONE;
-
-       snprintf(s_value, sizeof(s_value), "%d", value);
-
-       ret = app_control_add_extra_data(params, key, s_value);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, false, "app_control_add_extra_data() failed! ret = %d", ret);
-
-       return true;
-}
-
-EMAIL_API bool email_params_add_str(app_control_h params, const char *key, const char *value)
-{
-       retvm_if(!params, false, "params is NULL");
-       retvm_if(!key, false, "key is NULL");
-       retvm_if(!value, false, "value is NULL");
-
-       int ret = APP_CONTROL_ERROR_NONE;
-
-       ret = app_control_add_extra_data(params, key, value);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, false, "app_control_add_extra_data() failed! ret = %d", ret);
-
-       return true;
-}
-
-static bool _email_params_get_value_impl(app_control_h params, const char *key, char **result, bool opt)
-{
-       retvm_if(!params, false, "params is NULL");
-       retvm_if(!key, false, "key is NULL");
-       retvm_if(!result, false, "result is NULL");
-       retvm_if(*result, false, "*result is not NULL");
-
-       int ret = APP_CONTROL_ERROR_NONE;
-
-       ret = app_control_get_extra_data(params, key, result);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               if (opt && (ret == APP_CONTROL_ERROR_KEY_NOT_FOUND)) {
-                       *result = NULL;
-                       return true;
-               }
-               debug_error("app_control_get_extra_data() failed! ret = %d", ret);
-               return false;
-       }
-       retvm_if(!result, false, "buff is NULL");
-
-       return true;
-}
-
-static bool _email_params_get_int_impl(app_control_h params, const char *key, int *result, bool opt)
-{
-       char *buff = NULL;
-
-       if (!_email_params_get_value_impl(params, key, &buff, opt)) {
-               return false;
-       }
-
-       if (buff) {
-               *result = atoi(buff);
-               free(buff);
-       }
-
-       return true;
-}
-
-EMAIL_API bool email_params_get_int(app_control_h params, const char *key, int *result)
-{
-       return _email_params_get_int_impl(params, key, result, false);
-}
-
-EMAIL_API bool email_params_get_int_opt(app_control_h params, const char *key, int *result)
-{
-       return _email_params_get_int_impl(params, key, result, true);
-}
-
-static bool _email_params_get_str_impl(app_control_h params, const char *key, char *result, int result_size, bool opt)
-{
-       char *buff = NULL;
-       int n = 0;
-
-       if (!_email_params_get_value_impl(params, key, &buff, opt)) {
-               return false;
-       }
-
-       if (buff) {
-               n = snprintf(result, result_size, "%s", buff);
-               free(buff);
-               retvm_if(n >= result_size, false, "Result_size is too small. needed: %d bytes", n + 1);
-       }
-
-       return true;
-}
-
-EMAIL_API bool email_params_get_str(app_control_h params, const char *key, char *result, int result_size)
-{
-       return _email_params_get_str_impl(params, key, result, result_size, false);
-}
-
-EMAIL_API bool email_params_get_str_opt(app_control_h params, const char *key, char *result, int result_size)
-{
-       return _email_params_get_str_impl(params, key, result, result_size, true);
-}
-
 EMAIL_API int email_preview_attachment_file(email_module_t *module, const char *path, email_launched_app_listener_t *listener)
 {
        retvm_if(!path, -1, "path is NULL");
        retvm_if(!module, -1, "module is NULL");
 
        int ret = 0;
-       app_control_h params = NULL;
+       email_params_h params = NULL;
 
        if (email_params_create(&params) &&
-               email_params_operation_set(params, APP_CONTROL_OPERATION_VIEW) &&
-               email_params_uri_set(params, path) &&
+               email_params_set_operation(params, APP_CONTROL_OPERATION_VIEW) &&
+               email_params_set_uri(params, path) &&
                email_params_add_str(params,
                                EMAIL_PREVIEW_VIEW_MODE_PARAM_NAME,
                                EMAIL_PREVIEW_VIEW_MODE_PARAM_STR_VALUE) &&
@@ -3115,7 +2944,6 @@ EMAIL_API int email_preview_attachment_file(email_module_t *module, const char *
        return ret;
 }
 
-
 EMAIL_API email_ext_save_err_type_e email_prepare_temp_file_path(const int index, const char *tmp_root_dir, const char *src_file_path, char **dst_file_path)
 {
        debug_enter();
index f9c0512..819846a 100644 (file)
@@ -49,7 +49,7 @@ typedef struct _app_data {
        Evas_Object *win;
        Evas_Object *conform;
 
-       app_control_h launch_params;
+       app_control_h launch_request;
        email_module_h module;
 
        bool module_mgr_init_ok;
@@ -69,7 +69,7 @@ static void _app_region_fmt_changed_cb(app_event_info_h event_info, void *user_d
 
 static void _app_timezone_change_cb(system_settings_key_e key, void *data);
 static void _app_win_rotation_changed_cb(void *data, Evas_Object *obj, void *event_info);
-static void _app_module_result_cb(void *data, email_module_h module, app_control_h result);
+static void _app_module_result_cb(void *data, email_module_h module, email_params_h result);
 static void _app_module_destroy_request_cb(void *data, email_module_h module);
 
 #ifdef APP_USE_SIG
@@ -83,8 +83,8 @@ static bool _app_register_callbacks(app_data_t *ad);
 
 static void _app_finalize(app_data_t *ad);
 
-static email_module_type_e _app_get_module_type(app_control_h params);
-static bool _app_create_module(app_data_t *ad, app_control_h params);
+static email_module_type_e _app_get_module_type(app_data_t *ad);
+static bool _app_create_module(app_data_t *ad, email_params_h params);
 static bool _app_recreate_module(app_data_t *ad);
 
 bool _app_create_cb(void *user_data)
@@ -117,28 +117,42 @@ void _app_control_cb(app_control_h app_control, void *user_data)
        debug_enter();
        app_data_t *ad = user_data;
 
-       bool first_launch = (ad->launch_params == NULL);
+       bool first_launch = (ad->launch_request == NULL);
+       email_params_h params = NULL;
+
+       if (!email_params_from_app_control(&params, app_control)) {
+               debug_error("App control convert error!");
+               if (first_launch) {
+                       debug_log("Shutting down...");
+                       ui_app_exit();
+               }
+               return;
+       }
 
        if (first_launch) {
-               int r = app_control_clone(&ad->launch_params, app_control);
+               int r = app_control_clone(&ad->launch_request, app_control);
                if (r != APP_CONTROL_ERROR_NONE) {
                        debug_error("app_control_clone(): failed (%d). Shutting down...", r);
+                       email_params_free(&params);
                        ui_app_exit();
                        return;
                }
 
-               if (!_app_create_module(ad, app_control)) {
+               if (!_app_create_module(ad, params)) {
                        debug_error("_app_create_module(): failed (%d). Shutting down...", r);
+                       email_params_free(&params);
                        ui_app_exit();
                        return;
                }
        } else if (!email_module_mgr_is_in_transiton()) {
                debug_log("Sending message to the module...");
-               email_module_send_message(ad->module, app_control);
+               email_module_send_message(ad->module, params);
        } else {
                debug_warning("Module manager in transition state. Ignoring message...");
        }
 
+       email_params_free(&params);
+
        debug_leave();
 }
 
@@ -266,15 +280,22 @@ void _app_win_rotation_changed_cb(void *data, Evas_Object *obj, void *event_info
        debug_leave();
 }
 
-void _app_module_result_cb(void *data, email_module_h module, app_control_h result)
+void _app_module_result_cb(void *data, email_module_h module, email_params_h result)
 {
        debug_enter();
        app_data_t *ad = data;
 
-       int r = app_control_reply_to_launch_request(result, ad->launch_params, APP_CONTROL_RESULT_SUCCEEDED);
-       if (r != APP_CONTROL_ERROR_NONE) {
-               debug_error("app_control_reply_to_launch_request(): failed (%d).", r);
-               return;
+       app_control_h app_control = NULL;
+
+       if (email_params_to_app_control(result, &app_control)) {
+               int r = app_control_reply_to_launch_request(app_control, ad->launch_request, APP_CONTROL_RESULT_SUCCEEDED);
+               app_control_destroy(app_control);
+               if (r != APP_CONTROL_ERROR_NONE) {
+                       debug_error("app_control_reply_to_launch_request(): failed (%d).", r);
+                       return;
+               }
+       } else {
+               debug_error("Failed to convert result.");
        }
 
        debug_leave();
@@ -459,7 +480,7 @@ void _app_finalize(app_data_t *ad)
        email_engine_finalize_force();
 }
 
-static email_module_type_e _app_get_module_type(app_control_h params)
+static email_module_type_e _app_get_module_type(app_data_t *ad)
 {
 #ifdef SHARED_MODULES_FEATURE
        return APP_MODULE_TYPE;
@@ -468,7 +489,7 @@ static email_module_type_e _app_get_module_type(app_control_h params)
        email_module_type_e module_type = EMAIL_MODULE_MAILBOX;
 
        app_control_launch_mode_e launch_mode = APP_CONTROL_LAUNCH_MODE_SINGLE;
-       int r = app_control_get_launch_mode(params, &launch_mode);
+       int r = app_control_get_launch_mode(ad->launch_request, &launch_mode);
        if (r != APP_CONTROL_ERROR_NONE) {
                debug_log("app_control_get_launch_mode(): failed (%d)", r);
                return module_type;
@@ -476,7 +497,7 @@ static email_module_type_e _app_get_module_type(app_control_h params)
 
        if (launch_mode != APP_CONTROL_LAUNCH_MODE_SINGLE) {
                char *operation = NULL;
-               r = app_control_get_operation(params, &operation);
+               r = app_control_get_operation(ad->launch_request, &operation);
                if (r != APP_CONTROL_ERROR_NONE) {
                        debug_error("app_control_get_operation(): failed (%d)", r);
                        return module_type;
@@ -500,7 +521,7 @@ static email_module_type_e _app_get_module_type(app_control_h params)
        return module_type;
 }
 
-static bool _app_create_module(app_data_t *ad, app_control_h params)
+static bool _app_create_module(app_data_t *ad, email_params_h params)
 {
        debug_enter();
        retvm_if(ad->module, false, "Root module already created!");
@@ -511,7 +532,7 @@ static bool _app_create_module(app_data_t *ad, app_control_h params)
        listener.destroy_request_cb = _app_module_destroy_request_cb;
 
        email_module_h module = email_module_mgr_create_root_module(
-                       _app_get_module_type(params), params, &listener);
+                       _app_get_module_type(ad), params, &listener);
        if (!module) {
                debug_error("Module creation failed.");
                return false;
@@ -528,7 +549,7 @@ static bool _app_recreate_module(app_data_t *ad)
        retvm_if(!ad->module, false, "Root module is not created!");
 
        bool result = true;
-       app_control_h params = NULL;
+       email_params_h params = NULL;
 
        if (email_params_create(&params)) {
 
index f0ec6c2..df7568f 100644 (file)
@@ -341,29 +341,20 @@ static void _send_result_to_mailbox_ug_for_move(void *data)
        RETURN_IF_FAIL(data != NULL);
        EmailAccountUGD *ug_data = (EmailAccountUGD *)data;
 
-       app_control_h service;
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
-               return;
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, ug_data->b_editmode) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, ug_data->folder_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_STATUS, ug_data->move_status) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 1) &&
+               (!ug_data->moved_mailbox_name ||
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_MAILBOX_MOVED_MAILBOX_NAME, ug_data->moved_mailbox_name))) {
+
+               email_module_send_result(ug_data->base.module, params);
        }
-       char mailbox_edit_mode[30] = { 0, };
-       snprintf(mailbox_edit_mode, sizeof(mailbox_edit_mode), "%d", ug_data->b_editmode);
-       char is_mail_move_ug[30] = {0,};
-       snprintf(is_mail_move_ug, sizeof(is_mail_move_ug), "%d", 1);
-       char move_status[30] = {0,};
-       snprintf(move_status, sizeof(move_status), "%d", ug_data->move_status);
-       char mailbox_id[30] = {0,};
-       snprintf(mailbox_id, sizeof(mailbox_id), "%d", ug_data->folder_id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, mailbox_edit_mode);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_STATUS, move_status);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, is_mail_move_ug);
-       if (ug_data->moved_mailbox_name)
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_MOVED_MAILBOX_NAME, ug_data->moved_mailbox_name);
-
-       email_module_send_result(ug_data->base.module, service);
-
-       app_control_destroy(service);
+
+       email_params_free(&params);
 }
 
 static void _gl_sel(void *data, Evas_Object *obj, void *event_info)
index d4ac36f..8472a66 100644 (file)
@@ -263,59 +263,36 @@ static void _gl_sel_single(void *data, Evas_Object *obj, void *event_info)
                _popup_renamefolder_cb(ug_data, obj, event_info);
 
        } else if (ACC_FOLDER_NONE == ug_data->folder_mode) {
-               app_control_h service;
-               if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-                       debug_log("creating service handle failed");
-                       return;
-               }
-
-               char id[NUM_STR_LEN] = { 0 };
-               snprintf(id, sizeof(id), "%d", ug_data->account_id);
-
-               char is_mail_move_ug[NUM_STR_LEN] = { 0 };
-               snprintf(is_mail_move_ug, sizeof(is_mail_move_ug), "%d", 0);
-
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, is_mail_move_ug);
+               const char *account_type = EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT;
+               int mailbox_id = tree_item_data->mailbox_id;
+               int mailbox_type = tree_item_data->mailbox_type;
 
                if (tree_item_data->b_scheduled_outbox > 0) {
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_SCHEDULED_OUTBOX);
+                       account_type = EMAIL_BUNDLE_VAL_SCHEDULED_OUTBOX;
                        debug_log("scheduled outbox is selected");
-               } else {
-
-                       int i_mailbox_id = tree_item_data->mailbox_id;
-                       int mb_type = tree_item_data->mailbox_type;
-                       if (tree_item_data->mailbox_type == EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS) {
-                               mb_type = EMAIL_MAILBOX_TYPE_INBOX;
-                               i_mailbox_id = 0;
-                       } else if (tree_item_data->mailbox_type == EMAIL_MAILBOX_TYPE_FLAGGED) {
-                               mb_type = tree_item_data->mailbox_type;
-                               i_mailbox_id = 0;
-                       }
+               } else if (tree_item_data->mailbox_type == EMAIL_MAILBOX_TYPE_FLAGGED) {
+                       account_type = EMAIL_BUNDLE_VAL_ALL_ACCOUNT;
+                       mailbox_id = 0;
+               } else if (tree_item_data->mailbox_type == EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS) {
+                       account_type = EMAIL_BUNDLE_VAL_PRIORITY_SENDER;
+                       mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+                       mailbox_id = 0;
+               }
 
-                       char mailbox_id[NUM_STR_LEN] = { 0 };
-                       snprintf(mailbox_id, sizeof(mailbox_id), "%d", i_mailbox_id);
+               email_params_h params = NULL;
 
-                       char mailbox_type[NUM_STR_LEN] = { 0 };
-                       snprintf(mailbox_type, sizeof(mailbox_type), "%d", mb_type);
+               if (email_params_create(&params) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 0) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, ug_data->account_id) &&
+                       email_params_add_str(params, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, account_type) &&
+                       ((tree_item_data->b_scheduled_outbox > 0) || (
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, mailbox_type)))) {
 
-                       if (tree_item_data->mailbox_type == EMAIL_MAILBOX_TYPE_FLAGGED) {
-                               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_ALL_ACCOUNT);
-                       } else if (tree_item_data->mailbox_type == EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS) {
-                               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_PRIORITY_SENDER);
-                       } else {
-                               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT);
-                       }
-
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id);
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, mailbox_type);
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, is_mail_move_ug);
+                       email_module_send_result(ug_data->base.module, params);
                }
 
-               email_module_send_result(ug_data->base.module, service);
-
-               app_control_destroy(service);
+               email_params_free(&params);
        }
        debug_leave();
 }
@@ -1675,41 +1652,26 @@ static void _open_allacc_boxtype(void *data, Evas_Object *obj, void *event_info)
        }
        elm_genlist_item_update(item);
 
-       app_control_h service;
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
-               return;
+       const char *account_type = EMAIL_BUNDLE_VAL_ALL_ACCOUNT;
+       if (mailbox_type == EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS) {
+               mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
+               account_type = EMAIL_BUNDLE_VAL_PRIORITY_SENDER;
        }
-       debug_log("mailbox_type: [%d]", mailbox_type);
-
-       char id[NUM_STR_LEN] = {0,};
-       snprintf(id, sizeof(id), "%d", 0);
 
-       char ch_boxtype[NUM_STR_LEN] = { 0 };
+       email_params_h params = NULL;
 
-       if (mailbox_type != EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS) {
-               snprintf(ch_boxtype, sizeof(ch_boxtype), "%d", mailbox_type);
-       } else {
-               snprintf(ch_boxtype, sizeof(ch_boxtype), "%d", EMAIL_MAILBOX_TYPE_INBOX);
-       }
-
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_ALL_ACCOUNT);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, ch_boxtype);
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, 0) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 0) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, mailbox_type) &&
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, account_type)) {
 
-       if (mailbox_type == EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS) {
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_PRIORITY_SENDER);
+               email_module_send_result(ug_data->base.module, params);
        }
 
-       char is_mail_move_ug[NUM_STR_LEN] = {0,};
-       snprintf(is_mail_move_ug, sizeof(is_mail_move_ug), "%d", 0);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, is_mail_move_ug);
-
-       email_module_send_result(ug_data->base.module, service);
+       email_params_free(&params);
 
        ug_data->block_item_click = 1;
-
-       app_control_destroy(service);
 }
 
 static void _delete_folder_ok_cb(void *data, Evas_Object *obj, void *event_info)
index e71c545..2f5799f 100644 (file)
@@ -721,7 +721,7 @@ static void _gl_account_list_item_sel(void *data, Evas_Object *obj, void *event_
 
        Account_Item_Data *item_data = (Account_Item_Data *)data;
        EmailAccountUGD *ug_data = item_data->ug_data;
-       int i_mailbox_id = 0;
+       int mailbox_id = 0;
        retm_if(!ug_data, "ug_data is NULL");
 
        email_mailbox_type_e mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
@@ -783,28 +783,28 @@ static void _gl_account_list_item_sel(void *data, Evas_Object *obj, void *event_
                mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
                box_type = ACC_MAILBOX_TYPE_INBOX;
                ug_data->account_id = item_data->account_id;
-               i_mailbox_id = item_data->mailbox_id;
+               mailbox_id = item_data->mailbox_id;
                break;
 
        case ACCOUNT_LIST_SINGLE_DRAFTS:
                mailbox_type = EMAIL_MAILBOX_TYPE_DRAFT;
                box_type = ACC_MAILBOX_TYPE_DRAFT;
                ug_data->account_id = item_data->account_id;
-               i_mailbox_id = item_data->mailbox_id;
+               mailbox_id = item_data->mailbox_id;
                break;
 
        case ACCOUNT_LIST_SINGLE_OUTBOX:
                mailbox_type = EMAIL_MAILBOX_TYPE_OUTBOX;
                box_type = ACC_MAILBOX_TYPE_OUTBOX;
                ug_data->account_id = item_data->account_id;
-               i_mailbox_id = item_data->mailbox_id;
+               mailbox_id = item_data->mailbox_id;
                break;
 
        case ACCOUNT_LIST_SINGLE_SENT:
                mailbox_type = EMAIL_MAILBOX_TYPE_SENTBOX;
                box_type = ACC_MAILBOX_TYPE_SENTBOX;
                ug_data->account_id = item_data->account_id;
-               i_mailbox_id = item_data->mailbox_id;
+               mailbox_id = item_data->mailbox_id;
                break;
 
        case ACCOUNT_LIST_SINGLE_SHOW_ALL_FOLDERS:
@@ -819,44 +819,30 @@ static void _gl_account_list_item_sel(void *data, Evas_Object *obj, void *event_
                break;
        }
 
-       app_control_h service;
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
-               return;
-       }
        debug_log("account_id: [%d], box_type: [%d], mailbox_type: [%d]", ug_data->account_id, box_type, mailbox_type);
 
-       char id[NUM_STR_LEN] = {0,};
-       snprintf(id, sizeof(id), "%d", ug_data->account_id);
-
-       char ch_boxtype[NUM_STR_LEN] = {0,};
-       snprintf(ch_boxtype, sizeof(ch_boxtype), "%d", mailbox_type);
-       if (ug_data->account_id == 0) {
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_ALL_ACCOUNT);
-       } else {
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT);
-       }
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, ch_boxtype);
-
-       char mailbox_id[NUM_STR_LEN] = {0,};
-       snprintf(mailbox_id, sizeof(mailbox_id), "%d", i_mailbox_id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id);
-
+       const char *account_type = EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT;
        if (box_type == ACC_MAILBOX_TYPE_PRIORITY_INBOX) {
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_PRIORITY_SENDER);
+               account_type = EMAIL_BUNDLE_VAL_PRIORITY_SENDER;
+       } else if (ug_data->account_id == 0) {
+               account_type = EMAIL_BUNDLE_VAL_ALL_ACCOUNT;
        }
 
-       char is_mail_move_ug[NUM_STR_LEN] = {0,};
-       snprintf(is_mail_move_ug, sizeof(is_mail_move_ug), "%d", 0);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, is_mail_move_ug);
+       email_params_h params = NULL;
 
-       email_module_send_result(ug_data->base.module, service);
+       if (email_params_create(&params) &&
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, account_type) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, ug_data->account_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, mailbox_type) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 0)) {
 
-       ug_data->block_item_click = 1;
+               email_module_send_result(ug_data->base.module, params);
+       }
 
-       app_control_destroy(service);
+       email_params_free(&params);
 
+       ug_data->block_item_click = 1;
 }
 
 static void _check_account_list_zoom_state(EmailAccountUGD *ug_data)
index 80fd526..5d3da33 100644 (file)
@@ -29,7 +29,7 @@
 
 #define EMAIL_GENLIST_MAX_BLOCK_ITEMS_COUNT 36
 
-static int _account_module_create(email_module_t *self, app_control_h params);
+static int _account_module_create(email_module_t *self, email_params_h params);
 
 static int _account_create(email_view_t *self);
 static void _account_destroy(email_view_t *self);
@@ -55,18 +55,17 @@ static void _account_delete_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *o
 static void _account_more_ctxpopup_dismissed_cb(void *data, Evas_Object *obj, void *event_info);
 static void _account_resize_more_ctxpopup_cb(void *data, Evas *e, Evas_Object *obj, void *event_info);
 static void _account_settings_cb(void *data, Evas_Object *obj, void *event_info);
-static email_module_h account_setting_module_create(void *data, email_module_type_e module_type, app_control_h service);
+static email_module_h account_setting_module_create(void *data, email_module_type_e module_type, email_params_h params);
 static void _account_setting_module_destroy(void *priv, email_module_h module);
 static void _folder_delete_cb(void *data, Evas_Object *obj, void *event_info);
 static void _folder_rename_cb(void *data, Evas_Object *obj, void *event_info);
 static int _get_accounts_data(int *account_count, email_account_t **account_list);
 
-static int _account_module_create(email_module_t *self, app_control_h params)
+static int _account_module_create(email_module_t *self, email_params_h params)
 {
        debug_enter();
        EmailAccountModule *md = (EmailAccountModule *)self;
        EmailAccountUGD *ug_data = &md->view;
-       char *argv[5] = { 0 };
        email_account_t *account_list = NULL;
        int ret = APP_CONTROL_ERROR_NONE;
 
@@ -96,133 +95,87 @@ static int _account_module_create(email_module_t *self, app_control_h params)
                ug_data->isRotate = false;
        }
 
-       /* parsing bundle data */
-       app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &(argv[0]));
-       app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_MAILBOX, &(argv[1]));
-       app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, &(argv[2]));
-       app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_ACCOUNT_UG, &(argv[3]));
-       app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, &(argv[4]));
+       /* parsing params data */
+       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &ug_data->account_id);
+       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_MAILBOX, &ug_data->folder_id);
+       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, &is_move_mail_ug);
 
-       if (argv[0]) {
-               ug_data->account_id = atoi(argv[0]);
-               g_free(argv[0]);
+       if (is_move_mail_ug) {
+               ug_data->folder_view_mode = ACC_FOLDER_MOVE_MAIL_VIEW_MODE;
        }
 
-       if (argv[1]) {
-               ug_data->folder_id = atoi(argv[1]);
-               g_free(argv[1]);
-       }
-
-       if (argv[2]) {
-               is_move_mail_ug = atoi(argv[2]);
-               g_free(argv[2]);
-
-               if (is_move_mail_ug) {
-                       ug_data->folder_view_mode = ACC_FOLDER_MOVE_MAIL_VIEW_MODE;
-               }
-       }
-
-       if(_get_accounts_data(&ug_data->account_count, &ug_data->account_list)) {
+       if (_get_accounts_data(&ug_data->account_count, &ug_data->account_list)) {
                debug_critical("get accounts data failed");
                return -1;
        }
 
-       if (argv[3]) {
-               is_account_list_ug = atoi(argv[3]);
-               g_free(argv[3]);
-
-               if (is_account_list_ug) {
+       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_ACCOUNT_UG, &is_account_list_ug);
+       if (is_account_list_ug) {
 
-                       if (argv[4]) {
+               const char *account_type = NULL;
+               email_params_get_str_opt(params, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, &account_type);
+               if (account_type) {
 
-                               debug_log("mailbox_mode:%s", argv[4]);
-                               if (g_strcmp0(argv[4], EMAIL_BUNDLE_VAL_PRIORITY_SENDER) == 0) {
-                                       ug_data->mailbox_mode = ACC_MAILBOX_TYPE_PRIORITY_INBOX;
-                                       ug_data->mailbox_type = EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS;
-                                       if (ug_data->account_count == 1) {
-                                               ug_data->folder_view_mode = ACC_FOLDER_SINGLE_VIEW_MODE;
-                                       } else {
-                                               ug_data->folder_view_mode = ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE;
-                                       }
-                               } else if (g_strcmp0(argv[4], EMAIL_BUNDLE_VAL_FILTER_INBOX) == 0) {
-                                       ug_data->mailbox_mode = ACC_MAILBOX_TYPE_FLAGGED;
-                                       ug_data->mailbox_type = EMAIL_MAILBOX_TYPE_FLAGGED;
-                                       if (ug_data->account_count == 1) {
-                                               ug_data->folder_view_mode = ACC_FOLDER_SINGLE_VIEW_MODE;
-                                       } else {
-                                               ug_data->folder_view_mode = ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE;
-                                       }
-                               } else if (g_strcmp0(argv[4], EMAIL_BUNDLE_VAL_ALL_ACCOUNT) == 0 || ug_data->account_count > 1) {
-                                       ug_data->mailbox_mode = ACC_MAILBOX_TYPE_ALL_ACCOUNT;
-                                       ug_data->folder_view_mode = ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE;
+                       debug_log("mailbox_mode:%s", account_type);
+                       if (g_strcmp0(account_type, EMAIL_BUNDLE_VAL_PRIORITY_SENDER) == 0) {
+                               ug_data->mailbox_mode = ACC_MAILBOX_TYPE_PRIORITY_INBOX;
+                               ug_data->mailbox_type = EMAIL_MAILBOX_TYPE_PRIORITY_SENDERS;
+                               if (ug_data->account_count == 1) {
+                                       ug_data->folder_view_mode = ACC_FOLDER_SINGLE_VIEW_MODE;
                                } else {
-                                       ug_data->mailbox_mode = ACC_MAILBOX_TYPE_SINGLE_ACCOUNT;
+                                       ug_data->folder_view_mode = ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE;
+                               }
+                       } else if (g_strcmp0(account_type, EMAIL_BUNDLE_VAL_FILTER_INBOX) == 0) {
+                               ug_data->mailbox_mode = ACC_MAILBOX_TYPE_FLAGGED;
+                               ug_data->mailbox_type = EMAIL_MAILBOX_TYPE_FLAGGED;
+                               if (ug_data->account_count == 1) {
                                        ug_data->folder_view_mode = ACC_FOLDER_SINGLE_VIEW_MODE;
+                               } else {
+                                       ug_data->folder_view_mode = ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE;
                                }
-                               g_free(argv[4]);
-                       } else {
+                       } else if (g_strcmp0(account_type, EMAIL_BUNDLE_VAL_ALL_ACCOUNT) == 0 || ug_data->account_count > 1) {
                                ug_data->mailbox_mode = ACC_MAILBOX_TYPE_ALL_ACCOUNT;
                                ug_data->folder_view_mode = ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE;
+                       } else {
+                               ug_data->mailbox_mode = ACC_MAILBOX_TYPE_SINGLE_ACCOUNT;
+                               ug_data->folder_view_mode = ACC_FOLDER_SINGLE_VIEW_MODE;
                        }
+               } else {
+                       ug_data->mailbox_mode = ACC_MAILBOX_TYPE_ALL_ACCOUNT;
+                       ug_data->folder_view_mode = ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE;
                }
        }
+
        debug_log("account_id [%d], folder_id [%d], is_move_mail_ug [%d], is_account_list_ug [%d]", ug_data->account_id, ug_data->folder_id, is_move_mail_ug, is_account_list_ug);
        debug_log("folder_view_mode [%d]", ug_data->folder_view_mode);
 
        /* contents */
        if (ug_data->folder_view_mode == ACC_FOLDER_MOVE_MAIL_VIEW_MODE) {
-               char *move_argv[5] = { 0 };
-               int selected_mail_list_legth = 0;
-               char **selected_mail_list = NULL;
-
-               app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_MODE, &(move_argv[0]));
-               if (move_argv[0]) {
-                       ug_data->move_mode = atoi(move_argv[0]);
-                       g_free(move_argv[0]);
-               }
-               app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, &(move_argv[2]));
-               if (move_argv[2]) {
-                       ug_data->b_editmode = atoi(move_argv[2]);
-                       g_free(move_argv[2]);
-               }
-               app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_MOVE_SRC_MAILBOX_ID, &(move_argv[1]));
-               if (move_argv[1]) {
-                       ug_data->move_src_mailbox_id = atoi(move_argv[1]);
-                       g_free(move_argv[1]);
-               }
-               ret = app_control_get_extra_data_array(params, EMAIL_BUNDLE_KEY_ARRAY_SELECTED_MAIL_IDS, &selected_mail_list, &(selected_mail_list_legth));
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data_array(item_id) failed! ret:[%d]", ret);
+               const char **selected_mail_list = NULL;
+               int selected_mail_list_len = 0;
+
+               email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_MODE, &ug_data->move_mode);
+               email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, &ug_data->b_editmode);
+               email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_MOVE_SRC_MAILBOX_ID, &ug_data->move_src_mailbox_id);
+
+               email_params_get_str_array(params, EMAIL_BUNDLE_KEY_ARRAY_SELECTED_MAIL_IDS, &selected_mail_list, &selected_mail_list_len);
+
                int i;
-               for (i = 0; i < selected_mail_list_legth; i++) {
+               for (i = 0; i < selected_mail_list_len; i++) {
                        debug_log("mail list to move %d", atoi(selected_mail_list[i]));
                        ug_data->selected_mail_list_to_move = g_list_prepend(ug_data->selected_mail_list_to_move,
                                                                                        GINT_TO_POINTER(atoi(selected_mail_list[i])));
                }
 
-               for (i = 0; i < selected_mail_list_legth; i++) {
-                       g_free(selected_mail_list[i]);
-               }
-               g_free(selected_mail_list);
-
        } else if (ug_data->folder_view_mode == ACC_FOLDER_ACCOUNT_LIST_VIEW_MODE ||
                        ug_data->folder_view_mode == ACC_FOLDER_SINGLE_VIEW_MODE) {
 
-               char *mailbox_argv[3] = { 0 };
-
                if (ug_data->mailbox_type == 0) {
-                       app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &(mailbox_argv[0]));
-                       if (mailbox_argv[0]) {
-                               ug_data->mailbox_type = atoi(mailbox_argv[0]);
-                               g_free(mailbox_argv[0]);
-                       }
+                       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &ug_data->mailbox_type);
                }
 
                if (ug_data->mailbox_id == 0) {
-                       app_control_get_extra_data(params, EMAIL_BUNDLE_KEY_MAILBOX, &(mailbox_argv[1]));
-                       if (mailbox_argv[1]) {
-                               ug_data->mailbox_id = atoi(mailbox_argv[1]);
-                               g_free(mailbox_argv[1]);
-                       }
+                       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_MAILBOX, &ug_data->mailbox_id);
                }
 
                if (ug_data->folder_view_mode == ACC_FOLDER_SINGLE_VIEW_MODE) {
@@ -774,7 +727,7 @@ static void _account_setting_module_destroy(void *priv, email_module_h module)
        }
 }
 
-email_module_h account_setting_module_create(void *data, email_module_type_e module_type, app_control_h service)
+email_module_h account_setting_module_create(void *data, email_module_type_e module_type, email_params_h params)
 {
        debug_enter();
 
@@ -784,7 +737,7 @@ email_module_h account_setting_module_create(void *data, email_module_type_e mod
        listener.cb_data = ug_data;
        listener.destroy_request_cb = _account_setting_module_destroy;
 
-       return email_module_create_child(ug_data->base.module, module_type, service, &listener);
+       return email_module_create_child(ug_data->base.module, module_type, params, &listener);
 }
 
 static void _account_settings_cb(void *data, Evas_Object *obj, void *event_info)
@@ -793,18 +746,17 @@ static void _account_settings_cb(void *data, Evas_Object *obj, void *event_info)
        retm_if(!data, "data is NULL");
 
        EmailAccountUGD *ug_data = (EmailAccountUGD *) data;
-       app_control_h service;
+       email_params_h params = NULL;
 
        DELETE_EVAS_OBJECT(ug_data->more_ctxpopup);
 
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
-               return;
+       if (email_params_create(&params) &&
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SETTING)) {
+
+               ug_data->setting = account_setting_module_create(ug_data, EMAIL_MODULE_SETTING, params);
        }
 
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SETTING);
-       ug_data->setting = account_setting_module_create(ug_data, EMAIL_MODULE_SETTING, service);
-       app_control_destroy(service);
+       email_params_free(&params);
 }
 
 static Elm_Object_Item *_add_ctx_menu_item(EmailAccountUGD *ug_data, const char *str, Evas_Object *icon, Evas_Smart_Cb cb)
index 59fa50e..b3e8f1e 100644 (file)
@@ -48,26 +48,26 @@ void composer_initial_data_set_mail_info(EmailComposerUGD *ugd, bool is_draft_sy
 /**
  * @brief Parse composer run type
  * @param[in]  ugd»                   Email composer data
- * @param[in]  svc_handle              App control handler
+ * @param[in]  params                  Email params handle
  * @return Composer error type
  */
-COMPOSER_ERROR_TYPE_E composer_initial_data_parse_composer_run_type(EmailComposerUGD *ugd, app_control_h svc_handle);
+COMPOSER_ERROR_TYPE_E composer_initial_data_parse_composer_run_type(EmailComposerUGD *ugd, email_params_h params);
 
 /**
  * @brief Pre parse arguments
  * @param[in]  ugd»                   Email composer data
- * @param[in]  svc_handle              App control handler
+ * @param[in]  params                  Email params handle
  * @return Composer error type
  */
-COMPOSER_ERROR_TYPE_E composer_initial_data_pre_parse_arguments(EmailComposerUGD *ugd, app_control_h data);
+COMPOSER_ERROR_TYPE_E composer_initial_data_pre_parse_arguments(EmailComposerUGD *ugd, email_params_h params);
 
 /**
  * @brief Post parse arguments
  * @param[in]  ugd»                   Email composer data
- * @param[in]  svc_handle              App control handler
+ * @param[in]  params                  Email params handle
  * @return Composer error type
  */
-COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUGD *ugd, app_control_h data);
+COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUGD *ugd, email_params_h params);
 
 /**
  * @brief Composer make initial content
index 93722e8..8abcba4 100644 (file)
@@ -277,9 +277,9 @@ struct ug_data {
 
        /*
         * Related to composer data
-        * App control handle for composer
+        * Launch params handle for composer
         */
-       app_control_h ec_app;
+       email_params_h launch_params;
 
        /* Previous setting values. These should be restored when exiting out of composer. */
        double scroll_friction; // friction value(scrolling speed) for scroller.
index 54595bf..4f2e39e 100644 (file)
@@ -38,18 +38,18 @@ static char *_initial_data_body_make_recipient_string(const char *original_list,
 static char *_initial_data_body_get_original_message_bar_tags(EmailComposerUGD *ugd);
 static char *_initial_data_body_get_parent_content(EmailComposerUGD *ugd);
 
-static void _initial_data_parse_service_data_by_internal(app_control_h svc_handle, char **argv, int run_type);
-static void _initial_data_parse_service_data_by_ug(app_control_h svc_handle, char **argv);
-static void _initial_data_parse_service_data_by_appcontrol(EmailComposerUGD *ugd,
-               app_control_h svc_handle, char **argv, const char *operation);
+static void _initial_data_parse_params_by_internal(email_params_h params, const char **argv, int run_type);
+static void _initial_data_parse_params_by_ug(email_params_h params, const char **argv);
+static void _initial_data_parse_params_by_appcontrol(EmailComposerUGD *ugd,
+               email_params_h params, const char **argv, const char *operation);
 
 static char *_initial_data_parse_mailto_recipients(char *recipients_list);
-static void _initial_data_parse_mailto_uri(EmailComposerUGD *ugd, char *mailto_uri);
-static void _initial_data_parse_contacts_sharing(EmailComposerUGD *ugd, app_control_h svc_handle, const char *operation);
+static void _initial_data_parse_mailto_uri(EmailComposerUGD *ugd, const char *mailto_uri);
+static void _initial_data_parse_contacts_sharing(EmailComposerUGD *ugd, email_params_h params, const char *operation);
 static void _initial_data_parse_attachments(EmailComposerUGD *ugd, Eina_List *attachment_uri_list);
 
-static COMPOSER_ERROR_TYPE_E _initial_data_process_service_data_by_internal(EmailComposerUGD *ugd, char **argv);
-static COMPOSER_ERROR_TYPE_E _initial_data_process_service_data_by_external(EmailComposerUGD *ugd, char **argv);
+static COMPOSER_ERROR_TYPE_E _initial_data_process_params_by_internal(EmailComposerUGD *ugd, const char **argv);
+static COMPOSER_ERROR_TYPE_E _initial_data_process_params_by_external(EmailComposerUGD *ugd, const char **argv);
 
 static void _initial_data_set_mail_to_recipients(EmailComposerUGD *ugd);
 static void _initial_data_set_mail_cc_recipients(EmailComposerUGD *ugd);
@@ -64,7 +64,7 @@ static Eina_List *_initial_data_make_initial_recipients_list(Evas_Object *mbe);
 static void _recp_preppend_string(gchar **dst, gchar *src);
 static void _recp_append_string(gchar **dst, gchar *src);
 
-static void _recp_append_extra_data_array(gchar **dst, app_control_h app_control, const char *data_key);
+static void _recp_append_extra_data_array(gchar **dst, email_params_h params, const char *data_key);
 
 static email_string_t EMAIL_COMPOSER_STRING_NULL = { NULL, NULL };
 static email_string_t EMAIL_COMPOSER_STRING_BUTTON_CANCEL = { PACKAGE, "IDS_EMAIL_BUTTON_CANCEL" };
@@ -206,26 +206,26 @@ static char *_initial_data_body_get_parent_content(EmailComposerUGD *ugd)
        return tmp_text;
 }
 
-static void _initial_data_parse_service_data_by_internal(app_control_h svc_handle, char **argv, int run_type)
+static void _initial_data_parse_params_by_internal(email_params_h params, const char **argv, int run_type)
 {
        debug_enter();
 
-       retm_if(!svc_handle, "svc_handle is NULL!");
+       retm_if(!params, "params is NULL!");
        retm_if(!argv, "argv is NULL!");
 
-       int ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_ACCOUNT_ID, (char **)&argv[0]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_ACCOUNT_ID, ret);
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &argv[0]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_ACCOUNT_ID);
 
        debug_secure("account_id: (%s)", argv[0]);
 
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_MAIL_ID, (char **)&argv[1]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_MAIL_ID, ret);
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_MAIL_ID, &argv[1]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_MAIL_ID);
 
        debug_log("mail_id: (%s)", argv[1]);
 
        if ((run_type == RUN_EML_FORWARD) || (run_type == RUN_EML_REPLY) || (run_type == RUN_EML_REPLY_ALL)) {
-               ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_MYFILE_PATH, (char **)&argv[3]);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_MYFILE_PATH, ret);
+               debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_MYFILE_PATH, &argv[3]),
+                               "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_MYFILE_PATH);
 
                debug_secure("eml_file_path: (%s)", argv[3]);
        }
@@ -233,32 +233,30 @@ static void _initial_data_parse_service_data_by_internal(app_control_h svc_handl
        debug_leave();
 }
 
-static void _initial_data_parse_service_data_by_ug(app_control_h svc_handle, char **argv)
+static void _initial_data_parse_params_by_ug(email_params_h params, const char **argv)
 {
        debug_enter();
 
-       retm_if(!svc_handle, "Invalid parameter: svc_handle is NULL!");
+       retm_if(!params, "Invalid parameter: params is NULL!");
        retm_if(!argv, "Invalid parameter: argv is NULL!");
 
-       int ret = APP_CONTROL_ERROR_NONE;
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_TO, &argv[0]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_TO);
 
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_TO, (char **)&argv[0]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_TO, ret);
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_CC, &argv[1]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_CC);
 
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_CC, (char **)&argv[1]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_CC, ret);
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_BCC, &argv[2]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_BCC);
 
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_BCC, (char **)&argv[2]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_BCC, ret);
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_SUBJECT, &argv[3]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_SUBJECT);
 
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_SUBJECT, (char **)&argv[3]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_SUBJECT, ret);
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_BODY, &argv[4]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_BODY);
 
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_BODY, (char **)&argv[4]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_BODY, ret);
-
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_ATTACHMENT, (char **)&argv[5]);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_ATTACHMENT, ret);
+       debug_warning_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_ATTACHMENT, &argv[5]),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_ATTACHMENT);
 
        debug_secure("to: (%s)", argv[0]);
        debug_secure("cc: (%s)", argv[1]);
@@ -270,34 +268,32 @@ static void _initial_data_parse_service_data_by_ug(app_control_h svc_handle, cha
        debug_leave();
 }
 
-static void _initial_data_parse_service_data_by_appcontrol(EmailComposerUGD *ugd,
-               app_control_h svc_handle, char **argv, const char *operation)
+static void _initial_data_parse_params_by_appcontrol(EmailComposerUGD *ugd,
+               email_params_h params, const char **argv, const char *operation)
 {
        debug_enter();
 
-       retm_if(!svc_handle, "Invalid parameter: svc_handle is NULL!");
+       retm_if(!params, "Invalid parameter: params is NULL!");
        retm_if(!argv, "Invalid parameter: argv is NULL!");
        retm_if(!operation, "Invalid parameter: operation is NULL!");
 
-       int ret = APP_CONTROL_ERROR_NONE;
-
        if (!g_strcmp0(operation, APP_CONTROL_OPERATION_COMPOSE)) {
 
-               _recp_append_extra_data_array(&ugd->new_mail_info->mail_data->full_address_to, svc_handle, APP_CONTROL_DATA_TO);
+               _recp_append_extra_data_array(&ugd->new_mail_info->mail_data->full_address_to, params, APP_CONTROL_DATA_TO);
 
-               _recp_append_extra_data_array(&ugd->new_mail_info->mail_data->full_address_cc, svc_handle, APP_CONTROL_DATA_CC);
+               _recp_append_extra_data_array(&ugd->new_mail_info->mail_data->full_address_cc, params, APP_CONTROL_DATA_CC);
 
-               _recp_append_extra_data_array(&ugd->new_mail_info->mail_data->full_address_bcc, svc_handle, APP_CONTROL_DATA_BCC);
+               _recp_append_extra_data_array(&ugd->new_mail_info->mail_data->full_address_bcc, params, APP_CONTROL_DATA_BCC);
        }
 
        if (!g_strcmp0(operation, APP_CONTROL_OPERATION_COMPOSE) ||
                !g_strcmp0(operation, APP_CONTROL_OPERATION_SHARE_TEXT)) {
 
-               ret = app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_SUBJECT, (char **)&argv[3]);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", APP_CONTROL_DATA_SUBJECT, ret);
+               debug_warning_if(!email_params_get_str(params, APP_CONTROL_DATA_SUBJECT, &argv[3]),
+                               "email_params_get_str(%s) failed!", APP_CONTROL_DATA_SUBJECT);
 
-               ret = app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_TEXT, (char **)&argv[4]);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", APP_CONTROL_DATA_TEXT, ret);
+               debug_warning_if(!email_params_get_str(params, APP_CONTROL_DATA_TEXT, &argv[4]),
+                               "email_params_get_str(%s) failed!", APP_CONTROL_DATA_TEXT);
 
                debug_secure("subject: (%s)", argv[3]);
                debug_secure("body: (%s)", argv[4]);
@@ -333,7 +329,7 @@ static char *_initial_data_parse_mailto_recipients(char *recipients_list)
        return new_recipients_list;
 }
 
-static void _initial_data_parse_mailto_uri(EmailComposerUGD *ugd, char *mailto_uri)
+static void _initial_data_parse_mailto_uri(EmailComposerUGD *ugd, const char *mailto_uri)
 {
        debug_enter();
 
@@ -383,15 +379,15 @@ static void _initial_data_parse_mailto_uri(EmailComposerUGD *ugd, char *mailto_u
        debug_leave();
 }
 
-static void _initial_data_parse_contacts_sharing(EmailComposerUGD *ugd, app_control_h svc_handle, const char *operation)
+static void _initial_data_parse_contacts_sharing(EmailComposerUGD *ugd, email_params_h params, const char *operation)
 {
        debug_enter();
 
        if (!g_strcmp0(operation, APP_CONTROL_OPERATION_SHARE)) {
-               char data_type[BUF_LEN_T] = "person";
+               const char *data_type = "person";
 
-               if (email_params_get_str_opt(svc_handle, APP_CONTROL_DATA_TYPE, data_type, BUF_LEN_T) &&
-                       email_params_get_int(svc_handle, APP_CONTROL_DATA_ID, &ugd->shared_contact_id)) {
+               if (email_params_get_str_opt(params, APP_CONTROL_DATA_TYPE, &data_type) &&
+                       email_params_get_int(params, APP_CONTROL_DATA_ID, &ugd->shared_contact_id)) {
 
                        ugd->shared_contacts_count = 1;
 
@@ -408,27 +404,22 @@ static void _initial_data_parse_contacts_sharing(EmailComposerUGD *ugd, app_cont
                }
 
        } else {
+               const char **array = NULL;
                int i = 0;
-               char **array = NULL;
 
-               int ret = app_control_get_extra_data_array(svc_handle, APP_CONTROL_DATA_ID, &array, &ugd->shared_contacts_count);
-               retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data_array(%s) failed! ret:[%d]", APP_CONTROL_DATA_ID, ret);
+               retm_if(!email_params_get_str_array(params, APP_CONTROL_DATA_ID, &array, &ugd->shared_contacts_count),
+                               "email_params_get_str_array(%s) failed!", APP_CONTROL_DATA_ID);
 
                if (ugd->shared_contacts_count > 0) {
                        ugd->shared_contact_id_list = calloc(ugd->shared_contacts_count, sizeof(int));
-                       debug_error_if(!ugd->shared_contact_id_list, "calloc() failed");
+                       retm_if(!ugd->shared_contact_id_list, "calloc() failed");
 
                        for (i = 0; i < ugd->shared_contacts_count; ++i) {
-                               if (ugd->shared_contact_id_list) {
-                                       ugd->shared_contact_id_list[i] = atoi(array[i]);
-                               }
-                               free(array[i]);
+                               ugd->shared_contact_id_list[i] = atoi(array[i]);
                        }
                } else {
                        debug_error("Array is empty");
                }
-
-               free(array);
        }
 
        ugd->is_sharing_contacts = (ugd->shared_contacts_count > 0) ? EINA_TRUE : EINA_FALSE;
@@ -473,7 +464,7 @@ static void _initial_data_parse_attachments(EmailComposerUGD *ugd, Eina_List *at
        debug_leave();
 }
 
-static COMPOSER_ERROR_TYPE_E _initial_data_process_service_data_by_internal(EmailComposerUGD *ugd, char **argv)
+static COMPOSER_ERROR_TYPE_E _initial_data_process_params_by_internal(EmailComposerUGD *ugd, const char **argv)
 {
        debug_enter();
 
@@ -507,7 +498,7 @@ static COMPOSER_ERROR_TYPE_E _initial_data_process_service_data_by_internal(Emai
        return COMPOSER_ERROR_NONE;
 }
 
-static COMPOSER_ERROR_TYPE_E _initial_data_process_service_data_by_external(EmailComposerUGD *ugd, char **argv)
+static COMPOSER_ERROR_TYPE_E _initial_data_process_params_by_external(EmailComposerUGD *ugd, const char **argv)
 {
        debug_enter();
 
@@ -1141,79 +1132,65 @@ void composer_initial_data_set_mail_info(EmailComposerUGD *ugd, bool is_draft_sy
        email_profiling_end(composer_initial_data_set_mail_info);
 }
 
-COMPOSER_ERROR_TYPE_E composer_initial_data_parse_composer_run_type(EmailComposerUGD *ugd, app_control_h svc_handle)
+COMPOSER_ERROR_TYPE_E composer_initial_data_parse_composer_run_type(EmailComposerUGD *ugd, email_params_h params)
 {
        email_profiling_begin(composer_initial_data_parse_composer_run_type);
        debug_enter();
 
-       int ret = 0;
-       char *operation = NULL;
-       char *run_type = NULL;
+       const char *operation = NULL;
 
        ugd->composer_type = RUN_TYPE_UNKNOWN;
 
-       ret = app_control_get_operation(svc_handle, &operation);
-       debug_warning_if((ret != APP_CONTROL_ERROR_NONE) && (ret != APP_CONTROL_ERROR_KEY_NOT_FOUND), "app_control_get_operation() failed! ret:[%d]", ret);
+       debug_warning_if(!email_params_get_operation_opt(params, &operation),
+                       "email_params_get_operation_opt() failed!");
 
        if (operation && (g_strcmp0(operation, APP_CONTROL_OPERATION_DEFAULT) != 0)) {
                debug_secure("operation type: (%s)", operation);
                ugd->composer_type = RUN_COMPOSER_EXTERNAL;
        } else {
-               ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_RUN_TYPE, &run_type);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! ret:[%d]", EMAIL_BUNDLE_KEY_RUN_TYPE, ret);
-
-               if (run_type) {
-                       ugd->composer_type = atoi(run_type);
-               } else {
-                       ugd->composer_type = RUN_COMPOSER_NEW;
-               }
+               debug_warning_if(!email_params_get_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, &ugd->composer_type),
+                               "email_params_get_int(%s) failed!", EMAIL_BUNDLE_KEY_RUN_TYPE);
        }
 
-       g_free(operation);
-       g_free(run_type);
-
        debug_leave();
        email_profiling_end(composer_initial_data_parse_composer_run_type);
        return COMPOSER_ERROR_NONE;
 }
 
-COMPOSER_ERROR_TYPE_E composer_initial_data_pre_parse_arguments(EmailComposerUGD *ugd, app_control_h svc_handle)
+COMPOSER_ERROR_TYPE_E composer_initial_data_pre_parse_arguments(EmailComposerUGD *ugd, email_params_h params)
 {
        email_profiling_begin(composer_initial_data_pre_parse_arguments);
        debug_enter();
 
        retvm_if(!ugd, COMPOSER_ERROR_INVALID_ARG, "Invalid parameter: ugd is NULL!");
-       retvm_if(!svc_handle, COMPOSER_ERROR_INVALID_ARG, "Invalid parameter: svc_handle is NULL!");
+       retvm_if(!params, COMPOSER_ERROR_INVALID_ARG, "Invalid parameter: params is NULL!");
 
        COMPOSER_ERROR_TYPE_E return_val = COMPOSER_ERROR_NONE;
-       int ret = 0;
-       char *operation = NULL;
-       char *uri = NULL;
-       char *mime = NULL;
-       char *argv[6] = { 0, };
-       int i;
+       const char *operation = NULL;
+       const char *uri = NULL;
+       const char *mime = NULL;
+       const char *argv[6] = { 0, };
 
-       ret = app_control_get_operation(svc_handle, &operation);
-       debug_warning_if((ret != APP_CONTROL_ERROR_NONE) && (ret != APP_CONTROL_ERROR_KEY_NOT_FOUND), "app_control_get_operation() failed! ret:[%d]", ret);
+       debug_warning_if(!email_params_get_operation_opt(params, &operation),
+                       "email_params_get_operation_opt() failed!");
 
        if (ugd->composer_type != RUN_COMPOSER_EXTERNAL) {
                debug_log("Composer launched internally! type:[%d]", ugd->composer_type);
 
-               _initial_data_parse_service_data_by_internal(svc_handle, argv, ugd->composer_type);
+               _initial_data_parse_params_by_internal(params, argv, ugd->composer_type);
 
-               return_val = _initial_data_process_service_data_by_internal(ugd, argv);
-               gotom_if(return_val != COMPOSER_ERROR_NONE, EXIT_FUNC, "_initial_data_process_service_data_by_internal() failed!");
+               return_val = _initial_data_process_params_by_internal(ugd, argv);
+               gotom_if(return_val != COMPOSER_ERROR_NONE, EXIT_FUNC, "_initial_data_process_params_by_internal() failed!");
        } else {
                debug_log("Composer launched externally!");
 
                if (operation == NULL) { /* ug called by ug_create */
-                       _initial_data_parse_service_data_by_ug(svc_handle, argv);
+                       _initial_data_parse_params_by_ug(params, argv);
                } else { /* ug called by appcontrol request */
 
                        if (!g_strcmp0(operation, APP_CONTROL_OPERATION_COMPOSE)) {
 
-                               ret = app_control_get_uri(svc_handle, &uri);
-                               if ((ret == APP_CONTROL_ERROR_NONE) && STR_VALID(uri) &&
+                               if (email_params_get_uri(params, &uri) &&
                                                g_str_has_prefix(uri, COMPOSER_SCHEME_MAILTO)) {
                                        _initial_data_parse_mailto_uri(ugd, uri);
                                }
@@ -1221,57 +1198,44 @@ COMPOSER_ERROR_TYPE_E composer_initial_data_pre_parse_arguments(EmailComposerUGD
                        } else if (!g_strcmp0(operation, APP_CONTROL_OPERATION_SHARE) ||
                                                !g_strcmp0(operation, APP_CONTROL_OPERATION_MULTI_SHARE)) {
 
-                               ret = app_control_get_mime(svc_handle, &mime);
-                               if ((ret == APP_CONTROL_ERROR_NONE) &&
+                               if (email_params_get_mime(params, &mime) &&
                                                !g_strcmp0(mime, COMPOSER_MIME_CONTACT_SHARE)) {
-                                       _initial_data_parse_contacts_sharing(ugd, svc_handle, operation);
+                                       _initial_data_parse_contacts_sharing(ugd, params, operation);
                                }
                        }
 
-                       _initial_data_parse_service_data_by_appcontrol(ugd, svc_handle, argv, operation);
+                       _initial_data_parse_params_by_appcontrol(ugd, params, argv, operation);
                }
 
-               return_val = _initial_data_process_service_data_by_external(ugd, argv);
-               gotom_if(return_val != COMPOSER_ERROR_NONE, EXIT_FUNC, "_initial_data_process_service_data_by_external() failed!");
+               return_val = _initial_data_process_params_by_external(ugd, argv);
+               gotom_if(return_val != COMPOSER_ERROR_NONE, EXIT_FUNC, "_initial_data_process_params_by_external() failed!");
        }
 
 EXIT_FUNC:
-       free(uri);
-       free(mime);
-       free(operation);
-       for (i = 0; i < 6; i++) {
-               free(argv[i]);
-       }
-
        debug_leave();
        email_profiling_end(composer_initial_data_pre_parse_arguments);
        return return_val;
 }
 
-COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUGD *ugd, app_control_h svc_handle)
+COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUGD *ugd, email_params_h params)
 {
        email_profiling_begin(composer_initial_data_post_parse_arguments);
        debug_enter();
 
        retvm_if(!ugd, COMPOSER_ERROR_INVALID_ARG, "Invalid parameter: ugd is NULL!");
-       retvm_if(!svc_handle, COMPOSER_ERROR_INVALID_ARG, "Invalid parameter: svc_handle is NULL!");
+       retvm_if(!params, COMPOSER_ERROR_INVALID_ARG, "Invalid parameter: params is NULL!");
 
        if (ugd->composer_type == RUN_COMPOSER_EXTERNAL) {
-               int ret = APP_CONTROL_ERROR_NONE;
-               char *operation = NULL;
+               const char *operation = NULL;
                Eina_List *attachment_uri_list = NULL;
 
-               ret = app_control_get_operation(svc_handle, &operation);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_operation() failed! ret:[%d]", ret);
+               debug_warning_if(!email_params_get_operation_opt(params, &operation),
+                               "email_params_get_operation_opt() failed!");
 
                /* TODO: the first case is needed? it seems like dead case. */
                if (operation == NULL) { /* ug called by ug_create */
-                       char *attachment_uri = NULL;
-
-                       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_ATTACHMENT, &attachment_uri);
-                       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data() failed! ret:[%d]", ret);
-
-                       if (attachment_uri) {
+                       const char *attachment_uri = NULL;
+                       if (email_params_get_str(params, EMAIL_BUNDLE_KEY_ATTACHMENT, &attachment_uri)) {
                                gchar **split_att = g_strsplit_set(attachment_uri, ";\n", -1);
                                int i;
                                for (i = 0; i < g_strv_length(split_att); i++) {
@@ -1280,7 +1244,6 @@ COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUG
                                        }
                                }
                                g_strfreev(split_att);
-                               free(attachment_uri);
                        }
 
                /* sharing contacts */
@@ -1311,40 +1274,37 @@ COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUG
 
                        /* 1. parse uri */
                        if (!g_strcmp0(operation, APP_CONTROL_OPERATION_SHARE)) {
-                               char *uri = NULL;
-                               ret = app_control_get_uri(svc_handle, &uri);
-                               if (ret == APP_CONTROL_ERROR_NONE) {
+                               const char *uri = NULL;
+                               if (email_params_get_uri(params, &uri)) {
                                        if (STR_VALID(uri) && !g_str_has_prefix(uri, COMPOSER_SCHEME_MAILTO)) {
                                                attachment_uri_list = eina_list_append(attachment_uri_list, g_strdup(uri));
                                                parse_data_path = false;
                                        }
-                                       free(uri);
                                }
                        }
 
                        /* 2. parse value as "http://tizen.org/appcontrol/data/path" */
                        if (parse_data_path) {
-                               char *path = NULL;
-                               char **path_array = NULL;
+                               const char *path = NULL;
+                               const char **path_array = NULL;
                                int path_array_len = 0;
-                               bool is_array = false;
+                               bool is_array = true;
+                               bool ok = false;
 
-                               ret = app_control_is_extra_data_array(svc_handle, APP_CONTROL_DATA_PATH, &is_array);
-                               if (ret != APP_CONTROL_ERROR_NONE) {
-                                       debug_error("app_control_is_extra_data_array() failed! ret:[%d]", ret);
-                                       is_array = true;
+                               if (!email_params_get_is_array(params, APP_CONTROL_DATA_PATH, &is_array)) {
+                                       debug_error("email_params_get_is_array() failed!");
                                }
 
                                debug_log("is_array = %d", is_array);
                                if (is_array) {
-                                       ret = app_control_get_extra_data_array(svc_handle, APP_CONTROL_DATA_PATH, &path_array, &path_array_len);
+                                       ok = email_params_get_str_array(params, APP_CONTROL_DATA_PATH, &path_array, &path_array_len);
                                } else {
-                                       ret = app_control_get_extra_data(svc_handle, APP_CONTROL_DATA_PATH, &path);
+                                       ok = email_params_get_str(params, APP_CONTROL_DATA_PATH, &path);
                                }
 
-                               if (ret != APP_CONTROL_ERROR_NONE) {
+                               if (!ok) {
                                        if (g_strcmp0(operation, APP_CONTROL_OPERATION_SHARE_TEXT)) {
-                                               debug_warning("app_control_get_extra_data_***(%s) failed! ret:[%d]", APP_CONTROL_DATA_PATH, ret);
+                                               debug_warning("email_params_get_str***(%s) failed!", APP_CONTROL_DATA_PATH);
                                        }
                                } else if (path_array) {
                                        int i = 0;
@@ -1352,14 +1312,11 @@ COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUG
                                                if (STR_VALID(path_array[i])) {
                                                        attachment_uri_list = eina_list_append(attachment_uri_list, g_strdup(path_array[i]));
                                                }
-                                               free(path_array[i]);
                                        }
-                                       free(path_array);
                                } else {
                                        if (STR_VALID(path)) {
                                                attachment_uri_list = eina_list_append(attachment_uri_list, g_strdup(path));
                                        }
-                                       free(path);
                                }
                        }
                }
@@ -1375,7 +1332,6 @@ COMPOSER_ERROR_TYPE_E composer_initial_data_post_parse_arguments(EmailComposerUG
 
                        _initial_data_parse_attachments(ugd, attachment_uri_list);
                }
-               g_free(operation);
        }
 
        debug_leave();
@@ -1491,25 +1447,21 @@ static void _recp_append_string(gchar **dst, gchar *src)
        }
 }
 
-static void _recp_append_extra_data_array(gchar **dst, app_control_h app_control, const char *data_key)
+static void _recp_append_extra_data_array(gchar **dst, email_params_h params, const char *data_key)
 {
        retm_if(!dst, "dst is NULL");
-       retm_if(!app_control, "app_control is NULL");
+       retm_if(!params, "params is NULL");
        retm_if(!data_key, "data_key is NULL");
 
-       char **array = NULL;
+       const char **array = NULL;
        int array_length = 0;
-       int ret = 0;
        int i = 0;
 
-       ret = app_control_get_extra_data_array(app_control, data_key, &array, &array_length);
-       retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data_array(%s) failed! ret:[%d]", data_key, ret);
+       retm_if(!email_params_get_str_array(params, data_key, &array, &array_length),
+                       "email_params_get_str_array(%s) failed!", data_key);
 
        while (i < array_length) {
                _recp_append_string(dst, g_strdup(array[i]));
-               free(array[i]);
                ++i;
        }
-
-       free(array);
 }
index 6bccd16..570fb5b 100644 (file)
@@ -15,7 +15,6 @@
  *
  */
 
-#include <app_control.h>
 #include <account.h>
 
 #include "email-popup-utils.h"
  * Declaration for static functions
  */
 
-static void _launch_app_recipient_contacts_reply_cb(void *data, app_control_result_e result, app_control_h reply);
+static void _launch_app_recipient_contacts_reply_cb(void *data, app_control_result_e result, email_params_h reply);
 static void _preview_attachment_close_cb(void *data);
 
-static int _composer_pick_contacts_set_params(EmailComposerUGD *ugd, app_control_h svc_handle);
 static int _composer_add_update_contact_launch(EmailComposerUGD *ugd,
                const char *operation,
                const char *contact_email,
                const char *contact_name);
-static int _composer_add_update_contact_set_params(EmailComposerUGD *ugd,
-               app_control_h service,
-               const char *operation,
-               const char *contact_email,
-               const char *contact_name);
 
 static email_string_t EMAIL_COMPOSER_STRING_NULL = { NULL, NULL };
 static email_string_t EMAIL_COMPOSER_STRING_BUTTON_OK = { PACKAGE, "IDS_EMAIL_BUTTON_OK" };
@@ -66,81 +59,31 @@ static int _composer_add_update_contact_launch(EmailComposerUGD *ugd,
 {
        debug_enter();
 
-       app_control_h svc_handle = NULL;
-       int ret = app_control_create(&svc_handle);
-       retvm_if((ret != APP_CONTROL_ERROR_NONE || !svc_handle),
-                       COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION,
-                       "app_control_create() failed![%d]", ret);
+       int ret = -1;
+       email_params_h params = NULL;
 
-       ret = app_control_set_mime(svc_handle, EMAIL_CONTACT_MIME_SCHEME);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_error("app_control_set_mime failed![%d]", ret);
-               app_control_destroy(svc_handle);
-               return COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION;
-       }
+       if (email_params_create(&params) &&
+               email_params_set_mime(params, EMAIL_CONTACT_MIME_SCHEME) &&
+               email_params_set_operation(params, operation) &&
+               email_params_add_str(params, EMAIL_CONTACT_EXT_DATA_EMAIL, contact_email) &&
+               (!contact_name ||
+               email_params_add_str(params, EMAIL_CONTACT_EXT_DATA_NAME, contact_name))) {
 
-       if (_composer_add_update_contact_set_params(ugd, svc_handle,
-                       operation, contact_email, contact_name) != APP_CONTROL_ERROR_NONE) {
-               debug_error("_composer_add_update_contact_set_params failed![%d]", ret);
-               app_control_destroy(svc_handle);
-               return COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION;
+               ret = email_module_launch_app(ugd->base.module, EMAIL_LAUNCH_APP_AUTO, params, NULL);
        }
 
-       ret = email_module_launch_app(ugd->base.module, EMAIL_LAUNCH_APP_AUTO, svc_handle, NULL);
+       email_params_free(&params);
+
        if (ret != 0) {
-               debug_error("email_module_launch_app() failed![%d]", ret);
-               app_control_destroy(svc_handle);
+               debug_error("Launch failed! [%d]", ret);
                return COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION;
        }
 
-       app_control_destroy(svc_handle);
        debug_leave();
-
        return COMPOSER_ERROR_NONE;
 }
 
-static int _composer_pick_contacts_set_params(EmailComposerUGD *ugd, app_control_h svc_handle)
-{
-       int ret = app_control_set_operation(svc_handle, APP_CONTROL_OPERATION_PICK);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION, "app_control_set_operation() failed! ret:[%d]", ret);
-
-       ret = app_control_add_extra_data(svc_handle, EMAIL_CONTACT_EXT_DATA_SELECTION_MODE, EMAIL_CONTACT_BUNDLE_SELECT_MULTIPLE);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION, "app_control_add_extra_data() failed! ret:[%d]", ret);
-
-       ret = app_control_add_extra_data(svc_handle, EMAIL_CONTACT_EXT_DATA_TYPE, EMAIL_CONTACT_BUNDLE_EMAIL);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION, "app_control_add_extra_data() failed! ret:[%d]", ret);
-
-       char max_count[BUF_LEN_T] = { 0 };
-       snprintf(max_count, sizeof(max_count), "%d", MAX_RECIPIENT_COUNT);
-       ret = app_control_add_extra_data(svc_handle, EMAIL_CONTACT_EXT_DATA_TOTAL_COUNT, max_count);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION, "app_control_add_extra_data() failed! ret:[%d]", ret);
-
-       return COMPOSER_ERROR_NONE;
-}
-
-static int _composer_add_update_contact_set_params(EmailComposerUGD *ugd,
-               app_control_h service,
-               const char *operation,
-               const char *contact_email,
-               const char *contact_name)
-{
-       int ret = app_control_set_operation(service, operation);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION, "app_control_set_operation failed: %d", ret);
-
-       ret = app_control_add_extra_data(service, EMAIL_CONTACT_EXT_DATA_EMAIL, contact_email);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION, "app_control_add_extra_data failed: %d", ret);
-
-       if (contact_name) {
-               ret = app_control_add_extra_data(service, EMAIL_CONTACT_EXT_DATA_NAME, contact_name);
-               retvm_if(ret != APP_CONTROL_ERROR_NONE, COMPOSER_ERROR_FAILED_TO_LAUNCH_APPLICATION, "app_control_add_extra_data failed: %d", ret);
-       }
-
-       return COMPOSER_ERROR_NONE;
-}
-
-
-
-static void _launch_app_recipient_contacts_reply_cb(void *data, app_control_result_e result, app_control_h reply)
+static void _launch_app_recipient_contacts_reply_cb(void *data, app_control_result_e result, email_params_h reply)
 {
        debug_enter();
 
@@ -151,11 +94,11 @@ static void _launch_app_recipient_contacts_reply_cb(void *data, app_control_resu
        ugd->recipient_added_from_contacts = EINA_TRUE;
 
        int i = 0;
-       char **return_value = NULL;
+       const char **return_value = NULL;
        int len = 0;
 
-       int ret = app_control_get_extra_data_array(reply, EMAIL_CONTACT_EXT_DATA_SELECTED, &return_value, &len);
-       retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data_array() failed! ret:[%d]", ret);
+       retm_if(!email_params_get_str_array(reply, EMAIL_CONTACT_EXT_DATA_SELECTED, &return_value, &len),
+                       "email_params_get_str_array() failed!");
 
        for (i = 0; i < len ; i++) {
 
@@ -263,7 +206,7 @@ void composer_launcher_preview_attachment(EmailComposerUGD *ugd, const char *uri
        if (ret != 0) {
                ugd->composer_popup = composer_util_popup_create(ugd, EMAIL_COMPOSER_STRING_UNABLE_TO_OPEN_FILE, EMAIL_COMPOSER_STRING_FILE_NOT_SUPPORTED,
                                composer_util_popup_response_cb, EMAIL_COMPOSER_STRING_BUTTON_OK, EMAIL_COMPOSER_STRING_NULL, EMAIL_COMPOSER_STRING_NULL);
-               debug_secure("app_control_send_launch_request() failed!");
+               debug_secure("email_preview_attachment_file() failed!");
                return;
        }
        evas_object_freeze_events_set(ugd->ewk_view, EINA_TRUE);
@@ -276,16 +219,19 @@ void composer_launcher_launch_storage_settings(EmailComposerUGD *ugd)
        debug_enter();
        retm_if(!ugd, "Invalid parameter: ugd is NULL!");
 
-       app_control_h svc_handle = NULL;
-       int ret = app_control_create(&svc_handle);
-       retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_create() failed![%d]", ret);
+       int ret = -1;
+       email_params_h params = NULL;
 
-       ret = email_module_launch_app(ugd->base.module, EMAIL_LAUNCH_APP_STORAGE_SETTINGS, svc_handle, NULL);
-       if (ret != 0) {
-               debug_error("email_module_launch_app failed!");
+       if (email_params_create(&params)) {
+
+               ret = email_module_launch_app(ugd->base.module, EMAIL_LAUNCH_APP_STORAGE_SETTINGS, params, NULL);
        }
 
-       app_control_destroy(svc_handle);
+       email_params_free(&params);
+
+       if (ret != 0) {
+               debug_error("Launch failed! [%d]", ret);
+       }
 
        debug_leave();
 }
@@ -296,53 +242,37 @@ void composer_launcher_pick_contacts(EmailComposerUGD *ugd)
 
        retm_if(!ugd, "Invalid parameter: ugd is NULL!");
 
-       app_control_h svc_handle = NULL;
-
-       while (1) {
+       int ret = -1;
+       email_params_h params = NULL;
 
-               int ret = app_control_create(&svc_handle);
-               if (ret != APP_CONTROL_ERROR_NONE || !svc_handle) {
-                       debug_error("app_control_create() failed![%d]", ret);
-                       break;
-               }
-
-               ret = app_control_set_mime(svc_handle, EMAIL_CONTACT_MIME_SCHEME);
-               if (ret != APP_CONTROL_ERROR_NONE) {
-                       debug_error("app_control_set_mime failed![%d]", ret);
-                       break;
-               }
-
-               ret = _composer_pick_contacts_set_params(ugd, svc_handle);
-               if (ret != COMPOSER_ERROR_NONE) {
-                       debug_error("_composer_pick_contacts_set_params failed![%d]", ret);
-                       break;
-               }
+       if (email_params_create(&params) &&
+               email_params_set_mime(params, EMAIL_CONTACT_MIME_SCHEME) &&
+               email_params_set_operation(params, APP_CONTROL_OPERATION_PICK) &&
+               email_params_add_str(params, EMAIL_CONTACT_EXT_DATA_SELECTION_MODE, EMAIL_CONTACT_BUNDLE_SELECT_MULTIPLE) &&
+               email_params_add_str(params, EMAIL_CONTACT_EXT_DATA_TYPE, EMAIL_CONTACT_BUNDLE_EMAIL) &&
+               email_params_add_int(params, EMAIL_CONTACT_EXT_DATA_TOTAL_COUNT, MAX_RECIPIENT_COUNT)) {
 
                email_launched_app_listener_t listener = { 0 };
                listener.cb_data = ugd;
                listener.reply_cb = _launch_app_recipient_contacts_reply_cb;
 
-               ret = email_module_launch_app(ugd->base.module, EMAIL_LAUNCH_APP_AUTO, svc_handle, &listener);
-               if (ret != 0) {
-                       debug_error("email_module_launch_app() failed![%d]", ret);
-                       break;
-               }
+               ret = email_module_launch_app(ugd->base.module, EMAIL_LAUNCH_APP_AUTO, params, &listener);
+       }
 
-               app_control_destroy(svc_handle);
+       email_params_free(&params);
 
-               debug_leave();
-               return;
+       if (ret != 0) {
+               debug_error("Launch failed! [%d]", ret);
+
+               ugd->composer_popup = composer_util_popup_create(ugd,
+                               EMAIL_COMPOSER_UNABLE_TO_LAUNCH_APPLICATION,
+                               EMAIL_COMPOSER_STRING_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED,
+                               composer_util_popup_response_cb,
+                               EMAIL_COMPOSER_STRING_BUTTON_OK,
+                               EMAIL_COMPOSER_STRING_NULL,
+                               EMAIL_COMPOSER_STRING_NULL);
        }
 
-       app_control_destroy(svc_handle);
-       ugd->composer_popup = composer_util_popup_create(ugd,
-                       EMAIL_COMPOSER_UNABLE_TO_LAUNCH_APPLICATION,
-                       EMAIL_COMPOSER_STRING_POP_AN_UNKNOWN_ERROR_HAS_OCCURRED,
-                       composer_util_popup_response_cb,
-                       EMAIL_COMPOSER_STRING_BUTTON_OK,
-                       EMAIL_COMPOSER_STRING_NULL,
-                       EMAIL_COMPOSER_STRING_NULL);
-
        debug_leave();
 }
 
index d5f7697..e3f399a 100644 (file)
@@ -83,8 +83,8 @@ static void _composer_set_environment_variables();
 static void _composer_add_main_callbacks(EmailComposerUGD *ugd);
 static void _composer_del_main_callbacks(EmailComposerUGD *ugd);
 
-static int _composer_module_create(email_module_t *self, app_control_h params);
-static void _composer_on_message(email_module_t *self, app_control_h msg);
+static int _composer_module_create(email_module_t *self, email_params_h params);
+static void _composer_on_message(email_module_t *self, email_params_h msg);
 static void _composer_on_event(email_module_t *self, email_module_event_e event);
 
 static int _composer_create(email_view_t *self);
@@ -162,7 +162,7 @@ static Eina_Bool _composer_delayed_drawing_timer_cb(void *data)
        composer_initial_view_draw_remaining_components(ugd);
 
        composer_initial_data_set_mail_info(ugd, true);
-       composer_initial_data_post_parse_arguments(ugd, ugd->ec_app);
+       composer_initial_data_post_parse_arguments(ugd, ugd->launch_params);
        composer_initial_data_make_initial_contents(ugd);
 
 CATCH:
@@ -189,7 +189,7 @@ static Eina_Bool _composer_update_data_after_adding_account_timer_cb(void *data)
        gotom_if(ugd->eComposerErrorType != COMPOSER_ERROR_NONE, CATCH, "_composer_construct_composer_data() failed");
 
        composer_initial_data_set_mail_info(ugd, true);
-       composer_initial_data_post_parse_arguments(ugd, ugd->ec_app);
+       composer_initial_data_post_parse_arguments(ugd, ugd->launch_params);
        composer_initial_data_make_initial_contents(ugd);
 
 CATCH:
@@ -227,7 +227,7 @@ static void _composer_launch_settings_popup_response_cb(void *data, Evas_Object
        debug_enter();
 
        EmailComposerUGD *ugd = data;
-       app_control_h params = NULL;
+       email_params_h params = NULL;
        email_module_h module = NULL;
 
        if ((obj != ugd->composer_popup) &&
@@ -710,7 +710,7 @@ static COMPOSER_ERROR_TYPE_E _composer_construct_composer_data(void *data)
        ret = _composer_initialize_services(ugd);
        gotom_if(ret != COMPOSER_ERROR_NONE, CATCH, "_composer_initialize_services() failed");
 
-       ret = composer_initial_data_pre_parse_arguments(ugd, ugd->ec_app);
+       ret = composer_initial_data_pre_parse_arguments(ugd, ugd->launch_params);
        gotom_if(ret != COMPOSER_ERROR_NONE, CATCH, "composer_initial_data_pre_parse_arguments() failed");
 
        ret = _composer_prepare_vcard(ugd);
@@ -1057,14 +1057,14 @@ static void _composer_initial_view_draw_richtext_components_if_enabled(EmailComp
        }
 }
 
-static int _composer_module_create(email_module_t *self, app_control_h params)
+static int _composer_module_create(email_module_t *self, email_params_h params)
 {
        debug_enter();
        retvm_if(!self, -1, "Invalid parameter: self is NULL!");
 
        EmailComposerModule *md = (EmailComposerModule *)self;
 
-       app_control_clone(&md->view.ec_app, params);
+       email_params_clone(&md->view.launch_params, params);
 
        md->view.eComposerErrorType = composer_initial_data_parse_composer_run_type(&md->view, params);
        retvm_if(md->view.eComposerErrorType != COMPOSER_ERROR_NONE, -1, "composer_initial_data_parse_composer_run_type() failed");
@@ -1154,7 +1154,7 @@ static void _composer_start(EmailComposerUGD *ugd)
                ugd->timer_lazy_loading = ecore_timer_add(0.2f, _composer_delayed_drawing_timer_cb, ugd);
        } else {
                composer_initial_data_set_mail_info(ugd, true);
-               composer_initial_data_post_parse_arguments(ugd, ugd->ec_app);
+               composer_initial_data_post_parse_arguments(ugd, ugd->launch_params);
                composer_initial_data_make_initial_contents(ugd);
        }
 
@@ -1226,20 +1226,18 @@ static void _composer_destroy(email_view_t *self)
        retm_if(!self, "Invalid parameter: self is NULL!");
 
        EmailComposerUGD *ugd = (EmailComposerUGD *)self;
-       app_control_h reply_service;
+       email_params_h reply = NULL;
 
-       int ret = app_control_create(&reply_service);
-       if (ret == APP_CONTROL_ERROR_NONE) {
-               ret = email_module_send_result(ugd->base.module, reply_service);
+       if (email_params_create(&reply)) {
+               int ret = email_module_send_result(ugd->base.module, reply);
                debug_warning_if(ret != 0, "email_module_send_result() failed!");
-
-               ret = app_control_destroy(reply_service);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_destroy() failed!");
        } else {
-               debug_warning("app_control_create() failed!");
+               debug_warning("email_params_create() failed!");
        }
 
-       app_control_destroy(ugd->ec_app);
+       email_params_free(&reply);
+
+       email_params_free(&ugd->launch_params);
 
        ugd->is_composer_getting_destroyed = EINA_TRUE;
        _composer_del_main_callbacks(ugd);
@@ -1261,7 +1259,7 @@ static void _composer_on_back_key(email_view_t *self)
        return;
 }
 
-static void _composer_on_message(email_module_t *self, app_control_h msg)
+static void _composer_on_message(email_module_t *self, email_params_h msg)
 {
        debug_enter();
 
@@ -1269,10 +1267,10 @@ static void _composer_on_message(email_module_t *self, app_control_h msg)
 
        EmailComposerModule *md = (EmailComposerModule *)self;
        EmailComposerUGD *ugd = &md->view;
-       char *msg_type = NULL;
+       const char *msg_type = NULL;
 
-       int ret = app_control_get_extra_data(msg, EMAIL_BUNDLE_KEY_MSG, &msg_type);
-       debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data(%s) failed! (%d)", EMAIL_BUNDLE_KEY_MSG, ret);
+       debug_warning_if(!email_params_get_str(msg, EMAIL_BUNDLE_KEY_MSG,  &msg_type),
+                       "email_params_get_str(%s) failed!", EMAIL_BUNDLE_KEY_MSG);
 
        if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_EMAIL_COMPOSER_SAVE_DRAFT) == 0) {
 
@@ -1286,7 +1284,6 @@ static void _composer_on_message(email_module_t *self, app_control_h msg)
                        ugd->need_to_destroy_after_initializing = EINA_TRUE;
                }
        }
-       FREE(msg_type);
 
        debug_leave();
 }
index 6174692..d1bd988 100644 (file)
@@ -67,7 +67,7 @@ typedef struct ug_data
        /*Filter operation type*/
        FilterOperationType op_type;
 
-       char *param_filter_addr;
+       const char *param_filter_addr;
 
        /* base layout variable */
        Evas_Object *more_btn;
index a04b8d3..3630795 100644 (file)
@@ -35,7 +35,7 @@ static void _return_key_cb(void *data, Evas_Object *obj, void *event_info);
 static void _entry_changed_cb(void *data, Evas_Object *obj, void *event_info);
 static void _contact_button_clicked_cb(void *data, Evas_Object *obj, void *event_info);
 static Evas_Object *_gl_content_get_cb(void *data, Evas_Object *obj, const char *part);
-static void _contact_app_reply_cb(void *data, app_control_result_e result, app_control_h reply);
+static void _contact_app_reply_cb(void *data, app_control_result_e result, email_params_h reply);
 static int _checking_is_dup_rule(EmailFilterVD *vd, email_rule_t *filter_rule);
 
 static Evas_Object *_create_list(EmailFilterVD *vd);
@@ -495,71 +495,43 @@ static void _launch_contact_app(EmailFilterVD *vd)
 {
        debug_enter();
 
-       app_control_h service = NULL;
-       email_launched_app_listener_t listener = { 0 };
-       int ret = 0;
-       listener.cb_data = vd;
-       listener.reply_cb = _contact_app_reply_cb;
-
-       app_control_create(&service);
-       retm_if(!service, "app_control_create failed");
+       email_params_h params = NULL;
 
-       ret = app_control_set_operation(service, APP_CONTROL_OPERATION_PICK);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_log("app_control_set_operation() failed! ret:[%d]", ret);
-               goto FINISH;
-       }
-
-       ret = app_control_set_mime(service, EMAIL_CONTACT_MIME_SCHEME);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_log("app_control_set_mime() failed! ret:[%d]", ret);
-               goto FINISH;
-       }
+       if (email_params_create(&params) &&
+               email_params_set_operation(params, APP_CONTROL_OPERATION_PICK) &&
+               email_params_set_mime(params, EMAIL_CONTACT_MIME_SCHEME) &&
+               email_params_add_str(params, EMAIL_CONTACT_EXT_DATA_TYPE, EMAIL_CONTACT_BUNDLE_EMAIL) &&
+               email_params_add_str(params, EMAIL_CONTACT_EXT_DATA_SELECTION_MODE, EMAIL_CONTACT_BUNDLE_SELECT_SINGLE)) {
 
-       ret = app_control_add_extra_data(service, EMAIL_CONTACT_EXT_DATA_TYPE, EMAIL_CONTACT_BUNDLE_EMAIL);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_log("app_control_add_extra_data() failed! ret:[%d]", ret);
-               goto FINISH;
-       }
+               email_launched_app_listener_t listener = { 0 };
+               listener.cb_data = vd;
+               listener.reply_cb = _contact_app_reply_cb;
 
-       ret = app_control_add_extra_data(service, EMAIL_CONTACT_EXT_DATA_SELECTION_MODE, EMAIL_CONTACT_BUNDLE_SELECT_SINGLE);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_log("app_control_add_extra_data() failed! ret:[%d]", ret);
-               goto FINISH;
+               email_module_launch_app(vd->base.module, EMAIL_LAUNCH_APP_AUTO, params, &listener);
        }
 
-       email_module_launch_app(vd->base.module, EMAIL_LAUNCH_APP_AUTO, service, &listener);
-
-FINISH:
-       app_control_destroy(service);
+       email_params_free(&params);
 }
 
-static void _contact_app_reply_cb(void *data, app_control_result_e result, app_control_h reply)
+static void _contact_app_reply_cb(void *data, app_control_result_e result, email_params_h reply)
 {
        debug_enter();
 
        EmailFilterVD *vd = data;
-       char **filter_addr_id_arr = NULL;
+       const char **filter_addr_id_arr = NULL;
        int id = -1;
        int len = 0;
 
-       int ret = app_control_get_extra_data_array(reply, EMAIL_CONTACT_EXT_DATA_SELECTED, &filter_addr_id_arr, &len);
-       retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data_array() failed! ret:[%d]", ret);
+       retm_if(!email_params_get_str_array(reply, EMAIL_CONTACT_EXT_DATA_SELECTED, &filter_addr_id_arr, &len),
+                       "email_params_get_str_array() failed!");
 
        if (len <= 0) {
-               free(filter_addr_id_arr);
                return;
        }
 
        id = atoi(filter_addr_id_arr[0]);
        debug_log("email id: %d", id);
 
-       int i = 0;
-       for (; i < len; i++) {
-               free(filter_addr_id_arr[i]);
-       }
-       free(filter_addr_id_arr);
-
        email_contact_list_info_t *contact_info = email_contacts_get_contact_info_by_email_id(id);
        if (!contact_info || !contact_info->email_address) {
                debug_error("contact_data is NULL");
index d52d4fe..ba33523 100644 (file)
@@ -35,9 +35,9 @@ static void _keypad_up_cb(void *data, Evas_Object *obj, void *event_info);
 static void _entry_maxlength_reached_cb(void *data, Evas_Object *obj, void *event_info);
 static void _title_show(EmailFilterUGD *ugd);
 static void _title_hide(EmailFilterUGD *ugd);
-static EmailFilterViewType _parse_option(EmailFilterUGD *ugd, app_control_h data);
+static EmailFilterViewType _parse_option(EmailFilterUGD *ugd, email_params_h params);
 
-static int _filter_create(email_module_t *self, app_control_h params)
+static int _filter_create(email_module_t *self, email_params_h params)
 {
        debug_enter();
        EmailFilterUGD *ugd = NULL;
@@ -100,43 +100,38 @@ static void _filter_on_event(email_module_t *self, email_module_event_e event)
        }
 }
 
-static EmailFilterViewType _parse_option(EmailFilterUGD *ugd, app_control_h data)
+static EmailFilterViewType _parse_option(EmailFilterUGD *ugd, email_params_h params)
 {
        debug_enter();
-       char *operation_mode = NULL;
-       char *filter_op = NULL;
+       const char *operation_mode = NULL;
+       const char *filter_op = NULL;
 
-       retvm_if(!data, EMAIL_FILTER_VIEW_INVALID, "invalid parameter!");
+       retvm_if(!params, EMAIL_FILTER_VIEW_INVALID, "invalid parameter!");
 
-       app_control_get_extra_data(data, EMAIL_BUNDLE_KEY_FILTER_OPERATION, &filter_op);
-       if (filter_op) {
+       if (email_params_get_str(params, EMAIL_BUNDLE_KEY_FILTER_OPERATION, &filter_op)) {
                if (!strcmp(filter_op, EMAIL_BUNDLE_VAL_FILTER_OPERATION_PS))
                        ugd->op_type = EMAIL_FILTER_OPERATION_PRIORITY_SERNDER;
                else if (!strcmp(filter_op, EMAIL_BUNDLE_VAL_FILTER_OPERATION_BLOCK))
                        ugd->op_type = EMAIL_FILTER_OPERATION_BLOCK;
                else
                        ugd->op_type = EMAIL_FILTER_OPERATION_FILTER;
-               free(filter_op);
        } else {
                ugd->op_type = EMAIL_FILTER_OPERATION_FILTER;
        }
 
-       app_control_get_extra_data(data, EMAIL_BUNDLE_KEY_FILTER_MODE, &operation_mode);
-       retvm_if(!operation_mode, EMAIL_FILTER_VIEW_INVALID, "invalid parameter!");
+       retvm_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_FILTER_MODE, &operation_mode),
+                       EMAIL_FILTER_VIEW_INVALID, "invalid parameter!");
 
        if (!strcmp(operation_mode, EMAIL_BUNDLE_VAL_FILTER_LIST)) {
-               free(operation_mode);
                debug_log("filter list view start");
                return EMAIL_FILTER_VIEW_FILTER_LIST;
        } else if (!strcmp(operation_mode, EMAIL_BUNDLE_VAL_FILTER_ADD)) {
-               app_control_get_extra_data(data, EMAIL_BUNDLE_KEY_FILTER_ADDR, &ugd->param_filter_addr);
-               free(operation_mode);
+               email_params_get_str_opt(params, EMAIL_BUNDLE_KEY_FILTER_ADDR, &ugd->param_filter_addr);
                debug_secure("filter add view start: address[%s]", ugd->param_filter_addr);
                return EMAIL_FILTER_VIEW_ADD_FILTER;
        }
 
        debug_error("invalid parameter!");
-       free(operation_mode);
        return EMAIL_FILTER_VIEW_INVALID;
 }
 
index 5885979..bbd2d2e 100644 (file)
  * @brief Creates Composer module from Mailbox view
  * @param[in]  data            User data (Email mailbox data)
  * @param[in]  type            Email Module type (EMAIL_MODULE_COMPOSER)
- * @param[in]  service         App control handler
+ * @param[in]  params          Email params handle
  * @return email_module_h handler that used as text filter
  */
-email_module_h mailbox_composer_module_create(void *data, email_module_type_e type, app_control_h service);
+email_module_h mailbox_composer_module_create(void *data, email_module_type_e type, email_params_h params);
 
 /**
  * @brief Callback function to destroy Composer module
@@ -38,10 +38,10 @@ void mailbox_composer_module_destroy(void *priv, email_module_h module);
  * @brief Creates Viewer module from Mailbox view
  * @param[in]  data            User data (Email mailbox data)
  * @param[in]  type            Email Module type (EMAIL_MODULE_COMPOSER)
- * @param[in]  service         App control handler
+ * @param[in]  params          Email params handle
  * @return email_module_h handler that used as text filter
  */
-email_module_h mailbox_viewer_module_create(void *data, email_module_type_e type, app_control_h service);
+email_module_h mailbox_viewer_module_create(void *data, email_module_type_e type, email_params_h params);
 
 /**
  * @brief Callback function to destroy Viewer module
@@ -54,10 +54,10 @@ void mailbox_viewer_module_destroy(void *priv, email_module_h module);
  * @brief Creates Account module from Mailbox view
  * @param[in]  data            User data (Email mailbox data)
  * @param[in]  type            Email Module type (EMAIL_MODULE_COMPOSER)
- * @param[in]  service         App control handler
+ * @param[in]  params          Email params handle
  * @return email_module_h handler that used as text filter
  */
-email_module_h mailbox_account_module_create(void *data, email_module_type_e type, app_control_h service);
+email_module_h mailbox_account_module_create(void *data, email_module_type_e type, email_params_h params);
 
 /**
  * @brief Callback function to destroy Account module
@@ -70,10 +70,10 @@ void mailbox_account_module_destroy(void *priv, email_module_h module);
  * @brief Creates Setting module from Mailbox view
  * @param[in]  data            User data (Email mailbox data)
  * @param[in]  type            Email Module type (EMAIL_MODULE_COMPOSER)
- * @param[in]  service         App control hendler
+ * @param[in]  params          Email params handle
  * @return email_module_h handler that used as text filter
  */
-email_module_h mailbox_setting_module_create(void *data, email_module_type_e type, app_control_h service);
+email_module_h mailbox_setting_module_create(void *data, email_module_type_e type, email_params_h params);
 
 /**
  * @brief Callback function to destroy Setting module
index 435b51b..8ef6054 100644 (file)
@@ -372,14 +372,14 @@ void mailbox_naviframe_mailbox_button_add(EmailMailboxUGD *mailbox_ugd);
  * @param[in]  mailbox_ugd             Email mailbox data
  * @return 0 on success, otherwise a negative error value
  */
-int mailbox_handle_next_msg_bundle(EmailMailboxUGD *mailbox_ugd, app_control_h msg);
+int mailbox_handle_next_msg_bundle(EmailMailboxUGD *mailbox_ugd, email_params_h msg);
 
 /**
  * @brief Handles message from Viewer to open the previous mail
  * @param[in]  mailbox_ugd             Email mailbox data
  * @return 0 on success, otherwise a negative error value
  */
-int mailbox_handle_prev_msg_bundle(EmailMailboxUGD *mailbox_ugd, app_control_h msg);
+int mailbox_handle_prev_msg_bundle(EmailMailboxUGD *mailbox_ugd, email_params_h msg);
 
 /**
  * @brief Provides functionality to open the Email viewer
index 2e2e4a0..b53668a 100644 (file)
@@ -30,24 +30,20 @@ void mailbox_process_move_mail(EmailMailboxUGD *mailbox_ugd)
 
        int checked_count = eina_list_count(mailbox_ugd->selected_mail_list);
        int account_id = 0;
-       int mail_list_length = 0;
-       app_control_h service;
+       int i = 0;
 
        debug_log("checked_count: [%d]", checked_count);
        if (checked_count <= 0) return;
 
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
+       char **selected_mail_list = malloc(checked_count * (sizeof(char *) + MAIL_ID_SIZE));
+       if (!selected_mail_list) {
+               debug_error("allocation memory failed");
                return;
        }
 
-       int i = 0;
-       int temp_count = 0;
-       temp_count = checked_count;
-       debug_log("temp_count %d", temp_count);
-       char **temp = MEM_ALLOC(temp, temp_count);
-       for (i = 0; i < temp_count; i++) {
-               temp[i] = MEM_ALLOC(temp[i], MAIL_ID_SIZE);
+       selected_mail_list[0] = (char *)&selected_mail_list[checked_count];
+       for (i = 1; i < checked_count; i++) {
+               selected_mail_list[i] = (selected_mail_list[i - 1] + MAIL_ID_SIZE);
        }
 
        for (i = 0; i < checked_count; i++) {
@@ -59,80 +55,31 @@ void mailbox_process_move_mail(EmailMailboxUGD *mailbox_ugd)
                        mailbox_ugd->move_src_mailbox_id = ld->mailbox_id;
                }
 
-               /* save the mail-id to be moved */
-               debug_log("not Thread...");
-               int mail_id = ld->mail_id;
-               snprintf(temp[mail_list_length++], MAIL_ID_SIZE, "%d", mail_id);
+               snprintf(selected_mail_list[i], MAIL_ID_SIZE, "%d", (int)ld->mail_id);
        }
 
-       debug_log("mail list length %d", mail_list_length);
-       char **selected_mail_list = (char **)malloc(mail_list_length * sizeof(char *));
-       if (!selected_mail_list) {
-               app_control_destroy(service);
-               for (i = 0; i < temp_count; i++) {
-                       FREE(temp[i]);
-               }
-               FREE(temp);
-               debug_error("allocation memory failed");
-               return;
-       }
-       for (i = 0; i < mail_list_length; i++) {
-               selected_mail_list[i] = (char *)malloc(MAIL_ID_SIZE * sizeof(char));
-               /* In case of failure free all previous elements service & temp & selected_mail_list[j] */
-               if (!selected_mail_list[i]) {
-                       int j = i;
-                       app_control_destroy(service);
-                       for (i = 0; i < temp_count; i++) {
-                               FREE(temp[i]);
-                       }
-                       FREE(temp);
-                       for (--j; j >= 0; --j) {
-                               free(selected_mail_list[j]);
-                       }
-                       free(selected_mail_list);
-                       debug_error("allocation memory failed");
-                       return;
-               }
-               snprintf(selected_mail_list[i], MAIL_ID_SIZE, "%s", temp[i]);
-       }
+       mailbox_sync_cancel_all(mailbox_ugd);
 
-       for (i = 0; i < temp_count; i++) {
-               FREE(temp[i]);
-       }
-       FREE(temp);
+       debug_log("account_id: %d, mailbox_id: %d", account_id, mailbox_ugd->move_src_mailbox_id);
 
-       mailbox_sync_cancel_all(mailbox_ugd);
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, account_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_ugd->move_src_mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 1) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_MODE, EMAIL_MOVE_VIEW_NORMAL) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, mailbox_ugd->b_editmode) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MOVE_SRC_MAILBOX_ID, mailbox_ugd->move_src_mailbox_id) &&
+               email_params_add_str_array(params, EMAIL_BUNDLE_KEY_ARRAY_SELECTED_MAIL_IDS,
+                               (const char **)selected_mail_list, checked_count)) {
 
-       char acctid[30] = { 0, };
-       snprintf(acctid, sizeof(acctid), "%d", account_id);
-       char mailboxid[30] = { 0, };
-       snprintf(mailboxid, sizeof(mailboxid), "%d", mailbox_ugd->move_src_mailbox_id);
-       char move_ug[30] = { 0, };
-       snprintf(move_ug, sizeof(move_ug), "%d", 1);
-       char move_mode[30] = { 0, };
-       snprintf(move_mode, sizeof(move_mode), "%d", EMAIL_MOVE_VIEW_NORMAL);
-       debug_log("setting move mode %s", move_mode);
-       char mailbox_edit_mode[30] = { 0, };
-       snprintf(mailbox_edit_mode, sizeof(mailbox_edit_mode), "%d", mailbox_ugd->b_editmode);
-       char move_src_mailbox_id[30] = { 0, };
-       snprintf(move_src_mailbox_id, sizeof(move_src_mailbox_id), "%d", mailbox_ugd->move_src_mailbox_id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, move_ug);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_MODE, move_mode);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, mailbox_edit_mode);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MOVE_SRC_MAILBOX_ID, move_src_mailbox_id);
-       app_control_add_extra_data_array(service, EMAIL_BUNDLE_KEY_ARRAY_SELECTED_MAIL_IDS, (const char **)selected_mail_list, mail_list_length);
-       debug_log("account_id: %s, mailbox_id: %s", acctid, mailboxid);
-
-       mailbox_ugd->account = mailbox_account_module_create(mailbox_ugd, EMAIL_MODULE_ACCOUNT, service);
-       app_control_destroy(service);
-
-       for (i = 0; i < mail_list_length; i++) {
-               free(selected_mail_list[i]);
+               mailbox_ugd->account = mailbox_account_module_create(mailbox_ugd, EMAIL_MODULE_ACCOUNT, params);
        }
-       free(selected_mail_list);
 
+       email_params_free(&params);
+
+       free(selected_mail_list);
 }
 
 void mailbox_process_delete_mail(void *data, Ecore_Thread *thd)
index f33a6af..bbed9f1 100644 (file)
@@ -457,29 +457,19 @@ static void _mail_item_gl_selected_cb(void *data, Evas_Object *obj, void *event_
                        debug_log("Composer UG is already launched");
                        return;
                }
-               app_control_h service;
-               if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-                       debug_warning("creating service handle failed");
-                       return;
-               }
 
-               char cmd[30] = { 0, };
-               snprintf(cmd, sizeof(cmd), "%d", RUN_COMPOSER_EDIT);
+               email_params_h params = NULL;
 
-               char mailid[30] = { 0, };
-               snprintf(mailid, sizeof(mailid), "%d", id);
-               char acctid[30] = { 0, };
-               snprintf(acctid, sizeof(acctid), "%d", ld->account_id);
-               char mailboxid[30] = { 0, };
-               snprintf(mailboxid, sizeof(mailboxid), "%d", ld->mailbox_id);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, cmd);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mailid);
+               if (email_params_create(&params) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, RUN_COMPOSER_EDIT) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, ld->account_id) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, ld->mailbox_id) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_MAIL_ID, id)) {
 
-               ld->mailbox_ugd->composer = mailbox_composer_module_create(ld->mailbox_ugd, EMAIL_MODULE_COMPOSER, service);
+                       ld->mailbox_ugd->composer = mailbox_composer_module_create(ld->mailbox_ugd, EMAIL_MODULE_COMPOSER, params);
+               }
 
-               app_control_destroy(service);
+               email_params_free(&params);
        } else {
                mailbox_list_open_email_viewer(ld);
        }
index beec2c9..53e8e11 100644 (file)
@@ -153,18 +153,17 @@ static void _settings_cb(void *data, Evas_Object *obj, void *event_info)
        retm_if(!data, "data is NULL");
 
        EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
-       app_control_h service;
+       email_params_h params = NULL;
 
        DELETE_EVAS_OBJECT(mailbox_ugd->more_ctxpopup);
 
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
-               return;
+       if (email_params_create(&params) &&
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SETTING)) {
+
+               mailbox_ugd->setting = mailbox_setting_module_create(mailbox_ugd, EMAIL_MODULE_SETTING, params);
        }
 
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_SETTING);
-       mailbox_ugd->setting = mailbox_setting_module_create(mailbox_ugd, EMAIL_MODULE_SETTING, service);
-       app_control_destroy(service);
+       email_params_free(&params);
 }
 
 static void _more_ctxpopup_back_cb(void *data, Evas_Object *obj, void *event_info)
@@ -295,23 +294,18 @@ static void _compose_toolbar_clicked_cb(void *data, Evas_Object *obj, void *even
        debug_log("composer type: %d", composer_type);
        debug_log("account id: %d", account_id);
 
-       char s_composer_type[14] = { 0, };
-       char s_account_id[14] = { 0, };
-       snprintf(s_composer_type, sizeof(s_composer_type), "%d", composer_type);
-       snprintf(s_account_id, sizeof(s_account_id), "%d", account_id);
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, composer_type) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, account_id)) {
 
-       app_control_h service;
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
+               mailbox_ugd->composer = mailbox_composer_module_create(mailbox_ugd, EMAIL_MODULE_COMPOSER, params);
+       } else {
                mailbox_ugd->is_module_launching = false;
-               return;
        }
 
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, s_composer_type);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, s_account_id);
-       mailbox_ugd->composer = mailbox_composer_module_create(mailbox_ugd, EMAIL_MODULE_COMPOSER, service);
-
-       app_control_destroy(service);
+       email_params_free(&params);
        debug_leave();
 }
 
index da81b7f..74b1347 100644 (file)
@@ -30,8 +30,8 @@
  * Declaration for static functions
  */
 
-static void _viewer_result_cb(void *data, email_module_h module, app_control_h result);
-static void _account_result_cb(void *data, email_module_h module, app_control_h result);
+static void _viewer_result_cb(void *data, email_module_h module, email_params_h result);
+static void _account_result_cb(void *data, email_module_h module, email_params_h result);
 
 /*
  * Definitions
@@ -50,17 +50,16 @@ static void _account_result_cb(void *data, email_module_h module, app_control_h
  * Definition for static functions
  */
 
-static void _viewer_result_cb(void *data, email_module_h module, app_control_h result)
+static void _viewer_result_cb(void *data, email_module_h module, email_params_h result)
 {
        debug_enter();
        retm_if(!data, "data is NULL");
 
        EmailMailboxUGD *mailbox_ugd = data;
-       char *msg_type = NULL;
-       int ret = 0;
+       const char *msg_type = NULL;
 
-       ret = app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MSG, &msg_type);
-       retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_get_extra_data() failed! ret: [%d]", ret);
+       retm_if(!email_params_get_str(result, EMAIL_BUNDLE_KEY_MSG, &msg_type),
+                       "email_params_get_str() failed!");
 
        if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_NEXT_MSG) == 0) {
                mailbox_handle_next_msg_bundle(mailbox_ugd, result);
@@ -69,49 +68,36 @@ static void _viewer_result_cb(void *data, email_module_h module, app_control_h r
        }
 
        debug_log("mailbox_ugd->opened_mail_id : %d", mailbox_ugd->opened_mail_id);
-
-       G_FREE(msg_type);
 }
 
-static void _account_result_cb(void *data, email_module_h module, app_control_h result)
+static void _account_result_cb(void *data, email_module_h module, email_params_h result)
 {
        debug_enter();
        retm_if(!module, "module is NULL");
        retm_if(!data, "data is NULL");
 
-       char *mode = NULL;
-       char *account_id = NULL;
-       char *mailbox_id = NULL;
-       char *mailbox_type = NULL;
-       int ret;
+       const char *mode = NULL;
        EmailMailboxUGD *mailbox_ugd = (EmailMailboxUGD *)data;
 
        if (mailbox_ugd->account)
                mailbox_account_module_destroy(mailbox_ugd, mailbox_ugd->account);
 
        /* handle result from move to folder ug */
-       char *temp = NULL;
-       int is_move_mail_ug = 0;
 
-       app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, &temp);
-       is_move_mail_ug = atoi(temp);
-       G_FREE(temp);
+       int is_move_mail_ug = 0;
+       email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, &is_move_mail_ug);
 
        if (is_move_mail_ug) {
                int b_edit_mod = 0;
-               app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, &temp);
-               b_edit_mod = atoi(temp);
-               G_FREE(temp);
-               app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MAILBOX, &temp);
-               mailbox_ugd->mailbox_id = (int)atoi(temp);
-               G_FREE(temp);
-               app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_STATUS, &temp);
-               mailbox_ugd->move_status = (int)atoi(temp);
-               G_FREE(temp);
-               app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVED_MAILBOX_NAME, &temp);
+               const char *moved_mailbox_name = NULL;
+
+               email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, &b_edit_mod);
+               email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_MAILBOX, &mailbox_ugd->mailbox_id);
+               email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_STATUS, &mailbox_ugd->move_status);
+               email_params_get_str_opt(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVED_MAILBOX_NAME, &moved_mailbox_name);
+
                G_FREE(mailbox_ugd->moved_mailbox_name);
-               mailbox_ugd->moved_mailbox_name = g_strdup(temp);
-               G_FREE(temp);
+               mailbox_ugd->moved_mailbox_name = g_strdup(moved_mailbox_name);
 
                if (b_edit_mod) {
                        mailbox_exit_edit_mode(mailbox_ugd);
@@ -120,8 +106,7 @@ static void _account_result_cb(void *data, email_module_h module, app_control_h
        }
 
 
-       ret = app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, &mode);
-       debug_log("app_control_get_extra_data: %d", ret);
+       email_params_get_str_opt(result, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, &mode);
 
        mailbox_clear_prev_mailbox_info(mailbox_ugd);
 
@@ -131,9 +116,9 @@ static void _account_result_cb(void *data, email_module_h module, app_control_h
                mailbox_ugd->mode = EMAIL_MAILBOX_MODE_ALL;
                mailbox_ugd->account_id = 0;
 
-               ret = app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &(mailbox_type));
-               debug_log("app_control_get_extra_data: %d", ret);
-               mailbox_ugd->mailbox_type = (gint) atoi(mailbox_type);
+               int mailbox_type = 0;
+               email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, &mailbox_type);
+               mailbox_ugd->mailbox_type = mailbox_type;
 
                debug_log("account_id(%d), mailbox_type(%d)", mailbox_ugd->account_id, mailbox_ugd->mailbox_type);
 
@@ -142,19 +127,10 @@ static void _account_result_cb(void *data, email_module_h module, app_control_h
 
                mailbox_ugd->mode = EMAIL_MAILBOX_MODE_MAILBOX;
 
-               ret = app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id);
-               debug_log("app_control_get_extra_data: %d", ret);
-               mailbox_ugd->account_id = (gint) atoi(account_id);
+               email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &mailbox_ugd->account_id);
 
-               ret = app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MAILBOX, &mailbox_id);
-               debug_log("app_control_get_extra_data: %d", ret);
-               if (mailbox_id) {
-                       mailbox_ugd->mailbox_id = (int)atoi(mailbox_id);
-                       G_FREE(mailbox_id);
-               } else {
+               if (!email_params_get_int(result, EMAIL_BUNDLE_KEY_MAILBOX, &mailbox_ugd->mailbox_id)) {
                        debug_error("failure on getting mailbox_id");
-                       G_FREE(mode);
-                       G_FREE(account_id);
                        return;
                }
 
@@ -167,9 +143,6 @@ static void _account_result_cb(void *data, email_module_h module, app_control_h
                mailbox_ugd->mailbox_type = EMAIL_MAILBOX_TYPE_INBOX;
                mailbox_ugd->mode = EMAIL_MAILBOX_MODE_PRIORITY_SENDER;
        } else {
-               G_FREE(mode);
-               G_FREE(account_id);
-               G_FREE(mailbox_type);
                return;
        }
 
@@ -182,17 +155,13 @@ static void _account_result_cb(void *data, email_module_h module, app_control_h
                mailbox_refreshing_progress_add(mailbox_ugd);
        else
                mailbox_refreshing_progress_remove(mailbox_ugd);*/
-
-       G_FREE(mode);
-       G_FREE(account_id);
-       G_FREE(mailbox_type);
 }
 
 /*
  * Definition for exported functions
  */
 
-email_module_h mailbox_composer_module_create(void *data, email_module_type_e type, app_control_h service)
+email_module_h mailbox_composer_module_create(void *data, email_module_type_e type, email_params_h params)
 {
        debug_enter();
 
@@ -202,7 +171,7 @@ email_module_h mailbox_composer_module_create(void *data, email_module_type_e ty
        listener.cb_data = mailbox_ugd;
        listener.destroy_request_cb = mailbox_composer_module_destroy;
 
-       email_module_h module = email_module_create_child(mailbox_ugd->base.module, type, service, &listener);
+       email_module_h module = email_module_create_child(mailbox_ugd->base.module, type, params, &listener);
        if (mailbox_ugd->content_layout)
                elm_object_tree_focus_allow_set(mailbox_ugd->content_layout, EINA_FALSE);
 
@@ -242,7 +211,7 @@ void mailbox_composer_module_destroy(void *priv, email_module_h module)
        }
 }
 
-email_module_h mailbox_viewer_module_create(void *data, email_module_type_e type, app_control_h service)
+email_module_h mailbox_viewer_module_create(void *data, email_module_type_e type, email_params_h params)
 {
        debug_enter();
 
@@ -254,12 +223,12 @@ email_module_h mailbox_viewer_module_create(void *data, email_module_type_e type
        listener.destroy_request_cb = mailbox_viewer_module_destroy;
 
        if (!mailbox_ugd->viewer) {
-               mailbox_ugd->viewer = email_module_create_child(mailbox_ugd->base.module, type, service, &listener);
+               mailbox_ugd->viewer = email_module_create_child(mailbox_ugd->base.module, type, params, &listener);
                if (mailbox_ugd->content_layout) {
                        elm_object_tree_focus_allow_set(mailbox_ugd->content_layout, EINA_FALSE);
                }
        } else {
-               email_module_send_message(mailbox_ugd->viewer, service);
+               email_module_send_message(mailbox_ugd->viewer, params);
        }
 
        return mailbox_ugd->viewer;
@@ -283,7 +252,7 @@ void mailbox_viewer_module_destroy(void *priv, email_module_h module)
        mailbox_ugd->opened_mail_id = 0;
 }
 
-email_module_h mailbox_account_module_create(void *data, email_module_type_e type, app_control_h service)
+email_module_h mailbox_account_module_create(void *data, email_module_type_e type, email_params_h params)
 {
        debug_enter();
 
@@ -294,7 +263,7 @@ email_module_h mailbox_account_module_create(void *data, email_module_type_e typ
        listener.result_cb = _account_result_cb;
        listener.destroy_request_cb = mailbox_account_module_destroy;
 
-       email_module_h module = email_module_create_child(mailbox_ugd->base.module, type, service, &listener);
+       email_module_h module = email_module_create_child(mailbox_ugd->base.module, type, params, &listener);
        if (mailbox_ugd->content_layout)
                elm_object_tree_focus_allow_set(mailbox_ugd->content_layout, EINA_FALSE);
 
@@ -319,7 +288,7 @@ void mailbox_account_module_destroy(void *priv, email_module_h module)
        mailbox_ugd->is_module_launching = false;
 }
 
-email_module_h mailbox_setting_module_create(void *data, email_module_type_e type, app_control_h service)
+email_module_h mailbox_setting_module_create(void *data, email_module_type_e type, email_params_h params)
 {
        debug_enter();
 
@@ -329,7 +298,7 @@ email_module_h mailbox_setting_module_create(void *data, email_module_type_e typ
        listener.cb_data = mailbox_ugd;
        listener.destroy_request_cb = mailbox_setting_module_destroy;
 
-       email_module_h module = email_module_create_child(mailbox_ugd->base.module, type, service, &listener);
+       email_module_h module = email_module_create_child(mailbox_ugd->base.module, type, params, &listener);
        if (mailbox_ugd->content_layout)
                elm_object_tree_focus_allow_set(mailbox_ugd->content_layout, EINA_FALSE);
 
index 496b176..4ceb6d4 100644 (file)
@@ -60,9 +60,9 @@
  * Declaration for static functions
  */
 
-static int _mailbox_module_create(email_module_t *self, app_control_h params);
+static int _mailbox_module_create(email_module_t *self, email_params_h params);
 static void _mailbox_module_destroy(email_module_t *self);
-static void _mailbox_on_message(email_module_t *self, app_control_h msg);
+static void _mailbox_on_message(email_module_t *self, email_params_h msg);
 
 static void _mailbox_email_service_ping_thread_heavy_cb(void *data, Ecore_Thread *thread);
 static void _mailbox_email_service_ping_thread_notify_cb(void *data, Ecore_Thread *thread, void *msg_data);
@@ -80,12 +80,12 @@ static void _mailbox_on_back_key(email_view_t *self);
 static int _mailbox_initialize(EmailMailboxUGD *mailbox_ugd);
 static void _mailbox_finalize(EmailMailboxUGD *mailbox_ugd);
 
-static email_run_type_e _mailbox_params_get_run_type(app_control_h params);
-static int _mailbox_params_get_account_id(app_control_h params);
-static int _mailbox_params_get_mail_id(app_control_h params);
+static email_run_type_e _mailbox_params_get_run_type(email_params_h params);
+static int _mailbox_params_get_account_id(email_params_h params);
+static int _mailbox_params_get_mail_id(email_params_h params);
 
-static int _mailbox_handle_launch_mailbox_bundle_val(EmailMailboxUGD *mailbox_ugd, app_control_h msg);
-static int _mailbox_handle_launch_viewer_bundle_val(EmailMailboxUGD *mailbox_ugd, app_control_h msg);
+static int _mailbox_handle_launch_mailbox_bundle_val(EmailMailboxUGD *mailbox_ugd, email_params_h msg);
+static int _mailbox_handle_launch_viewer_bundle_val(EmailMailboxUGD *mailbox_ugd, email_params_h msg);
 
 static void _mailbox_create_view(EmailMailboxUGD *mailbox_ugd);
 static void _mailbox_delete_evas_object(EmailMailboxUGD *mailbox_ugd);
@@ -102,7 +102,7 @@ static int _mailbox_push_base_view_layout(EmailMailboxUGD *mailbox_ugd);
  * Definition for static functions
  */
 
-static int _mailbox_module_create(email_module_t *self, app_control_h params)
+static int _mailbox_module_create(email_module_t *self, email_params_h params)
 {
        debug_enter();
        retvm_if(!self, -1, "self is NULL");
@@ -240,20 +240,15 @@ static int _mailbox_create_account_setting_module(EmailMailboxUGD *mailbox_ugd)
        debug_enter();
        retvm_if(!mailbox_ugd, -1, "mailbox_ugd is NULL");
 
-       app_control_h service = NULL;
-       int ret = APP_CONTROL_ERROR_NONE;
+       email_params_h params = NULL;
 
-       ret = app_control_create(&service);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, -1, "app_control_create() failed! ret: [%d]", ret);
+       if (email_params_create(&params) &&
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_ACCOUNT_SETUP)) {
 
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, EMAIL_BUNDLE_VAL_VIEW_ACCOUNT_SETUP);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_error("app_control_add_extra_data() failed! ret: [%d]", ret);
-       } else {
-               mailbox_ugd->setting = mailbox_setting_module_create(mailbox_ugd, EMAIL_MODULE_SETTING, service);
+               mailbox_ugd->setting = mailbox_setting_module_create(mailbox_ugd, EMAIL_MODULE_SETTING, params);
        }
 
-       app_control_destroy(service);
+       email_params_free(&params);
 
        retvm_if(!mailbox_ugd->setting, -1, "mailbox_setting_module_create() failed!");
 
@@ -261,16 +256,16 @@ static int _mailbox_create_account_setting_module(EmailMailboxUGD *mailbox_ugd)
        return 0;
 }
 
-static email_run_type_e _mailbox_params_get_run_type(app_control_h params)
+static email_run_type_e _mailbox_params_get_run_type(email_params_h params)
 {
        debug_enter();
 
        email_run_type_e result = RUN_TYPE_UNKNOWN;
 
-       char *operation = NULL;
+       const char *operation = NULL;
        bool is_operation_default = false;
 
-       if ((app_control_get_operation(params, &operation) != APP_CONTROL_ERROR_NONE) || !operation) {
+       if (!email_params_get_operation(params, &operation)) {
                return result;
        }
 
@@ -280,8 +275,6 @@ static email_run_type_e _mailbox_params_get_run_type(app_control_h params)
                debug_warning("Operation is not supported: %s", operation);
        }
 
-       free(operation);
-
        if (is_operation_default) {
                if (email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_RUN_TYPE, &result)) {
                        if ((result != RUN_TYPE_UNKNOWN) && (result != RUN_VIEWER_FROM_NOTIFICATION) &&
@@ -298,7 +291,7 @@ static email_run_type_e _mailbox_params_get_run_type(app_control_h params)
        return result;
 }
 
-static int _mailbox_params_get_account_id(app_control_h params)
+static int _mailbox_params_get_account_id(email_params_h params)
 {
        debug_enter();
 
@@ -314,7 +307,7 @@ static int _mailbox_params_get_account_id(app_control_h params)
        return result;
 }
 
-static int _mailbox_params_get_mail_id(app_control_h params)
+static int _mailbox_params_get_mail_id(email_params_h params)
 {
        debug_enter();
 
@@ -654,7 +647,7 @@ static void _mailbox_finalize(EmailMailboxUGD *mailbox_ugd)
 
 }
 
-static void _mailbox_on_message(email_module_t *self, app_control_h msg)
+static void _mailbox_on_message(email_module_t *self, email_params_h msg)
 {
        debug_enter();
        retm_if(!self, "self is NULL");
@@ -680,7 +673,7 @@ static void _mailbox_on_message(email_module_t *self, app_control_h msg)
        return;
 }
 
-int mailbox_handle_next_msg_bundle(EmailMailboxUGD *mailbox_ugd, app_control_h msg)
+int mailbox_handle_next_msg_bundle(EmailMailboxUGD *mailbox_ugd, email_params_h msg)
 {
        debug_enter();
        retvm_if(!mailbox_ugd, -1, "Error: mailbox_ugd is NULL");
@@ -695,19 +688,13 @@ int mailbox_handle_next_msg_bundle(EmailMailboxUGD *mailbox_ugd, app_control_h m
        MailItemData *ld = NULL;
        GList *first = g_list_first(mailbox_ugd->mail_list);
        GList *last = g_list_last(mailbox_ugd->mail_list);
-       int ret;
-       char *s_current_mail_index = NULL;
        int current_mail_index = -1;
 
        int cnt = g_list_length(mailbox_ugd->mail_list);
        debug_log("first %p, last %p, cnt: %d", first, last, cnt);
 
-       ret = app_control_get_extra_data(msg, EMAIL_BUNDLE_KEY_MAIL_INDEX, &s_current_mail_index);
-       debug_log("app_control_get_extra_data: %d, %s", ret, s_current_mail_index);
-       if (s_current_mail_index) {
-               current_mail_index = atoi(s_current_mail_index);
-               g_free(s_current_mail_index);
-       }
+       email_params_get_int_opt(msg, EMAIL_BUNDLE_KEY_MAIL_INDEX, &current_mail_index);
+       debug_log("current_mail_index: %d", current_mail_index);
 
        GList *opened_mail = g_list_find_custom(mailbox_ugd->mail_list, GINT_TO_POINTER(mailbox_ugd->opened_mail_id), mailbox_compare_mailid_in_list);
        if (!opened_mail && current_mail_index > -1 && current_mail_index < cnt) {
@@ -740,7 +727,7 @@ int mailbox_handle_next_msg_bundle(EmailMailboxUGD *mailbox_ugd, app_control_h m
 
 }
 
-int mailbox_handle_prev_msg_bundle(EmailMailboxUGD *mailbox_ugd, app_control_h msg)
+int mailbox_handle_prev_msg_bundle(EmailMailboxUGD *mailbox_ugd, email_params_h msg)
 {
        debug_enter();
        retvm_if(!mailbox_ugd, -1, "Error: mailbox_ugd is NULL");
@@ -755,19 +742,13 @@ int mailbox_handle_prev_msg_bundle(EmailMailboxUGD *mailbox_ugd, app_control_h m
        MailItemData *ld = NULL;
        GList *first = g_list_first(mailbox_ugd->mail_list);
        GList *last = g_list_last(mailbox_ugd->mail_list);
-       int ret;
-       char *s_current_mail_index = NULL;
        int current_mail_index = -1;
 
        int cnt = g_list_length(mailbox_ugd->mail_list);
        debug_log("first %p, last %p, cnt: %d", first, last, cnt);
 
-       ret = app_control_get_extra_data(msg, EMAIL_BUNDLE_KEY_MAIL_INDEX, &s_current_mail_index);
-       debug_log("app_control_get_extra_data: %d, %s", ret, s_current_mail_index);
-       if (s_current_mail_index) {
-               current_mail_index = atoi(s_current_mail_index);
-               g_free(s_current_mail_index);
-       }
+       email_params_get_int_opt(msg, EMAIL_BUNDLE_KEY_MAIL_INDEX, &current_mail_index);
+       debug_log("current_mail_index: %d", current_mail_index);
 
        GList *opened_mail = g_list_find_custom(mailbox_ugd->mail_list, GINT_TO_POINTER(mailbox_ugd->opened_mail_id), mailbox_compare_mailid_in_list);
        if (!opened_mail && current_mail_index > -1 && current_mail_index < cnt) {
@@ -806,7 +787,7 @@ static int _mailbox_destroy_child_modules(EmailMailboxUGD *mailbox_ugd, bool kee
        debug_enter();
        retvm_if(!mailbox_ugd, -1,  "Error: mailbox_ugd is NULL");
 
-       app_control_h service = NULL;
+       email_params_h params = NULL;
        int ret = -1;
 
        if (mailbox_ugd->account) {
@@ -820,9 +801,9 @@ static int _mailbox_destroy_child_modules(EmailMailboxUGD *mailbox_ugd, bool kee
        if (mailbox_ugd->viewer && !keep_viewer) {
                debug_log("Viewer is running. Need to destroy all viewer child modules.");
 
-               if (email_params_create(&service) &&
-                       email_params_add_str(service, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_VIEWER_DESTROY_VIEW)) {
-                       ret = email_module_send_message(mailbox_ugd->viewer, service);
+               if (email_params_create(&params) &&
+                       email_params_add_str(params, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_VIEWER_DESTROY_VIEW)) {
+                       ret = email_module_send_message(mailbox_ugd->viewer, params);
                }
 
                if (ret != 0) {
@@ -834,9 +815,9 @@ static int _mailbox_destroy_child_modules(EmailMailboxUGD *mailbox_ugd, bool kee
        if (mailbox_ugd->composer) {
                debug_log("Asking composer to save in drafts.");
 
-               if (email_params_create(&service) &&
-                       email_params_add_str(service, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_EMAIL_COMPOSER_SAVE_DRAFT)) {
-                       ret = email_module_send_message(mailbox_ugd->viewer, service);
+               if (email_params_create(&params) &&
+                       email_params_add_str(params, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_EMAIL_COMPOSER_SAVE_DRAFT)) {
+                       ret = email_module_send_message(mailbox_ugd->viewer, params);
                }
 
                if (ret != 0) {
@@ -845,7 +826,7 @@ static int _mailbox_destroy_child_modules(EmailMailboxUGD *mailbox_ugd, bool kee
                }
        }
 
-       email_params_free(&service);
+       email_params_free(&params);
 
        debug_leave();
        return 0;
@@ -921,7 +902,7 @@ static int _mailbox_update_mailbox(EmailMailboxUGD *mailbox_ugd, int account_id,
        return 0;
 }
 
-static int _mailbox_handle_launch_mailbox_bundle_val(EmailMailboxUGD *mailbox_ugd, app_control_h msg)
+static int _mailbox_handle_launch_mailbox_bundle_val(EmailMailboxUGD *mailbox_ugd, email_params_h msg)
 {
        debug_enter();
        retvm_if(!mailbox_ugd, -1,  "Error: mailbox_ugd is NULL");
@@ -942,7 +923,7 @@ static int _mailbox_handle_launch_mailbox_bundle_val(EmailMailboxUGD *mailbox_ug
        return 0;
 }
 
-static int _mailbox_handle_launch_viewer_bundle_val(EmailMailboxUGD *mailbox_ugd, app_control_h msg)
+static int _mailbox_handle_launch_viewer_bundle_val(EmailMailboxUGD *mailbox_ugd, email_params_h msg)
 {
        debug_enter();
        retvm_if(!mailbox_ugd, -1, "Error: mailbox_ugd is NULL");
@@ -955,7 +936,7 @@ static int _mailbox_handle_launch_viewer_bundle_val(EmailMailboxUGD *mailbox_ugd
        retvm_if(mail_id <= 0, -1,  "(mail_id <= 0) is not allowed");
 
        if (mailbox_ugd->viewer && (mail_id == mailbox_ugd->opened_mail_id)) {
-               app_control_h params = NULL;
+               email_params_h params = NULL;
 
                if (email_params_create(&params) &&
                        email_params_add_str(params, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_VIEWER_RESTORE_VIEW)) {
@@ -1166,40 +1147,30 @@ static void _mailbox_title_clicked_cb(void *data, Evas_Object *obj, void *event_
        DELETE_EVAS_OBJECT(mailbox_ugd->more_ctxpopup);
 
        if (!mailbox_ugd->b_editmode && !mailbox_ugd->b_searchmode) {
-               app_control_h service;
-               if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-                       debug_log("creating service handle failed");
-                       mailbox_ugd->is_module_launching = false;
-                       return;
-               }
-
-               char acctid[30] = { 0, };
-               snprintf(acctid, sizeof(acctid), "%d", mailbox_ugd->account_id);
-               char is_account_ug[30] = { 0, };
-               snprintf(is_account_ug, sizeof(is_account_ug), "%d", 1);
-               char boxtype[30] = { 0, };
-               snprintf(boxtype, sizeof(boxtype), "%d", mailbox_ugd->mailbox_type);
-               char boxid[30] = { 0, };
-               snprintf(boxid, sizeof(boxid), "%d", mailbox_ugd->mailbox_id);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 0);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_ACCOUNT_UG, is_account_ug);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, boxtype);
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, boxid);
 
+               const char *account_type = EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT;
                if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_PRIORITY_SENDER) {
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_PRIORITY_SENDER);
+                       account_type = EMAIL_BUNDLE_VAL_PRIORITY_SENDER;
                } else if (mailbox_ugd->mode == EMAIL_MAILBOX_MODE_ALL && mailbox_ugd->account_id == 0 && EMAIL_MAILBOX_TYPE_FLAGGED == mailbox_ugd->mailbox_type) {
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_FILTER_INBOX);
+                       account_type = EMAIL_BUNDLE_VAL_FILTER_INBOX;
                } else if (mailbox_ugd->account_id == 0) {
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_ALL_ACCOUNT);
-               } else {
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, EMAIL_BUNDLE_VAL_SINGLE_ACCOUNT);
+                       account_type = EMAIL_BUNDLE_VAL_ALL_ACCOUNT;
                }
 
-               mailbox_ugd->account = mailbox_account_module_create(mailbox_ugd, EMAIL_MODULE_ACCOUNT, service);
+               email_params_h params = NULL;
 
-               app_control_destroy(service);
+               if (email_params_create(&params) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, mailbox_ugd->account_id) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 0) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_ACCOUNT_UG, 1) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX_TYPE, mailbox_ugd->mailbox_type) &&
+                       email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_ugd->mailbox_id) &&
+                       email_params_add_str(params, EMAIL_BUNDLE_KEY_ACCOUNT_TYPE, account_type)) {
+
+                       mailbox_ugd->account = mailbox_account_module_create(mailbox_ugd, EMAIL_MODULE_ACCOUNT, params);
+               }
+
+               email_params_free(&params);
        } else {
                debug_log("account couldn't open. Edit/Search mode");
        }
@@ -1487,18 +1458,18 @@ int mailbox_open_email_viewer(EmailMailboxUGD *mailbox_ugd, int account_id, int
        retvm_if(!mailbox_ugd, -1, "mailbox_ugd is NULL");
        debug_log("account_id: %d, mailbox_id: %d, mail_id: %d", account_id, mailbox_id, mail_id);
 
-       app_control_h service = NULL;
+       email_params_h params = NULL;
 
-       if (email_params_create(&service) &&
-               email_params_add_int(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, account_id) &&
-               email_params_add_int(service, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id) &&
-               email_params_add_int(service, EMAIL_BUNDLE_KEY_MAIL_ID, mail_id)) {
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, account_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAIL_ID, mail_id)) {
 
                mailbox_ugd->opened_mail_id = mail_id;
-               mailbox_ugd->viewer = mailbox_viewer_module_create(mailbox_ugd, EMAIL_MODULE_VIEWER, service);
+               mailbox_ugd->viewer = mailbox_viewer_module_create(mailbox_ugd, EMAIL_MODULE_VIEWER, params);
        }
 
-       email_params_free(&service);
+       email_params_free(&params);
 
        debug_leave();
        return 0;
index ca9a24f..fafa740 100644 (file)
@@ -1249,17 +1249,17 @@ static void _wifi_launch_cb(void *data, Evas_Object *obj, void *event_info)
        debug_enter();
        email_view_t *vd = data;
        EmailSettingUGD *ugd = (EmailSettingUGD *)vd->module;
-       app_control_h b;
+       app_control_h app_control;
        int ret;
 
-       ret = app_control_create(&b);
+       ret = app_control_create(&app_control);
        retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_create failed: %d", ret);
 
-       app_control_set_operation(b, APP_CONTROL_OPERATION_SETTING_WIFI);
-       ret = app_control_send_launch_request(b, NULL, NULL);
+       app_control_set_operation(app_control, APP_CONTROL_OPERATION_SETTING_WIFI);
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
        retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_send_launch_request failed: %d", ret);
 
-       app_control_destroy(b);
+       app_control_destroy(app_control);
 
        DELETE_EVAS_OBJECT(ugd->popup);
 }
@@ -1270,26 +1270,26 @@ static void _data_setting_launch_cb(void *data, Evas_Object *obj, void *event_in
        email_view_t *vd = data;
        EmailSettingUGD *ugd = (EmailSettingUGD *)vd->module;
        email_network_status_e status = (int)(ptrdiff_t)evas_object_data_get(ugd->popup, EMAIL_SETTING_POPUP_NET_ERROR_CODE_KEY);
-       app_control_h b;
+       app_control_h app_control;
        int ret;
 
-       ret = app_control_create(&b);
+       ret = app_control_create(&app_control);
        retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control_create failed: %d", ret);
 
        debug_log("network status in btn callback: %d", status);
        if (status == EMAIL_NETWORK_STATUS_FLIGHT_MODE) {
-               app_control_set_app_id(b, "setting-flightmode-efl");
+               app_control_set_app_id(app_control, "setting-flightmode-efl");
        } else if (status == EMAIL_NETWORK_STATUS_MOBILE_DATA_DISABLED ||
                        status == EMAIL_NETWORK_STATUS_ROAMING_OFF) {
-               app_control_set_app_id(b, "setting-network-efl");
-               app_control_set_operation(b, "http://tizen.org/appcontrol/operation/setting/mobile_network");
+               app_control_set_app_id(app_control, "setting-network-efl");
+               app_control_set_operation(app_control, "http://tizen.org/appcontrol/operation/setting/mobile_network");
        } else if (status == EMAIL_NETWORK_STATUS_MOBILE_DATA_LIMIT_EXCEED) {
-               app_control_set_app_id(b, "setting-datausage-efl");
+               app_control_set_app_id(app_control, "setting-datausage-efl");
        }
 
-       app_control_send_launch_request(b, NULL, NULL);
+       app_control_send_launch_request(app_control, NULL, NULL);
 
-       app_control_destroy(b);
+       app_control_destroy(app_control);
 
        DELETE_EVAS_OBJECT(ugd->popup);
 }
index fdd8c78..1de32cd 100644 (file)
 #include "email-view-signature-setting.h"
 #include "email-view-notification.h"
 
-static int _setting_create(email_module_t *self, app_control_h params);
+static int _setting_create(email_module_t *self, email_params_h params);
 static void _setting_resume(email_module_t *self);
 static void _setting_destroy(email_module_t *self);
 static void _setting_on_event(email_module_t *self, email_module_event_e event);
 
 static int _account_init(EmailSettingUGD *ugd);
 static int _account_finalize(EmailSettingUGD *ugd);
-static ViewType _parse_option(EmailSettingUGD *ugd, app_control_h service);
+static ViewType _parse_option(EmailSettingUGD *ugd, email_params_h params);
 static void _account_deleted_cb(int account_id, email_setting_response_data *response, void *user_data);
 
 static void _filter_destroy_request_cb(void *data, email_module_h module);
@@ -80,7 +80,7 @@ UG_MODULE_API int setting_plugin_reset(app_control_h service, void *priv)
        return 0;
 }
 
-static int _setting_create(email_module_t *self, app_control_h params)
+static int _setting_create(email_module_t *self, email_params_h params)
 {
        debug_enter();
        EmailSettingUGD *ugd;
@@ -264,17 +264,15 @@ static int _account_finalize(EmailSettingUGD *ugd)
        return TRUE;
 }
 
-static ViewType _parse_option(EmailSettingUGD *ugd, app_control_h service)
+static ViewType _parse_option(EmailSettingUGD *ugd, email_params_h params)
 {
        debug_enter();
-       int ret;
-       char *operation = NULL;
+       const char *operation = NULL;
        ViewType ret_type = VIEW_INVALID;
 
-       retvm_if(!service, VIEW_INVALID, "invalid parameter!");
+       retvm_if(!params, VIEW_INVALID, "invalid parameter!");
 
-       ret = app_control_get_operation(service, &operation);
-       debug_log("app_control_get_operation: %d", ret);
+       email_params_get_operation_opt(params, &operation);
        debug_log("operation = %s", operation);
 
        if (operation) {
@@ -289,15 +287,11 @@ static ViewType _parse_option(EmailSettingUGD *ugd, app_control_h service)
                } else if (!g_strcmp0(operation, ACCOUNT_OPERATION_VIEW)) {
                        debug_log("Operation ACCOUNT_OPERATION_VIEW");
 
-                       char *account_id = NULL;
                        int my_account_id = 0;
                        int i = 0;
 
-                       app_control_get_extra_data(service, ACCOUNT_DATA_ID, &account_id);
-                       gotom_if(!account_id, FINISH, "%s is invalid", ACCOUNT_DATA_ID);
-
-                       my_account_id = atoi(account_id);
-                       free(account_id);
+                       gotom_if(!email_params_get_int(params, ACCOUNT_DATA_ID, &my_account_id),
+                                       FINISH, "%s is invalid", ACCOUNT_DATA_ID);
 
                        debug_log("my-account id - %d", my_account_id);
 
@@ -320,14 +314,11 @@ static ViewType _parse_option(EmailSettingUGD *ugd, app_control_h service)
                        goto FINISH;
                } else if (!g_strcmp0(operation, EMAIL_URI_NOTIFICATION_SETTING)) {
                        debug_log("Operation EMAIL_URI_NOTIFICATION_SETTING");
-                       char *account_id_str = NULL;
                        int account_id = -1;
 
-                       app_control_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id_str);
-                       gotom_if(!account_id_str, FINISH, "%s is invalid", ACCOUNT_DATA_ID);
+                       gotom_if(!email_params_get_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id),
+                                       FINISH, "%s is invalid", EMAIL_BUNDLE_KEY_ACCOUNT_ID);
 
-                       account_id = atoi(account_id_str);
-                       FREE(account_id_str);
                        debug_log("EMAIL_URI_NOTIFICATION_SETTING account id: %d", account_id);
 
                        ugd->account_id = account_id;
@@ -340,14 +331,11 @@ static ViewType _parse_option(EmailSettingUGD *ugd, app_control_h service)
                        }
                } else if (!g_strcmp0(operation, EMAIL_URI_SIGNATURE_SETTING)) {
                        debug_log("Operation EMAIL_URI_SIGNATURE_SETTING");
-                       char *account_id_str = NULL;
                        int account_id = -1;
 
-                       app_control_get_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id_str);
-                       gotom_if(!account_id_str, FINISH, "%s is invalid", ACCOUNT_DATA_ID);
+                       gotom_if(!email_params_get_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &account_id),
+                                       FINISH, "%s is invalid", EMAIL_BUNDLE_KEY_ACCOUNT_ID);
 
-                       account_id = atoi(account_id_str);
-                       FREE(account_id_str);
                        debug_log("EMAIL_URI_NOTIFICATION_SETTING account id: %d", account_id);
 
                        ugd->account_id = account_id;
@@ -361,9 +349,9 @@ static ViewType _parse_option(EmailSettingUGD *ugd, app_control_h service)
                }
        } else {
                /* from ug_create */
-               char *start_view_type = NULL;
-               app_control_get_extra_data(service, EMAIL_BUNDLE_KEY_VIEW_TYPE, &start_view_type);
-               retvm_if(!start_view_type, VIEW_INVALID, "%s is invalid", EMAIL_BUNDLE_KEY_VIEW_TYPE);
+               const char *start_view_type = NULL;
+               retvm_if(!email_params_get_str(params, EMAIL_BUNDLE_KEY_VIEW_TYPE, &start_view_type),
+                               VIEW_INVALID, "%s is invalid", EMAIL_BUNDLE_KEY_VIEW_TYPE);
 
                debug_log("VIEW_TYPE - %s", start_view_type);
                if (!g_strcmp0(start_view_type, EMAIL_BUNDLE_VAL_VIEW_SETTING)) {
@@ -373,12 +361,9 @@ static ViewType _parse_option(EmailSettingUGD *ugd, app_control_h service)
                } else {
                        ret_type = VIEW_INVALID;
                }
-
-               free(start_view_type);
        }
 
 FINISH:
-       FREE(operation);
        debug_log("start view is %d", ret_type);
        return ret_type;
 }
index fa85b6f..bc49d9d 100644 (file)
@@ -39,10 +39,10 @@ static char *_gl_ringtone_text_get_cb(void *data, Evas_Object *obj, const char *
 static void _onoff_cb(void *data, Evas_Object *obj, void *event_info);
 static void _update_notification_options_status(EmailSettingVD *vd);
 static void _alert_ringtone_setup_cb(void *data, Evas_Object *obj, void *event_info);
-static void _ringtone_app_reply_cb(void *data, app_control_result_e result, app_control_h reply);
+static void _ringtone_app_reply_cb(void *data, app_control_result_e result, email_params_h reply);
 
 static void _gl_sel_cb(void *data, Evas_Object *obj, void *event_info);
-static char *_get_alert_title(char *path);
+static char *_get_alert_title(const char *path);
 
 static email_string_t EMAIL_SETTING_STRING_EMAIL_NOTI = {PACKAGE, "IDS_EMAIL_MBODY_EMAIL_NOTIFICATIONS"};
 static email_string_t EMAIL_SETTING_STRING_EMAIL_NOTI_HELP = {PACKAGE, "IDS_EMAIL_SBODY_RECEIVE_STATUS_BAR_NOTIFICATIONS_WHEN_EMAILS_ARRIVE"};
@@ -313,51 +313,38 @@ static void _alert_ringtone_setup_cb(void *data, Evas_Object *obj, void *event_i
        Elm_Object_Item *it = event_info;
        elm_genlist_item_selected_set(it, EINA_FALSE);
 
-       app_control_h service = NULL;
-       app_control_create(&service);
-       if (service) {
-               char *pa_cur_ringtone = NULL;
-               char *dir_path = NULL;
-               int value = -1;
-
-               if (li->index == ALERT_RINGTONE_LIST_ITEM) {
-                       value = vd->account_data->options.default_ringtone_status;
-                       pa_cur_ringtone = g_strdup(vd->account_data->options.alert_ringtone_path);
+       const char *marked_mode = MYFILE_DEFAULT_RINGTON_VALUE;
+       if (!vd->account_data->options.default_ringtone_status) {
+               marked_mode = vd->account_data->options.alert_ringtone_path;
+               if (!STR_VALID(marked_mode)) {
+                       marked_mode = MYFILE_SILENT_RINGTON_VALUE;
                }
+       }
 
-               if (value) {
-                       FREE(pa_cur_ringtone);
-                       pa_cur_ringtone = g_strdup("default");
-               } else if (!value && !STR_VALID(pa_cur_ringtone)) {
-                       FREE(pa_cur_ringtone);
-                       pa_cur_ringtone = g_strdup(MYFILE_SILENT_RINGTON_VALUE);
-               }
+       email_params_h params = NULL;
 
-               debug_secure("pa_cur_ringtone : %s", pa_cur_ringtone);
-               dir_path = g_strdup(SETTING_DEFAULT_ALERT_PATH);
-               app_control_add_extra_data(service, "marked_mode", pa_cur_ringtone);
-               app_control_add_extra_data(service, "path", dir_path);
-               app_control_add_extra_data(service, "select_type", "SINGLE_FILE");
-               app_control_add_extra_data(service, "file_type", "SOUND");
-               app_control_add_extra_data(service, "title", "IDS_EMAIL_BODY_ALERT_RINGTONE_ABB");
-               app_control_add_extra_data(service, "domain", PACKAGE);
-               app_control_add_extra_data(service, "default", "default show");
-               app_control_add_extra_data(service, "silent", "silent show");
-               app_control_add_extra_data(service, "landscape", "support landscape");
+       if (email_params_create(&params) &&
+               email_params_add_str(params, "marked_mode", marked_mode) &&
+               email_params_add_str(params, "path", SETTING_DEFAULT_ALERT_PATH) &&
+               email_params_add_str(params, "select_type", "SINGLE_FILE") &&
+               email_params_add_str(params, "file_type", "SOUND") &&
+               email_params_add_str(params, "title", "IDS_EMAIL_BODY_ALERT_RINGTONE_ABB") &&
+               email_params_add_str(params, "domain", PACKAGE) &&
+               email_params_add_str(params, "default", "default show") &&
+               email_params_add_str(params, "silent", "silent show") &&
+               email_params_add_str(params, "landscape", "support landscape")) {
 
                email_launched_app_listener_t listener = { 0 };
                listener.cb_data = li;
                listener.reply_cb = _ringtone_app_reply_cb;
 
-               email_module_launch_app(&ugd->base, EMAIL_LAUNCH_APP_RINGTONE, service, &listener);
-
-               app_control_destroy(service);
-               FREE(pa_cur_ringtone);
-               FREE(dir_path);
+               email_module_launch_app(&ugd->base, EMAIL_LAUNCH_APP_RINGTONE, params, &listener);
        }
+
+       email_params_free(&params);
 }
 
-static void _ringtone_app_reply_cb(void *data, app_control_result_e result, app_control_h reply)
+static void _ringtone_app_reply_cb(void *data, app_control_result_e result, email_params_h reply)
 {
        debug_enter();
 
@@ -369,10 +356,9 @@ static void _ringtone_app_reply_cb(void *data, app_control_result_e result, app_
        EmailSettingVD *vd = li->vd;
 
        char *ringtone_file = NULL;
-       char *ringtone_path = NULL;
+       const char *ringtone_path = NULL;
 
-       app_control_get_extra_data(reply, "result", &ringtone_path);
-       if (!ringtone_path) {
+       if (!email_params_get_str(reply, "result", &ringtone_path)) {
                debug_warning("ringtone path result is NULL");
                return;
        }
@@ -402,7 +388,6 @@ static void _ringtone_app_reply_cb(void *data, app_control_result_e result, app_
        }
 
        elm_genlist_item_update(li->it);
-       FREE(ringtone_path);
        FREE(ringtone_file);
 
        _update_account_info(vd);
@@ -498,7 +483,7 @@ static char *_gl_ringtone_text_get_cb(void *data, Evas_Object *obj, const char *
        return NULL;
 }
 
-static char *_get_alert_title(char *path)
+static char *_get_alert_title(const char *path)
 {
        debug_enter();
        char *alert_title = NULL;
index 2b8d745..6b1bb59 100644 (file)
@@ -776,17 +776,15 @@ static void _priority_senders_email_cb(void *data, Evas_Object *obj, void *event
                                                                                                &(EMAIL_SETTING_STRING_OK),
                                                                                                _popup_ok_cb, NULL, NULL);
        } else {
-               app_control_h service = NULL;
-               app_control_create(&service);
-               if (service) {
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_FILTER_OPERATION,
-                                       EMAIL_BUNDLE_VAL_FILTER_OPERATION_PS);
-                       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_FILTER_MODE, EMAIL_BUNDLE_VAL_FILTER_LIST);
+               email_params_h params = NULL;
+               if (email_params_create(&params) &&
+                       email_params_add_str(params, EMAIL_BUNDLE_KEY_FILTER_OPERATION, EMAIL_BUNDLE_VAL_FILTER_OPERATION_PS) &&
+                       email_params_add_str(params, EMAIL_BUNDLE_KEY_FILTER_MODE, EMAIL_BUNDLE_VAL_FILTER_LIST)) {
 
                        ugd->filter = email_module_create_child(&ugd->base, EMAIL_MODULE_FILTER,
-                                       service, &ugd->filter_listener);
-                       app_control_destroy(service);
+                                       params, &ugd->filter_listener);
                }
+               email_params_free(&params);
        }
 
        return;
@@ -956,31 +954,31 @@ static int _create_google_sync_view(EmailSettingVD *vd, int my_account_id)
 {
        debug_enter();
        char my_account_id_str[30] = { 0, };
-       app_control_h service = NULL;
+       app_control_h app_control = NULL;
        int ret;
 
        retvm_if(!vd, 0, "vd is NULL");
 
        EmailSettingUGD *ugd = (EmailSettingUGD *)vd->base.module;
 
-       ret = app_control_create(&service);
-       retvm_if(!service, 0, "app_control_create failed: %d", ret);
+       ret = app_control_create(&app_control);
+       retvm_if(!app_control, 0, "app_control_create failed: %d", ret);
 
        snprintf(my_account_id_str, 30, "%d", my_account_id);
-       app_control_add_extra_data(service, ACCOUNT_DATA_ID, my_account_id_str);
+       app_control_add_extra_data(app_control, ACCOUNT_DATA_ID, my_account_id_str);
 
-       app_control_set_launch_mode(service, APP_CONTROL_LAUNCH_MODE_GROUP);
+       app_control_set_launch_mode(app_control, APP_CONTROL_LAUNCH_MODE_GROUP);
 
-       app_control_set_app_id(service, "org.tizen.google-service-account-lite");
-       app_control_set_operation(service, ACCOUNT_OPERATION_VIEW);
+       app_control_set_app_id(app_control, "org.tizen.google-service-account-lite");
+       app_control_set_operation(app_control, ACCOUNT_OPERATION_VIEW);
 
-       ret = app_control_send_launch_request(service, _google_sync_view_result_cb, vd);
+       ret = app_control_send_launch_request(app_control, _google_sync_view_result_cb, vd);
        if (ret != APP_CONTROL_ERROR_NONE) {
                debug_error("app_control_send_launch_request failed: %d", ret);
                return 0;
        }
 
-       ugd->app_control_google_eas = service;
+       ugd->app_control_google_eas = app_control;
 
        return 1;
 }
index e35a836..f62b949 100644 (file)
  * @brief Provides initial data pre parse arguments
  *
  * @param[in]  data                    User data (Email viewer data)
- * @param[in]  svc_handle              App control handler to get operation and data to perform
+ * @param[in]  params                  Email params handle to get operation and data to perform
  *
  * @return VIEWER_ERROR_NONE on success, otherwise VIEWER_ERROR_TYPE_E when an error occurred
  */
-int viewer_initial_data_pre_parse_arguments(void *data, app_control_h svc_handle);
+int viewer_initial_data_pre_parse_arguments(void *data, email_params_h params);
 
 /**
  * @brief Free viewer data
index 665b00f..d85dd08 100644 (file)
@@ -121,22 +121,22 @@ int viewer_delete_email(EmailViewerUGD *ug_data);
  *
  * @param[in]  data                    User data (Email viewer data)
  * @param[in]  module_type             Email Module type
- * @param[in]  bd                              App control handler to create child module
+ * @param[in]  params                  Emal params handle to create child module
  * @param[in]  hide                    If set hide webview
  *
  * @return Handler with suitable Email module, otherwise NULL
  */
-email_module_h viewer_create_module(void *data, email_module_type_e module_type, app_control_h bd, bool hide);
+email_module_h viewer_create_module(void *data, email_module_type_e module_type, email_params_h params, bool hide);
 
 /**
  * @brief Create Composer module
  *
  * @param[in]  data                    User data (Email viewer data)
- * @param[in]  bd                              App control handler to create child module
+ * @param[in]  params                  Emal params handle to create child module
  *
  * @return Handler with Composer Email module, otherwise NULL
  */
-email_module_h viewer_create_scheduled_composer_module(void *data, app_control_h bd);
+email_module_h viewer_create_scheduled_composer_module(void *data, email_params_h params);
 
 /**
  * @brief Create Composer module
@@ -260,7 +260,7 @@ void viewer_send_email(void *data, char *email_address);
  * @param[in]  index                   Index of contact that should be displayed
  *
  */
-void viewer_view_contact_detail(void *data, char *index);
+void viewer_view_contact_detail(void *data, int index);
 
 /**
  * @brief Run Composer, called from mbe selection
index fc17189..ac0e562 100644 (file)
@@ -108,7 +108,6 @@ struct ug_data {
 
        /* module */
        email_module_h loaded_module;
-       app_control_h service_handle;
        int create_contact_arg;
        bool is_composer_module_launched;
 
index c1a7a36..5179c75 100644 (file)
@@ -706,24 +706,24 @@ static void _viewer_launch_smart_search(EmailViewerUGD *ug_data, char *link_url)
        }
        debug_secure("keyword [%s]", keyword);
 
-       app_control_h service = NULL;
-       ret = app_control_create(&service);
+       app_control_h app_control = NULL;
+       ret = app_control_create(&app_control);
        debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed: service[NULL]");
-       ret = app_control_set_launch_mode(service, APP_CONTROL_LAUNCH_MODE_GROUP);
+       retm_if(app_control == NULL, "app_control create failed: app_control[NULL]");
+       ret = app_control_set_launch_mode(app_control, APP_CONTROL_LAUNCH_MODE_GROUP);
        debug_log("app_control_set_launch_mode: %d", ret);
-       ret = app_control_set_operation(service, APP_CONTROL_OPERATION_SEARCH);
+       ret = app_control_set_operation(app_control, APP_CONTROL_OPERATION_SEARCH);
        debug_log("app_control_set_operation: %d", ret);
-       ret = app_control_add_extra_data(service, "http://tizen.org/appcontrol/data/keyword", keyword);
+       ret = app_control_add_extra_data(app_control, "http://tizen.org/appcontrol/data/keyword", keyword);
        debug_log("app_control_add_extra_data: %d", ret);
 
-       ret = app_control_send_launch_request(service, NULL, NULL);
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
        debug_log("app_control_send_launch_request: %d", ret);
        if (ret != APP_CONTROL_ERROR_NONE) {
                notification_status_message_post(_("IDS_EMAIL_HEADER_UNABLE_TO_PERFORM_ACTION_ABB"));
        }
 
-       ret = app_control_destroy(service);
+       ret = app_control_destroy(app_control);
        debug_log("app_control_destroy: %d", ret);
        g_free(keyword);
 }
@@ -733,15 +733,15 @@ static void _viewer_share_text(EmailViewerUGD *ug_data, char *share_text)
        debug_enter();
 
        int ret = 0;
-       app_control_h service_handle = NULL;
-       ret = app_control_create(&service_handle);
-       debug_log("app_control_create: %p, %d", service_handle, ret);
-       retm_if((service_handle == NULL || ret < 0), "service create failed: service[NULL] or ret[< 0]");
+       app_control_h app_control = NULL;
+       ret = app_control_create(&app_control);
+       debug_log("app_control_create: %p, %d", app_control, ret);
+       retm_if((app_control == NULL || ret < 0), "app_control create failed: app_control[NULL] or ret[< 0]");
 
-       ret = app_control_set_launch_mode(service_handle, APP_CONTROL_LAUNCH_MODE_GROUP);
+       ret = app_control_set_launch_mode(app_control, APP_CONTROL_LAUNCH_MODE_GROUP);
        debug_log("app_control_set_launch_mode: %d", ret);
 
-       ret = app_control_set_operation(service_handle, APP_CONTROL_OPERATION_SHARE_TEXT);
+       ret = app_control_set_operation(app_control, APP_CONTROL_OPERATION_SHARE_TEXT);
        debug_log("app_control_set_operation: %d", ret);
 
        int text_len = STR_LEN(share_text);
@@ -755,16 +755,16 @@ static void _viewer_share_text(EmailViewerUGD *ug_data, char *share_text)
        } else {
                selected_text = g_strdup(share_text);
        }
-       ret = app_control_add_extra_data(service_handle, APP_CONTROL_DATA_TEXT, selected_text);
+       ret = app_control_add_extra_data(app_control, APP_CONTROL_DATA_TEXT, selected_text);
        debug_log("app_control_add_extra_data: %d", ret);
 
-       ret = app_control_send_launch_request(service_handle, NULL, NULL);
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
        debug_log("app_control_send_launch_request: %d", ret);
        if (ret != APP_CONTROL_ERROR_NONE) {
                notification_status_message_post(_("IDS_EMAIL_HEADER_UNABLE_TO_PERFORM_ACTION_ABB"));
        }
 
-       ret = app_control_destroy(service_handle);
+       ret = app_control_destroy(app_control);
        debug_log("app_control_destroy: %d", ret);
        g_free(selected_text);
 }
@@ -776,43 +776,43 @@ void viewer_launch_download_manager(EmailViewerUGD *ug_data, const char *downloa
        debug_secure("uri = [%s], cookie = [%s]", download_uri, cookie);
 
        int ret = 0;
-       app_control_h service_handle = NULL;
+       app_control_h app_control = NULL;
 
-       ret = app_control_create(&service_handle);
-       debug_log("app_control_create: %p, %d", service_handle, ret);
-       retm_if((service_handle == NULL || ret < 0), "service create failed: service[NULL] or ret[< 0]");
+       ret = app_control_create(&app_control);
+       debug_log("app_control_create: %p, %d", app_control, ret);
+       retm_if((app_control == NULL || ret < 0), "app_control create failed: app_control[NULL] or ret[< 0]");
 
-       ret = app_control_set_launch_mode(service_handle, APP_CONTROL_LAUNCH_MODE_GROUP);
+       ret = app_control_set_launch_mode(app_control, APP_CONTROL_LAUNCH_MODE_GROUP);
        debug_log("app_control_set_launch_mode: %d", ret);
 
-       ret = app_control_set_operation(service_handle, APP_CONTROL_OPERATION_DOWNLOAD);
+       ret = app_control_set_operation(app_control, APP_CONTROL_OPERATION_DOWNLOAD);
        debug_log("app_control_set_operation: %d", ret);
 
-       ret = app_control_set_uri(service_handle, download_uri);
+       ret = app_control_set_uri(app_control, download_uri);
        debug_log("app_control_set_uri: %d", ret);
 
        if (cookie && strlen(cookie)) {
-               ret = app_control_add_extra_data(service_handle, "req_http_header_field", "cookie");
+               ret = app_control_add_extra_data(app_control, "req_http_header_field", "cookie");
                debug_log("app_control_add_extra_data: %d", ret);
 
-               ret = app_control_add_extra_data(service_handle, "req_http_header_value", cookie);
+               ret = app_control_add_extra_data(app_control, "req_http_header_value", cookie);
                debug_log("app_control_add_extra_data: %d", ret);
        }
 
-       ret = app_control_add_extra_data(service_handle, "mode", "silent");
+       ret = app_control_add_extra_data(app_control, "mode", "silent");
        debug_log("app_control_add_extra_data: %d", ret);
 
        const char *storage_type = "0"; /* "0": phone memory / "1": memory card */
-       ret = app_control_add_extra_data(service_handle, "default_storage", storage_type);
+       ret = app_control_add_extra_data(app_control, "default_storage", storage_type);
        debug_log("app_control_add_extra_data: %d", ret);
 
-       ret = app_control_add_extra_data(service_handle, "network_bonding", "true");
+       ret = app_control_add_extra_data(app_control, "network_bonding", "true");
        debug_log("app_control_add_extra_data: %d", ret);
 
-       ret = app_control_send_launch_request(service_handle, NULL, NULL);
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
        debug_log("app_control_send_launch_request: %d", ret);
 
-       app_control_destroy(service_handle);
+       app_control_destroy(app_control);
        debug_log("app_control_destroy: %d", ret);
 
        int noti_ret = notification_status_message_post(email_get_email_string("IDS_EMAIL_POP_DOWNLOADING_ING"));
index bac6c6e..8d71e3d 100644 (file)
@@ -46,25 +46,17 @@ void __email_viewer_got_next_prev_message(void *data, gboolean next)
 
        _hide_view(ug_data);
 
-       app_control_h service = NULL;
-       app_control_create(&service);
-       if (!service) {
-               debug_log("service create failed");
-               return;
-       }
+       email_params_h params = NULL;
 
-       if (next == true) {
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_PREV_MSG);
-       } else {
-               app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_NEXT_MSG);
-       }
-       char idx[BUFSIZ] = { '\0' };
-       snprintf(idx, sizeof(idx), "%d", ug_data->mail_id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_INDEX, idx);
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAIL_INDEX, ug_data->mail_id) &&
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_MSG,
+                               (next ? EMAIL_BUNDLE_VAL_PREV_MSG : EMAIL_BUNDLE_VAL_NEXT_MSG))) {
 
-       email_module_send_result(ug_data->base.module, service);
+               email_module_send_result(ug_data->base.module, params);
+       }
 
-       app_control_destroy(service);
+       email_params_free(&params);
 
        debug_leave();
 }
index 2c29e83..d4d682e 100644 (file)
 #include "email-viewer-logic.h"
 #include "email-viewer-initial-data.h"
 
-int viewer_initial_data_pre_parse_arguments(void *data, app_control_h svc_handle)
+int viewer_initial_data_pre_parse_arguments(void *data, email_params_h params)
 {
        retvm_if(!data, VIEWER_ERROR_INVALID_ARG, "Invalid parameter: data is NULL!");
-       retvm_if(!svc_handle, VIEWER_ERROR_INVALID_ARG, "Invalid parameter: svc_handle is NULL!");
+       retvm_if(!params, VIEWER_ERROR_INVALID_ARG, "Invalid parameter: params is NULL!");
 
        EmailViewerUGD *temp_data = (EmailViewerUGD *)data;
 
-       int ret;
-       char *account_id = NULL;
-       char *mail_id = NULL;
-       char *mailbox_id = NULL;
-       char *landscape = NULL;
-       char *operation = NULL;
-       char *file_path = NULL;
-       char *uri = NULL;
-
-       ret = app_control_get_operation(svc_handle, &operation);
-       debug_log_if(ret != 0, "app_control_get_operation: %d", ret);
-       debug_secure("operation = %s", operation);
-
-       if (operation == NULL) { /* ug called by ug_create */
-               debug_log("operation: NULL");
-       } else { /* ug called by appcontrol request */
-               if (!g_strcmp0(operation, APP_CONTROL_OPERATION_VIEW)) {
-                       debug_log("operation: APP_CONTROL_OPERATION_VIEW");
-               }
-               G_FREE(operation);
-       }
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_ACCOUNT_ID, (char **)&account_id);
-       debug_log_if(ret != 0, "app_control_get_extra_data: %d", ret);
-       debug_secure("account_id:%s", account_id);
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_MAIL_ID, (char **)&mail_id);
-       debug_log_if(ret != 0, "app_control_get_extra_data: %d", ret);
-       debug_secure("mail_id:%s", mail_id);
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_MAILBOX, (char **)&mailbox_id);
-       debug_log_if(ret != 0, "app_control_get_extra_data: %d", ret);
-       debug_secure("mailbox:%s", mailbox_id);
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_FIRST_LANDSCAPE, (char **)&landscape);
-       debug_log_if(ret != 0, "app_control_get_extra_data: %d", ret);
-       debug_log("landscape:%s", landscape);
-       ret = app_control_get_extra_data(svc_handle, EMAIL_BUNDLE_KEY_MYFILE_PATH, (char **)&file_path);
-       debug_log_if(ret != 0, "app_control_get_extra_data: %d", ret);
-       debug_secure("file_path:%s", file_path);
-
-       ret = app_control_get_uri(svc_handle, &uri);
-       debug_log_if(ret != 0, "app_control_get_uri: %d", ret);
-       debug_secure("uri:%s", uri);
-
-       if (landscape) {
-               temp_data->isLandscape = atoi(landscape);
-               G_FREE(landscape);
-       }
-
-       if (account_id) {
-               temp_data->account_id = atoi(account_id);
+       if (email_params_get_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, &temp_data->account_id)) {
                viewer_create_account_data(temp_data);
                temp_data->folder_list = email_engine_get_ca_mailbox_list_using_glist(temp_data->account_id);
-               G_FREE(account_id);
        }
+       debug_secure("account_id:%d", temp_data->account_id);
 
-       if (mail_id) {
-               temp_data->mail_id = atoi(mail_id);
-               g_free(mail_id);
-       }
+       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_MAIL_ID, &temp_data->mail_id);
+       debug_secure("mail_id:%d", temp_data->mail_id);
+       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_MAILBOX, &temp_data->mailbox_id);
+       debug_secure("mailbox:%d", temp_data->mailbox_id);
+       email_params_get_int_opt(params, EMAIL_BUNDLE_KEY_FIRST_LANDSCAPE, &temp_data->isLandscape);
+       debug_log("landscape:%d", temp_data->isLandscape);
 
-       if (mailbox_id) {
-               temp_data->mailbox_id = atoi(mailbox_id);
-               G_FREE(mailbox_id);
-       }
+       const char *file_path = NULL;
+       const char *uri = NULL;
 
-       if (file_path) {
-               debug_log("ug called by app-service request");
+       if (email_params_get_str(params, EMAIL_BUNDLE_KEY_MYFILE_PATH, &file_path)) {
+               debug_log("ug called by app-control request");
                temp_data->eml_file_path = g_strdup(file_path);
-               G_FREE(file_path);
                temp_data->viewer_type = EML_VIEWER;
                debug_secure("eml_file_path: %s", temp_data->eml_file_path);
-       } else if (uri) {
+       } else if (email_params_get_uri(params, &uri)) {
                debug_log("ug called by app-control request");
                if (g_str_has_prefix(uri, URI_SCHEME_FILE)) {
                        temp_data->eml_file_path = g_strndup(uri + strlen(URI_SCHEME_FILE), strlen(uri) - strlen(URI_SCHEME_FILE));
@@ -109,8 +61,6 @@ int viewer_initial_data_pre_parse_arguments(void *data, app_control_h svc_handle
                temp_data->viewer_type = EMAIL_VIEWER;
        }
 
-       G_FREE(uri);
-
        debug_leave();
        return VIEWER_ERROR_NONE;
 }
index 408a6e7..49e8386 100644 (file)
@@ -112,7 +112,7 @@ void viewer_ctxpopup_detail_contact_cb(void *data, Evas_Object *obj, void *event
 
        DELETE_EVAS_OBJECT(ug_data->con_popup);
        debug_secure("data(%s)", data);
-       viewer_view_contact_detail(ug_data, (char *)data);
+       viewer_view_contact_detail(ug_data, (intptr_t)data);
        debug_leave();
 }
 
@@ -353,35 +353,20 @@ void viewer_edit_email_cb(void *data, Evas_Object *obj, void *event_info)
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
 
        DELETE_EVAS_OBJECT(ug_data->con_popup);
-       int ret;
-       app_control_h service = NULL;
-
-       ret = app_control_create(&service);
-       debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed: service[NULL]");
-
-       char rtype[10] = { 0, };
-       snprintf(rtype, sizeof(rtype), "%d", RUN_COMPOSER_EDIT);
-       char acctid[10] = { 0, };
-       snprintf(acctid, sizeof(acctid), "%d", ug_data->account_id);
-       char mailboxid[10] = { 0, };
-       snprintf(mailboxid, sizeof(mailboxid), "%d", ug_data->mailbox_id);
-       char mailid[10] = { 0, };
-       snprintf(mailid, sizeof(mailid), "%d", ug_data->mail_id);
-
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mailid);
-       debug_log("app_control_add_extra_data: %d", ret);
-
-       ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, service, true);
-
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
+
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, RUN_COMPOSER_EDIT) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, ug_data->account_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, ug_data->mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAIL_ID, ug_data->mail_id)) {
+
+               ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, params, true);
+       }
+
+       email_params_free(&params);
+
        debug_leave();
 }
 
@@ -399,35 +384,20 @@ void viewer_edit_scheduled_email_cb(void *data, Evas_Object *obj, void *event_in
                debug_warning("email_cancel_sending_mail failed - err(%d)", err);
 
        DELETE_EVAS_OBJECT(ug_data->con_popup);
-       int ret;
-       app_control_h service = NULL;
-
-       ret = app_control_create(&service);
-       debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed: service[NULL]");
-
-       char rtype[10] = { 0, };
-       snprintf(rtype, sizeof(rtype), "%d", RUN_COMPOSER_EDIT);
-       char acctid[10] = { 0, };
-       snprintf(acctid, sizeof(acctid), "%d", ug_data->account_id);
-       char mailboxid[10] = { 0, };
-       snprintf(mailboxid, sizeof(mailboxid), "%d", ug_data->mailbox_id);
-       char mailid[10] = { 0, };
-       snprintf(mailid, sizeof(mailid), "%d", ug_data->mail_id);
-
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, mailid);
-       debug_log("app_control_add_extra_data: %d", ret);
-
-       ug_data->loaded_module = viewer_create_scheduled_composer_module(ug_data, service);
-
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
+
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, RUN_COMPOSER_EDIT) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, ug_data->account_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, ug_data->mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAIL_ID, ug_data->mail_id)) {
+
+               ug_data->loaded_module = viewer_create_scheduled_composer_module(ug_data, params);
+       }
+
+       email_params_free(&params);
+
        debug_leave();
 }
 
index 9722792..cf47cc3 100644 (file)
@@ -29,7 +29,7 @@
  */
 
 static void _viewer_more_menu_ctxpopup_back_cb(void *data, Evas_Object *obj, void *event_info);
-static int _viewer_launch_contacts_for_add_update(app_control_h *service,
+static int _viewer_launch_contacts_for_add_update(
                EmailViewerUGD *ug_data,
                const char *operation,
                const char *contact_data,
@@ -39,40 +39,45 @@ static int _viewer_launch_contacts_for_add_update(app_control_h *service,
  * Definition for exported functions
  */
 
-static int _viewer_launch_contacts_for_add_update(app_control_h *service,
+static int _viewer_launch_contacts_for_add_update(
                EmailViewerUGD *ug_data,
                const char *operation,
                const char *contact_data,
                const char *contact_name)
 {
-       int ret = app_control_set_operation(*service, operation);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, -1, "app_control_set_operation failed: %d", ret);
-
-       ret = app_control_set_mime(*service, EMAIL_CONTACT_MIME_SCHEME);
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, -1, "app_control_set_mime failed: %d", ret);
+       const char *ext_data_key = NULL;
 
        switch (ug_data->create_contact_arg) {
        case CONTACTUI_REQ_ADD_PHONE_NUMBER:
-               ret = app_control_add_extra_data(*service, EMAIL_CONTACT_EXT_DATA_PHONE, contact_data);
+               ext_data_key = EMAIL_CONTACT_EXT_DATA_PHONE;
                break;
        case CONTACTUI_REQ_ADD_EMAIL:
-               ret = app_control_add_extra_data(*service, EMAIL_CONTACT_EXT_DATA_EMAIL, contact_data);
+               ext_data_key = EMAIL_CONTACT_EXT_DATA_EMAIL;
                break;
        case CONTACTUI_REQ_ADD_URL:
-               ret = app_control_add_extra_data(*service, EMAIL_CONTACT_EXT_DATA_URL, contact_data);
+               ext_data_key = EMAIL_CONTACT_EXT_DATA_URL;
                break;
        default:
                debug_error("not needed value %d", ug_data->create_contact_arg);
                break;
        }
-       retvm_if(ret != APP_CONTROL_ERROR_NONE, -1, "app_control_add_extra_data failed: %d", ret);
 
-       if (contact_name) {
-               ret = app_control_add_extra_data(*service, EMAIL_CONTACT_EXT_DATA_NAME, contact_name);
-               retvm_if(ret != APP_CONTROL_ERROR_NONE, -1, "app_control_add_extra_data failed: %d", ret);
+       int ret = -1;
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_set_operation(params, operation) &&
+               email_params_set_mime(params, EMAIL_CONTACT_MIME_SCHEME) &&
+               (!ext_data_key ||
+               email_params_add_str(params, ext_data_key, contact_data)) &&
+               (!contact_name ||
+               email_params_add_str(params, EMAIL_CONTACT_EXT_DATA_NAME, contact_name))) {
+
+               ret = email_module_launch_app(ug_data->base.module, EMAIL_LAUNCH_APP_AUTO, params, NULL);
        }
 
-       ret = email_module_launch_app(ug_data->base.module, EMAIL_LAUNCH_APP_AUTO, *service, NULL);
+       email_params_free(&params);
+
        if (ret != 0) {
                debug_error("email_module_launch_app failed: %d", ret);
                return -1;
@@ -88,24 +93,16 @@ void viewer_add_contact(void *data, char *contact_data, char *contact_name)
        debug_secure("contact_address (%s)", contact_data);
 
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
-       app_control_h service = NULL;
 
-       int ret = app_control_create(&service);
-       debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed: service[NULL]");
-
-       ret = _viewer_launch_contacts_for_add_update(&service,
+       int ret = _viewer_launch_contacts_for_add_update(
                        ug_data,
                        APP_CONTROL_OPERATION_ADD,
                        contact_data,
                        contact_name);
-
        if (ret != 0) {
                debug_error("_viewer_launch_contacts_for_add_update failed: %d", ret);
        }
 
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
        debug_leave();
 }
 
@@ -117,24 +114,16 @@ void viewer_update_contact(void *data, char *contact_data)
        debug_secure("contact_data (%s)", contact_data);
 
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
-       app_control_h service = NULL;
 
-       int ret = app_control_create(&service);
-       debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed: service[NULL]");
-
-       ret = _viewer_launch_contacts_for_add_update(&service,
+       int ret = _viewer_launch_contacts_for_add_update(
                        ug_data,
                        APP_CONTROL_OPERATION_EDIT,
                        contact_data,
                        NULL);
-
        if (ret != 0) {
                debug_error("_viewer_launch_contacts_for_add_update failed: %d", ret);
        }
 
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
        debug_leave();
 }
 
@@ -276,11 +265,8 @@ void viewer_create_more_ctxpopup(EmailViewerUGD *ug_data)
                email_contact_list_info_t *contact_list_item = email_contacts_get_contact_info_by_email_address(ug_data->sender_address);
                        if (contact_list_item) {
                                debug_log("Sender address is listed in contacts DB, person ID:%d", contact_list_item->person_id);
-                               int index = contact_list_item->person_id;;
-                               char index_str[BUF_LEN_T] = { 0, };
-                               index = contact_list_item->person_id;
-                               snprintf(index_str, sizeof(index_str), "%d", index);
-                               ctx_menu_item = elm_ctxpopup_item_append(ug_data->con_popup, "IDS_EMAIL_OPT_VIEW_CONTACT_DETAILS_ABB", icon, viewer_ctxpopup_detail_contact_cb, g_strdup(index_str));
+                               ctx_menu_item = elm_ctxpopup_item_append(ug_data->con_popup, "IDS_EMAIL_OPT_VIEW_CONTACT_DETAILS_ABB",
+                                               icon, viewer_ctxpopup_detail_contact_cb, (void *)contact_list_item->person_id);
                        } else {
                                debug_log("Sender address is not listed in contacts DB");
                                ctx_menu_item = elm_ctxpopup_item_append(ug_data->con_popup, "IDS_EMAIL_OPT_ADD_TO_CONTACTS_ABB2", icon, viewer_ctxpopup_add_contact_cb, ug_data);
index 52f688a..f7c79f7 100644 (file)
@@ -228,9 +228,7 @@ static void _recipient_popup_genlist_sel(void *data, Evas_Object *obj, void *eve
                if (index == 0) {
                        if (ug_data->recipient_contact_list_item) {
                                debug_log("Contact Item Exist: index[%d]", ug_data->recipient_contact_list_item->person_id);
-                               char index_str[BUF_LEN_T] = { 0, };
-                               snprintf(index_str, sizeof(index_str), "%d", ug_data->recipient_contact_list_item->person_id);
-                               viewer_view_contact_detail(ug_data, g_strdup(index_str));
+                               viewer_view_contact_detail(ug_data, ug_data->recipient_contact_list_item->person_id);
                                email_contacts_delete_contact_info(&ug_data->recipient_contact_list_item);
                        } else {
                                ug_data->create_contact_arg = CONTACTUI_REQ_ADD_EMAIL;
index d4cacaf..312de20 100644 (file)
@@ -632,34 +632,31 @@ static void _account_destroy_request_cb(void *data, email_module_h module)
        debug_leave();
 }
 
-static void _account_result_cb(void *data, email_module_h module, app_control_h result)
+static void _account_result_cb(void *data, email_module_h module, email_params_h result)
 {
        debug_enter();
        retm_if(module == NULL, "Invalid parameter: module[NULL]");
        retm_if(data == NULL, "Invalid parameter: data[NULL]");
 
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
-       char *temp = NULL;
+
        int is_move_mail_ug = 0;
-       app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, &temp);
-       is_move_mail_ug = atoi(temp);
-       FREE(temp);
+       email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, &is_move_mail_ug);
 
        if (is_move_mail_ug) {
-               app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_STATUS, &temp);
-               int move_status = (int)atoi(temp);
-               FREE(temp);
+               int move_status = 0;
+               email_params_get_int_opt(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_STATUS, &move_status);
+
                if (move_status == EMAIL_ERROR_NONE) {
-                       app_control_get_extra_data(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVED_MAILBOX_NAME, &temp);
                        char str[BUF_LEN_L] = { 0, };
-                       if (temp) {
-                               snprintf(str, sizeof(str), email_get_email_string("IDS_EMAIL_TPOP_1_EMAIL_MOVED_TO_PS"), temp);
+                       const char *mailbox_name = NULL;
+                       if (email_params_get_str(result, EMAIL_BUNDLE_KEY_MAILBOX_MOVED_MAILBOX_NAME, &mailbox_name)) {
+                               snprintf(str, sizeof(str), email_get_email_string("IDS_EMAIL_TPOP_1_EMAIL_MOVED_TO_PS"), mailbox_name);
                        } else {
                                snprintf(str, sizeof(str), "%s", email_get_email_string("IDS_EMAIL_TPOP_1_EMAIL_MOVED_TO_SELECTED_FOLDER"));
                        }
                        int ret = notification_status_message_post(str);
                        debug_warning_if(ret != NOTIFICATION_ERROR_NONE, "notification_status_message_post() failed! ret:(%d)", ret);
-                       FREE(temp);
                        ug_data->move_status = move_status;
                }
        }
@@ -668,7 +665,7 @@ static void _account_result_cb(void *data, email_module_h module, app_control_h
        }
 }
 
-email_module_h viewer_create_module(void *data, email_module_type_e module_type, app_control_h bd, bool hide)
+email_module_h viewer_create_module(void *data, email_module_type_e module_type, email_params_h params, bool hide)
 {
        debug_enter();
        retvm_if(data == NULL, NULL, "Invalid parameter: data[NULL]");
@@ -690,14 +687,14 @@ email_module_h viewer_create_module(void *data, email_module_type_e module_type,
 
        if (hide) viewer_hide_webview(ug_data);
 
-       email_module_h module = email_module_create_child(ug_data->base.module, module_type, bd, &listener);
+       email_module_h module = email_module_create_child(ug_data->base.module, module_type, params, &listener);
        if (ug_data->base.content)
                elm_object_tree_focus_allow_set(ug_data->base.content, EINA_FALSE);
 
        return module;
 }
 
-email_module_h viewer_create_scheduled_composer_module(void *data, app_control_h bd)
+email_module_h viewer_create_scheduled_composer_module(void *data, email_params_h params)
 {
        debug_enter();
        retvm_if(data == NULL, NULL, "Invalid parameter: data[NULL]");
@@ -711,7 +708,7 @@ email_module_h viewer_create_scheduled_composer_module(void *data, app_control_h
        viewer_hide_webview(ug_data);
 
        email_module_h module = email_module_create_child(ug_data->base.module,
-                       EMAIL_MODULE_COMPOSER, bd, &listener);
+                       EMAIL_MODULE_COMPOSER, params, &listener);
        if (ug_data->base.content)
                elm_object_tree_focus_allow_set(ug_data->base.content, EINA_FALSE);
 
@@ -744,22 +741,22 @@ void viewer_launch_browser(EmailViewerUGD *ug_data, const char *link_url)
        debug_secure("link_url (%s)", link_url);
 
        int ret = APP_CONTROL_ERROR_NONE;
-       app_control_h service = NULL;
-       ret = app_control_create(&service);
-       retm_if(ret != APP_CONTROL_ERROR_NONE, "service create failed: service[NULL]");
+       app_control_h app_control = NULL;
+       ret = app_control_create(&app_control);
+       retm_if(ret != APP_CONTROL_ERROR_NONE, "app_control create failed: app_control[NULL]");
 
-       ret = app_control_set_launch_mode(service, APP_CONTROL_LAUNCH_MODE_GROUP);
+       ret = app_control_set_launch_mode(app_control, APP_CONTROL_LAUNCH_MODE_GROUP);
        debug_log("app_control_set_launch_mode: %d", ret);
-       ret = app_control_set_operation(service, APP_CONTROL_OPERATION_VIEW);
+       ret = app_control_set_operation(app_control, APP_CONTROL_OPERATION_VIEW);
        debug_log("app_control_set_operation: %d", ret);
-       ret = app_control_set_uri(service, link_url);
+       ret = app_control_set_uri(app_control, link_url);
        debug_log("app_control_set_uri: %d", ret);
-       ret = app_control_send_launch_request(service, NULL, NULL);
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
        debug_log("app_control_send_launch_request: %d", ret);
        if (ret != APP_CONTROL_ERROR_NONE) {
                notification_status_message_post(_("IDS_EMAIL_HEADER_UNABLE_TO_PERFORM_ACTION_ABB"));
        }
-       ret = app_control_destroy(service);
+       ret = app_control_destroy(app_control);
        debug_log("app_control_destroy: %d", ret);
 
        debug_leave();
@@ -772,35 +769,18 @@ void viewer_create_email(EmailViewerUGD *ug_data, const char *email_address)
        retm_if(email_address == NULL, "Invalid parameter: email_address[NULL]");
        debug_secure("email_address (%s)", email_address);
        int scheme_length = strlen(URI_SCHEME_MAILTO);
-       int ret = APP_CONTROL_ERROR_NONE;
-       app_control_h service = NULL;
-
-       ret = app_control_create(&service);
-       retm_if(ret != APP_CONTROL_ERROR_NONE, "service create failed: service[NULL]");
+       email_params_h params = NULL;
 
-       char rtype[BUF_LEN_T] = { 0, };
-       snprintf(rtype, sizeof(rtype), "%d", RUN_COMPOSER_EXTERNAL);
-
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_error("app_control_add_extra_data failed: %d: ", ret);
-               app_control_destroy(service);
-               return;
-       }
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, RUN_COMPOSER_EXTERNAL),
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_TO, &email_address[scheme_length])) {
 
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_TO, &email_address[scheme_length]);
-       if (ret != APP_CONTROL_ERROR_NONE) {
-               debug_error("app_control_add_extra_data failed: %d: ", ret);
-               app_control_destroy(service);
-               return;
+               ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, params, ug_data);
        }
 
-       ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, service, ug_data);
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
+       email_params_free(&params);
 
        debug_leave();
-
 }
 
 email_ext_save_err_type_e viewer_save_attachment_in_downloads(EV_attachment_data *aid, gboolean(*copy_file_cb) (void *data, float percentage))
@@ -970,27 +950,27 @@ static void _viewer_launch_storage_settings(EmailViewerUGD *ug_data)
 {
        debug_enter();
        int ret = APP_CONTROL_ERROR_NONE;
-       app_control_h svc_handle = NULL;
+       app_control_h app_control = NULL;
 
-       ret = app_control_create(&svc_handle);
-       debug_warning_if((ret != APP_CONTROL_ERROR_NONE || !svc_handle), "app_control_create() failed! ret:[%d]", ret);
+       ret = app_control_create(&app_control);
+       debug_warning_if((ret != APP_CONTROL_ERROR_NONE || !app_control), "app_control_create() failed! ret:[%d]", ret);
 
        /* Do make prerequisites. */
-       ret = app_control_set_launch_mode(svc_handle, APP_CONTROL_LAUNCH_MODE_GROUP);
+       ret = app_control_set_launch_mode(app_control, APP_CONTROL_LAUNCH_MODE_GROUP);
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_set_launch_mode() failed! ret:[%d]", ret);
 
-       /* Set some service data for launching application. */
-       ret = app_control_set_app_id(svc_handle, "setting-storage-efl");
+       /* Set some data for launching application. */
+       ret = app_control_set_app_id(app_control, "setting-storage-efl");
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_set_app_id() failed! ret:[%d]", ret);
 
        /* Launch application */
-       ret = app_control_send_launch_request(svc_handle, NULL, ug_data);
+       ret = app_control_send_launch_request(app_control, NULL, ug_data);
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_send_launch_request() failed! ret:[%d]", ret);
        if (ret != APP_CONTROL_ERROR_NONE) {
                notification_status_message_post(_("IDS_EMAIL_HEADER_UNABLE_TO_PERFORM_ACTION_ABB"));
        }
 
-       ret = app_control_destroy(svc_handle);
+       ret = app_control_destroy(app_control);
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_destroy() failed! ret:[%d]", ret);
 
        debug_leave();
@@ -1082,70 +1062,44 @@ void viewer_send_email(void *data, char *email_address)
 
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
 
-       int ret;
-       app_control_h service = NULL;
-
-       ret = app_control_create(&service);
-       debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed: service[NULL]");
-
-       char rtype[10] = { 0, };
-       snprintf(rtype, sizeof(rtype), "%d", RUN_COMPOSER_EXTERNAL);
-
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_TO, email_address);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_CC, NULL);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_BCC, NULL);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_SUBJECT, NULL);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_BODY, NULL);
-       debug_log("app_control_add_extra_data: %d", ret);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ATTACHMENT, NULL);
-       debug_log("app_control_add_extra_data: %d", ret);
-
-       ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, service, true);
-
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, RUN_COMPOSER_EXTERNAL) &&
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_TO, email_address)) {
+
+               ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, params, true);
+       }
+
+       email_params_free(&params);
+
        debug_leave();
 }
 
-void viewer_view_contact_detail(void *data, char *index)
+void viewer_view_contact_detail(void *data, int index)
 {
        debug_enter();
        retm_if(data == NULL, "Invalid parameter: data[NULL]");
-       retm_if(index == NULL, "Invalid parameter: index[NULL]");
        debug_secure("index (%s)", index);
 
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
-       app_control_h service = NULL;
-
-       int ret = app_control_create(&service);
-       debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed: service[NULL]");
+       email_params_h params = NULL;
+       int ret = -1;
 
-       ret = app_control_set_operation(service, APP_CONTROL_OPERATION_VIEW);
-       debug_log("app_control_set_mime: %d", ret);
+       if (email_params_create(&params) &&
+               email_params_set_operation(params, APP_CONTROL_OPERATION_VIEW) &&
+               email_params_set_mime(params, EMAIL_CONTACT_MIME_SCHEME) &&
+               email_params_add_int(params, EMAIL_CONTACT_EXT_DATA_ID, index)) {
 
-       ret = app_control_set_mime(service, EMAIL_CONTACT_MIME_SCHEME);
-       debug_log("app_control_set_mime: %d", ret);
+               ret = email_module_launch_app(ug_data->base.module, EMAIL_LAUNCH_APP_AUTO, params, NULL);
+       }
 
-       ret = app_control_add_extra_data(service, EMAIL_CONTACT_EXT_DATA_ID, index);
-       debug_log("app_control_add_extra_data: %d", ret);
+       email_params_free(&params);
 
-       ret = email_module_launch_app(ug_data->base.module, EMAIL_LAUNCH_APP_AUTO, service, NULL);
        if (ret != 0) {
                notification_status_message_post(_("IDS_EMAIL_HEADER_UNABLE_TO_PERFORM_ACTION_ABB"));
        }
 
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
-       g_free(index);
-
        debug_leave();
 }
 
@@ -1155,46 +1109,22 @@ void viewer_launch_composer(void *data, int type)
        retm_if(data == NULL, "Invalid parameter: data[NULL]");
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
        retm_if(ug_data->mail_info == NULL, "Invalid parameter: mail_info[NULL]");
-       char tmp[PATH_MAX] = {0, };
 
-       int ret;
-       app_control_h service = NULL;
-
-       ret = app_control_create(&service);
-       debug_log("app_control_create: %d", ret);
-       retm_if(service == NULL, "service create failed : service[NULL]");
-
-       char rtype[10] = { 0, };
-       snprintf(rtype, sizeof(rtype), "%d", type);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_RUN_TYPE, rtype);
-       debug_log("app_control_add_extra_data: %d", ret);
-
-       memset(tmp, 0x0, sizeof(tmp));
-       snprintf(tmp, sizeof(tmp), "%d", ug_data->account_id);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, tmp);
-       debug_log("app_control_add_extra_data: %d", ret);
-
-       memset(tmp, 0x0, sizeof(tmp));
-       snprintf(tmp, sizeof(tmp), "%d", ug_data->mailbox_id);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, tmp);
-       debug_log("app_control_add_extra_data: %d", ret);
-
-       memset(tmp, 0x0, sizeof(tmp));
-       snprintf(tmp, sizeof(tmp), "%d", ug_data->mail_id);
-       ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAIL_ID, tmp);
-       debug_log("app_control_add_extra_data: %d", ret);
-
-       if (type == RUN_EML_REPLY || type == RUN_EML_REPLY_ALL || type == RUN_EML_FORWARD) {
-               memset(tmp, 0x0, sizeof(tmp));
-               snprintf(tmp, sizeof(tmp), "%s", ug_data->eml_file_path);
-               ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MYFILE_PATH, tmp);
-               debug_log("app_control_add_extra_data: %d", ret);
+       email_params_h params = NULL;
+
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_RUN_TYPE, type) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, ug_data->account_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, ug_data->mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAIL_ID, ug_data->mail_id) &&
+               ((type != RUN_EML_REPLY && type != RUN_EML_REPLY_ALL && type != RUN_EML_FORWARD) ||
+               email_params_add_str(params, EMAIL_BUNDLE_KEY_MYFILE_PATH, ug_data->eml_file_path))) {
+
+               ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, params, true);
        }
 
-       ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_COMPOSER, service, true);
+       email_params_free(&params);
 
-       ret = app_control_destroy(service);
-       debug_log("app_control_destroy: %d", ret);
        debug_leave();
 }
 
index 3295538..e3f0348 100644 (file)
@@ -21,7 +21,6 @@
 
 /* Header Include */
 #include <utils_i18n.h>
-#include <app_control.h>
 #include <malloc.h>
 #include <notification.h>
 
@@ -68,8 +67,8 @@ static email_string_t EMAIL_VIEWER_BUTTON_CONTINUE = { PACKAGE, "IDS_EMAIL_BUTTO
 static email_string_t EMAIL_VIEWER_STRING_NULL = { NULL, NULL };
 
 /* module */
-static int _viewer_module_create(email_module_t *self, app_control_h params);
-static void _viewer_module_on_message(email_module_t *self, app_control_h msg);
+static int _viewer_module_create(email_module_t *self, email_params_h params);
+static void _viewer_module_on_message(email_module_t *self, email_params_h msg);
 static void _viewer_module_on_event(email_module_t *self, email_module_event_e event);
 
 /* view */
@@ -194,16 +193,6 @@ void viewer_resize_webview(EmailViewerUGD *ug_data, int height)
 void viewer_back_key_press_handler(EmailViewerUGD *ug_data)
 {
        debug_enter();
-       int ret = APP_CONTROL_ERROR_NONE;
-
-       if (ug_data->service_handle) {
-               ret = app_control_send_terminate_request(ug_data->service_handle);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_send_terminate_request() failed! ret:[%d]", ret);
-
-               ret = app_control_destroy(ug_data->service_handle);
-               debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_destroy() failed! ret:[%d]", ret);
-               ug_data->service_handle = NULL;
-       }
 
        if (ug_data->b_load_finished == EINA_FALSE) {
                debug_log("b_load_finished is not yet done");
@@ -279,7 +268,7 @@ static VIEWER_ERROR_TYPE_E _initialize_services(void *data)
        return VIEWER_ERROR_NONE;
 }
 
-int _viewer_module_create(email_module_t *self, app_control_h params)
+int _viewer_module_create(email_module_t *self, email_params_h params)
 {
        debug_enter();
        retvm_if(!self, -1, "Invalid parameter: self is NULL!");
@@ -290,7 +279,7 @@ int _viewer_module_create(email_module_t *self, app_control_h params)
        viewer_initialize_data(ug_data);
 
        if (!params) {
-               debug_log("service handle is NULL");
+               debug_log("params handle is NULL");
                ug_data->eViewerErrorType = VIEWER_ERROR_INVALID_ARG;
        }
 
@@ -495,7 +484,7 @@ void _viewer_destroy(email_view_t *self)
        debug_leave();
 }
 
-void _viewer_module_on_message(email_module_t *self, app_control_h msg)
+void _viewer_module_on_message(email_module_t *self, email_params_h msg)
 {
        debug_enter();
        retm_if(!self, "Invalid parameter: self is NULL!");
@@ -505,31 +494,24 @@ void _viewer_module_on_message(email_module_t *self, app_control_h msg)
 
        bool wait_for_composer = false;
 
-       char *msg_type = NULL;
-       app_control_get_extra_data(msg, EMAIL_BUNDLE_KEY_MSG, &(msg_type));
+       const char *msg_type = NULL;
+       email_params_get_str_opt(msg, EMAIL_BUNDLE_KEY_MSG, &msg_type);
 
        if (ug_data->loaded_module && ug_data->is_composer_module_launched) {
-               int ret;
-               app_control_h service = NULL;
+               email_params_h params = NULL;
 
-               ret = app_control_create(&service);
-               debug_log("app_control_create: %d", ret);
-               retm_if(service == NULL, "service create failed: service[NULL]");
+               if (email_params_create(&params) &&
+                       email_params_add_str(params, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_EMAIL_COMPOSER_SAVE_DRAFT)) {
 
-               ret = app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MSG, EMAIL_BUNDLE_VAL_EMAIL_COMPOSER_SAVE_DRAFT);
-               debug_log("app_control_add_extra_data: %d", ret);
-
-               email_module_send_message(ug_data->loaded_module, service);
-
-               ret = app_control_destroy(service);
-               debug_log("app_control_destroy: %d", ret);
+                       email_module_send_message(ug_data->loaded_module, params);
+               }
 
+               email_params_free(&params);
                wait_for_composer = true;
        }
 
        if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_VIEWER_DESTROY_VIEW) == 0) {
                debug_log("Email viewer need to be closed");
-               FREE(msg_type);
                if (wait_for_composer) {
                        ug_data->need_pending_destroy = EINA_TRUE;
                } else {
@@ -546,12 +528,9 @@ void _viewer_module_on_message(email_module_t *self, app_control_h msg)
        if (g_strcmp0(msg_type, EMAIL_BUNDLE_VAL_VIEWER_RESTORE_VIEW) == 0) {
                debug_log("Restore Email viewer");
                _reset_view(ug_data, EINA_TRUE);
-               FREE(msg_type);
                return;
        }
 
-       FREE(msg_type);
-
        debug_log("Hide previous mail data");
        _hide_view(ug_data);
 
@@ -806,23 +785,23 @@ static Eina_Bool _viewer_launch_email_application_cb(void *data)
        retvm_if(data == NULL, ECORE_CALLBACK_CANCEL, "Invalid parameter: data[NULL]");
        EmailViewerUGD *ug_data = (EmailViewerUGD *)data;
 
-       app_control_h svc_handle = NULL;
+       app_control_h app_control = NULL;
        int ret = APP_CONTROL_ERROR_NONE;
 
-       ret = app_control_create(&svc_handle);
-       retvm_if((ret != APP_CONTROL_ERROR_NONE || !svc_handle), ECORE_CALLBACK_CANCEL, "app_control_create() failed! ret:[%d]", ret);
+       ret = app_control_create(&app_control);
+       retvm_if((ret != APP_CONTROL_ERROR_NONE || !app_control), ECORE_CALLBACK_CANCEL, "app_control_create() failed! ret:[%d]", ret);
 
-       ret = app_control_add_extra_data(svc_handle, EMAIL_BUNDLE_KEY_RUN_TYPE, "9"); /* RUN_SETTING_ACCOUNT_ADD */
+       ret = app_control_add_extra_data(app_control, EMAIL_BUNDLE_KEY_RUN_TYPE, "9"); /* RUN_SETTING_ACCOUNT_ADD */
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_add_extra_data() failed! ret:[%d]", ret);
 
-       ret = app_control_set_app_id(svc_handle, PKGNAME);
+       ret = app_control_set_app_id(app_control, PKGNAME);
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_set_app_id() failed! ret:[%d]", ret);
 
        /* Launch application */
-       ret = app_control_send_launch_request(svc_handle, NULL, NULL);
+       ret = app_control_send_launch_request(app_control, NULL, NULL);
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_send_launch_request() failed! ret:[%d]", ret);
 
-       ret = app_control_destroy(svc_handle);
+       ret = app_control_destroy(app_control);
        debug_warning_if(ret != APP_CONTROL_ERROR_NONE, "app_control_destroy() failed! ret:[%d]", ret);
 
        ug_data->launch_timer = NULL;
@@ -1045,7 +1024,6 @@ Eina_Bool viewer_initialize_data(EmailViewerUGD *ug_data)
        retvm_if(ug_data == NULL, EINA_FALSE, "Invalid parameter: ug_data[NULL]");
 
        ug_data->loaded_module = NULL;
-       ug_data->service_handle = NULL;
 
        ug_data->main_w = 0;
        ug_data->main_h = 0;
@@ -1503,54 +1481,26 @@ void _move_cb(void *data, Evas_Object *obj EINA_UNUSED, void *event_info EINA_UN
 
        DELETE_EVAS_OBJECT(ug_data->con_popup);
 
-       int mail_list_length = 1;
-       char **selected_mail_list = (char **)malloc(mail_list_length * sizeof(char *));
-       retm_if(!selected_mail_list, "selected_mail_list is NULL!");
+       char s_mail_id[EMAIL_BUFF_SIZE_SML] = { 0 };
+       const char *sa_mail_id = s_mail_id;
+       snprintf(s_mail_id, EMAIL_BUFF_SIZE_SML, "%d", ug_data->mail_id);
 
-       const int BUF_LEN = 30;
-       selected_mail_list[0] = (char *)malloc(BUF_LEN * sizeof(char));
-       if (!selected_mail_list[0]) {
-               debug_error("selected_mail_list[0] is NULL - allocation memory failed");
-               free(selected_mail_list);
-               return;
-       }
-       snprintf(selected_mail_list[0], BUF_LEN, "%d", ug_data->mail_id);
+       email_params_h params = NULL;
 
-       app_control_h service;
-       if (APP_CONTROL_ERROR_NONE != app_control_create(&service)) {
-               debug_log("creating service handle failed");
-               free(selected_mail_list[0]);
-               free(selected_mail_list);
-               return;
+       if (email_params_create(&params) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_ACCOUNT_ID, ug_data->account_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX, ug_data->mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MOVE_SRC_MAILBOX_ID, ug_data->mailbox_id) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, 1) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_MODE, 0) &&
+               email_params_add_int(params, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, 0) &&
+               email_params_add_str_array(params, EMAIL_BUNDLE_KEY_ARRAY_SELECTED_MAIL_IDS, &sa_mail_id, 1)) {
+
+               ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_ACCOUNT, params, false);
        }
 
-       char acctid[30] = { 0, };
-       snprintf(acctid, sizeof(acctid), "%d", ug_data->account_id);
-       char mailboxid[30] = { 0, };
-       snprintf(mailboxid, sizeof(mailboxid), "%d", ug_data->mailbox_id);
-       char move_ug[30] = { 0, };
-       snprintf(move_ug, sizeof(move_ug), "%d", 1);
-       char move_mode[30] = { 0, };
-       snprintf(move_mode, sizeof(move_mode), "%d", 0);
-       debug_log("setting move mode %s", move_mode);
-       char mailbox_edit_mode[30] = { 0, };
-       snprintf(mailbox_edit_mode, sizeof(mailbox_edit_mode), "%d", 0);
-       char move_src_mailbox_id[30] = { 0, };
-       snprintf(move_src_mailbox_id, sizeof(move_src_mailbox_id), "%d", ug_data->mailbox_id);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_ACCOUNT_ID, acctid);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX, mailboxid);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_MOVE_UG, move_ug);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MAILBOX_MOVE_MODE, move_mode);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_IS_MAILBOX_EDIT_MODE, mailbox_edit_mode);
-       app_control_add_extra_data(service, EMAIL_BUNDLE_KEY_MOVE_SRC_MAILBOX_ID, move_src_mailbox_id);
-       app_control_add_extra_data_array(service, EMAIL_BUNDLE_KEY_ARRAY_SELECTED_MAIL_IDS, (const char **)selected_mail_list, mail_list_length);
-       debug_log("account_id: %s, mailbox_id: %s, mail_id: %s", acctid, mailboxid, selected_mail_list[0]);
-
-       ug_data->loaded_module = viewer_create_module(ug_data, EMAIL_MODULE_ACCOUNT, service, false);
-       app_control_destroy(service);
-
-       free(selected_mail_list[0]);
-       free(selected_mail_list);
+       email_params_free(&params);
+
        debug_leave();
 }