summaryrefslogtreecommitdiff
path: root/composer/src/email-composer.c
diff options
context:
space:
mode:
Diffstat (limited to 'composer/src/email-composer.c')
-rwxr-xr-xcomposer/src/email-composer.c116
1 files changed, 93 insertions, 23 deletions
diff --git a/composer/src/email-composer.c b/composer/src/email-composer.c
index f00ddcd..ba8ae0a 100755
--- a/composer/src/email-composer.c
+++ b/composer/src/email-composer.c
@@ -175,13 +175,12 @@ static void *on_create(ui_gadget_h ug, enum ug_mode mode, service_h data, void *
debug_log("def account_id = %d", ugd->account_info->account_id);
-#ifdef _NO_ACCOUNT
ugd->eComposerErrorType = _composer_get_account_list(ugd);
if (ugd->eComposerErrorType == COMPOSER_ERROR_NO_ACCOUNT_LIST) {
return ugd->main_layout;
}
-#endif
+
ugd->has_body_html = EINA_TRUE;
ugd->saved_html_path = g_strconcat(EMAIL_TMP_FOLDER, SAVE_HTML_FILE_NAME, NULL);
@@ -961,6 +960,7 @@ static void _composer_init_data(void *data)
ugd->cc_added = false;
ugd->bcc_added = false;
ugd->isRotated = false;
+ ugd->is_recipient_duplicated = false;
ugd->temporary_fix_for_rotation = false;
ugd->is_main_scroller_scrolling = false;
@@ -1386,10 +1386,16 @@ static int _composer_pre_parse_bundle(EmailComposerUGD *ugd, service_h data)
debug_log("service_get_extra_data: %d", ret);
debug_log("argv[0]:%s", argv[0]);
}
-#ifdef _NO_ACCOUNT
+
+ int ret;
+ char *operation = NULL;
+ ret = service_get_operation(data, &operation);
+ debug_log("service_get_operation: %d", ret);
+ debug_log("operation = %s", operation);
+
if (email_engine_get_default_account(&ugd->account_info->account_id) == false)
return COMPOSER_ERROR_NO_DEFAULT_ACCOUNT;
-#endif
+
if (argv[0]) {
debug_log("argv[0] = %s", argv[0]);
@@ -1397,22 +1403,39 @@ static int _composer_pre_parse_bundle(EmailComposerUGD *ugd, service_h data)
debug_log("composer type = %d", ugd->composer_type);
if (ugd->composer_type == RUN_COMPOSER_EXTERNAL) {
- int ret;
- ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_TO, (char **)&argv[1]);
- debug_log("service_get_extra_data: %d", ret);
- debug_log("to:%s", argv[1]);
- ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_CC, (char **)&argv[2]);
- debug_log("service_get_extra_data: %d", ret);
- debug_log("cc:%s", argv[2]);
- ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_BCC, (char **)&argv[3]);
- debug_log("service_get_extra_data: %d", ret);
- debug_log("bcc:%s", argv[3]);
- ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_SUBJECT, (char **)&argv[4]);
- debug_log("service_get_extra_data: %d", ret);
- debug_log("subject:%s", argv[4]);
- ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_BODY, (char **)&argv[5]);
- debug_log("service_get_extra_data: %d", ret);
- debug_log("body:%s", argv[5]);
+ if (operation == NULL) { /* ug called by ug_create */
+ ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_TO, (char **)&argv[1]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("to:%s", argv[1]);
+ ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_CC, (char **)&argv[2]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("cc:%s", argv[2]);
+ ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_BCC, (char **)&argv[3]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("bcc:%s", argv[3]);
+ ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_SUBJECT, (char **)&argv[4]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("subject:%s", argv[4]);
+ ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_BODY, (char **)&argv[5]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("body:%s", argv[5]);
+ } else { /* ug called by appcontrol request */
+ ret = service_get_extra_data(data, SERVICE_DATA_TO, (char **)&argv[1]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("to:%s", argv[1]);
+ ret = service_get_extra_data(data, SERVICE_DATA_CC, (char **)&argv[2]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("cc:%s", argv[2]);
+ ret = service_get_extra_data(data, SERVICE_DATA_BCC, (char **)&argv[3]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("bcc:%s", argv[3]);
+ ret = service_get_extra_data(data, SERVICE_DATA_SUBJECT, (char **)&argv[4]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("subject:%s", argv[4]);
+ ret = service_get_extra_data(data, SERVICE_DATA_TEXT, (char **)&argv[5]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("body:%s", argv[5]);
+ }
} else {
int ret;
ret = service_get_extra_data(data, EMAIL_BUNDLE_KEY_ACCOUNT_ID, (char **)&argv[1]);
@@ -1464,7 +1487,6 @@ static int _composer_pre_parse_bundle(EmailComposerUGD *ugd, service_h data)
}
if (argv[4] != NULL && strlen(argv[4]) != 0)
ugd->new_mail_info->mail_data->subject = g_strdup(argv[4]);
-
if (argv[5] != NULL && strlen(argv[5]) != 0) {
ugd->new_mail_info->mail_data->file_path_plain = g_strdup(argv[5]);
ugd->new_mail_info->mail_data->body_download_status = 1;
@@ -1494,9 +1516,57 @@ static int _composer_pre_parse_bundle(EmailComposerUGD *ugd, service_h data)
return COMPOSER_ERROR_NONE;
} else {
- debug_log("Invaild argument!!");
+ if (operation == NULL) { /* ug called by ug_create */
+ debug_log("Invaild argument!!");
+ return COMPOSER_ERROR_INVALID_ARG;
+ } else { /* ug called by appcontrol request */
+
+ /* default run type: RUN_COMPOSER_EXTERNAL */
+ ugd->composer_type = RUN_COMPOSER_EXTERNAL;
- return COMPOSER_ERROR_INVALID_ARG;
+ int ret;
+ ret = service_get_extra_data(data, SERVICE_DATA_TO, (char **)&argv[1]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("to:%s", argv[1]);
+ ret = service_get_extra_data(data, SERVICE_DATA_CC, (char **)&argv[2]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("cc:%s", argv[2]);
+ ret = service_get_extra_data(data, SERVICE_DATA_BCC, (char **)&argv[3]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("bcc:%s", argv[3]);
+ ret = service_get_extra_data(data, SERVICE_DATA_SUBJECT, (char **)&argv[4]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("subject:%s", argv[4]);
+ ret = service_get_extra_data(data, SERVICE_DATA_TEXT, (char **)&argv[5]);
+ debug_log("service_get_extra_data: %d", ret);
+ debug_log("body:%s", argv[5]);
+
+ if (argv[1] != NULL && strlen(argv[1]) != 0) {
+ ugd->new_mail_info->mail_data->full_address_to = _composer_parse_recipients_arg(ugd, argv[1]);
+ }
+ if (argv[2] != NULL && strlen(argv[2]) != 0) {
+ ugd->new_mail_info->mail_data->full_address_cc = _composer_parse_recipients_arg(ugd, argv[2]);
+ }
+ if (argv[3] != NULL && strlen(argv[3]) != 0) {
+ ugd->new_mail_info->mail_data->full_address_bcc = _composer_parse_recipients_arg(ugd, argv[3]);
+ }
+ if (argv[4] != NULL && strlen(argv[4]) != 0)
+ ugd->new_mail_info->mail_data->subject = g_strdup(argv[4]);
+ if (argv[5] != NULL && strlen(argv[5]) != 0) {
+ ugd->new_mail_info->mail_data->file_path_plain = g_strdup(argv[5]);
+ ugd->new_mail_info->mail_data->body_download_status = 1;
+ }
+
+ ugd->save_drafts = 1;
+
+ int i;
+ for (i = 0; i < 7;i++) {
+ if (argv[i])
+ g_free(argv[i]);
+ }
+
+ return COMPOSER_ERROR_NONE;
+ }
}
}