</application-service>
</ui-application>
<account>
- <account-provider appid="email-setting-efl" providerid="http://www.tizen.org/" multiple-accounts-support="true">
+ <account-provider appid="org.tizen.email" providerid="http://www.tizen.org/" multiple-accounts-support="true">
<icon section="account">/usr/share/icons/default/small/org.tizen.email.png</icon>
<icon section="account-small">/usr/share/icons/default/small/org.tizen.email.png</icon>
<label xml:lang="nl-nl">Email</label>
BuildRequires: pkgconfig(capi-content-media-content)
BuildRequires: pkgconfig(libexif)
BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(accounts-svc)
Requires: email-service
Requires: libug-worldclock-efl
INCLUDE(FindPkgConfig)
pkg_check_modules(pkgs-setting REQUIRED ecore glib-2.0 gobject-2.0 elementary utilX vconf
- appcore-efl email-service ui-gadget-1 bundle dlog edbus capi-appfw-application status libxml-2.0 contacts-service2)
+ appcore-efl email-service ui-gadget-1 bundle dlog edbus capi-appfw-application
+ status libxml-2.0 contacts-service2 accounts-svc)
FOREACH(flag ${pkgs-setting_CFLAGS})
SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}")
char *btn2_lb, popup_cb resp_cb2, Evas_Object *content);
Evas_Object *setting_get_small_notify(struct viewdata *vd, char *label);
Evas_Object *setting_add_inner_layout(struct viewdata *vd);
+int setting_add_account_to_account_svc(email_account_t *account);
+int setting_delete_account_from_account_svc(int account_svc_id);
gboolean setting_get_validation(char *email_addr);
gboolean setting_new_acct_init(struct viewdata *vd);
#include "email-view-sync-schedule.h"
#include "email-view-sync-setup.h"
#include "stdarg.h"
+#include "account.h"
+#include "account-types.h"
Evas_Object *setting_get_notify(struct viewdata *vd, char *header,
ugd->sp_list = NULL;
}
}
+
+char *setting_get_sp_name(EmailSettingUGD *ugd, int index)
+{
+ debug_log("");
+
+ if (!ugd || index < 0) {
+ debug_log("invalid parameter!");
+ return NULL;
+ }
+
+ if (index == 0) {
+ return g_strdup(EMAIL_SETTING_STRING_OTHERS);
+ }
+
+ int i = 0;
+ for (i = 0; i < ugd->sp_list_len; i++) {
+ if (ugd->sp_list[i].index == index) {
+ if (g_str_has_prefix(ugd->sp_list[i].name_str_id, "IDS_EMAIL"))
+ return g_strdup(_(ugd->sp_list[i].name_str_id));
+ else
+ return g_strdup(dgettext("sys_string", ugd->sp_list[i].name_str_id));
+ }
+ }
+
+ debug_log("index is not found");
+ return NULL;
+}
+
+int setting_add_account_to_account_svc(email_account_t *account)
+{
+ debug_log("");
+ int ret = ACCOUNT_ERROR_NONE;
+ int account_svc_id = -1;
+ account_h account_handle = NULL;
+
+ retvm_if(account == NULL, -1, "invalid parameter!");
+
+ ret = account_connect();
+ retvm_if(ret != ACCOUNT_ERROR_NONE, -1, "account_connect failed: %d", ret);
+
+ ret = account_create(&account_handle);
+ if (ret != ACCOUNT_ERROR_NONE) {
+ debug_error("account_create failed: %d", ret);
+ goto CATCH;
+ }
+
+ ret = account_set_user_name(account_handle, account->incoming_server_user_name);
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_user_name failed: %d", ret);
+
+ ret = account_set_domain_name(account_handle, account->account_name);
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_domain_name failed: %d", ret);
+
+ ret = account_set_email_address(account_handle, account->user_email_address);
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_email_address failed: %d", ret);
+
+ ret = account_set_source(account_handle, "SLP EMAIL");
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_source failed: %d", ret);
+
+ ret = account_set_package_name(account_handle, "email-setting-efl");
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_package_name failed: %d", ret);
+
+ ret = account_set_capability(account_handle , ACCOUNT_SUPPORTS_CAPABILITY_EMAIL , ACCOUNT_CAPABILITY_ENABLED);
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_capability failed: %d", ret);
+
+ ret = account_set_sync_support(account_handle, ACCOUNT_SYNC_STATUS_IDLE);
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_sync_support failed: %d", ret);
+
+ if (account->logo_icon_path) {
+ ret = account_set_icon_path(account_handle, account->logo_icon_path);
+ warn_if(ret != ACCOUNT_ERROR_NONE, "account_set_icon_path failed: %d", ret);
+ }
+
+ ret = account_insert_to_db(account_handle, &account_svc_id);
+ if (ret != ACCOUNT_ERROR_NONE) {
+ debug_error("account_insert_to_db failed: %d", ret);
+ goto CATCH;
+ }
+
+ account->account_svc_id = account_svc_id;
+
+CATCH:
+ if (account_handle)
+ account_destroy(account_handle);
+ account_disconnect();
+
+ return ret;
+}
+
+int setting_delete_account_from_account_svc(int account_svc_id)
+{
+ debug_log("");
+ int ret = ACCOUNT_ERROR_NONE;
+
+ retvm_if(account_svc_id <= 0, -1, "invalid parameter!");
+
+ ret = account_connect();
+ retvm_if(ret != ACCOUNT_ERROR_NONE, -1, "account_connect failed: %d", ret);
+
+ ret = account_delete_from_db_by_id(account_svc_id);
+ if(ret != ACCOUNT_ERROR_NONE) {
+ debug_error("account_delete_from_db_by_id failed: %d", ret);
+ goto CATCH;
+ }
+
+CATCH:
+ account_disconnect();
+
+ return ret;
+}
+
/* EOF */
#include "email-setting.h"
#include "email-setting-account-set.h"
#include "email-setting-utils.h"
+#include <account.h>
+#include <account-types.h>
static int _create(struct viewdata *vd);
static int _update(struct viewdata *vd);
}
int account_id;
+ int error_code;
err_msg = setting_get_service_fail_type(ugd->err_code);
account_id = ugd->account_id;
ugd->popup_validate = NULL;
}
+ error_code = setting_delete_account_from_account_svc(ugd->new_account->account_svc_id);
+ debug_log("setting_delete_account_from_account_svc: %d", error_code);
+
if (canceled) {
snprintf(fail_msg, sizeof(fail_msg), "%s",
EMAIL_SETTING_STRING_ACCOUNT_CREATION_CANCELLED);
EmailSettingUGD *ugd = vd->ugd;
int error_code = 0;
- if (email_engine_add_account_with_validation(p->account, &account_id,
- &(p->handle), &error_code)) {
- debug_log("Account added to Email Service DB");
- vd->ugd->start_account_validation = 1;
- vd->ugd->manual_setup = 1;
- ugd->handle = p->handle;
- _validate_account(vd, account_id);
- } else {
- debug_log("Fail to make account");
+ // add to account_svc
+ error_code = setting_add_account_to_account_svc(ugd->new_account);
+ if (error_code == ACCOUNT_ERROR_NONE) {
+ if (email_engine_add_account_with_validation(p->account, &account_id,
+ &(p->handle), &error_code)) {
+ debug_log("Account added to Email Service DB");
+ vd->ugd->start_account_validation = 1;
+ vd->ugd->manual_setup = 1;
+ ugd->handle = p->handle;
+ _validate_account(vd, account_id);
+ } else {
+ debug_log("Fail to make account");
- if (ugd->popup_one) {
- evas_object_del(ugd->popup_one);
- ugd->popup_one = NULL;
- }
- if (ugd->popup_validate) {
- evas_object_del(ugd->popup_validate);
- ugd->popup_validate = NULL;
- }
+ if (ugd->popup_one) {
+ evas_object_del(ugd->popup_one);
+ ugd->popup_one = NULL;
+ }
+ if (ugd->popup_validate) {
+ evas_object_del(ugd->popup_validate);
+ ugd->popup_validate = NULL;
+ }
- if (error_code == EMAIL_ERROR_ALREADY_EXISTS)
+ if (error_code == EMAIL_ERROR_ALREADY_EXISTS)
+ ugd->popup_one = setting_get_notify(vd,
+ EMAIL_SETTING_STRING_WARNING,
+ EMAIL_SETTING_STRING_ALREADY_EXIST, 1,
+ EMAIL_SETTING_STRING_OK,
+ _popup_ok_cb, NULL, NULL);
+ else
+ ugd->popup_one = setting_get_notify(vd,
+ EMAIL_SETTING_STRING_WARNING,
+ EMAIL_SETTING_STRING_UNABLE_TO_ADD_ACCOUNT, 1,
+ EMAIL_SETTING_STRING_OK,
+ _popup_ok_cb, NULL, NULL);
+ }
+ } else {
+ if (error_code == ACCOUNT_ERROR_DUPLICATED) {
ugd->popup_one = setting_get_notify(vd,
EMAIL_SETTING_STRING_WARNING,
EMAIL_SETTING_STRING_ALREADY_EXIST, 1,
EMAIL_SETTING_STRING_OK,
_popup_ok_cb, NULL, NULL);
- else
+ } else {
ugd->popup_one = setting_get_notify(vd,
EMAIL_SETTING_STRING_WARNING,
EMAIL_SETTING_STRING_UNABLE_TO_ADD_ACCOUNT, 1,
EMAIL_SETTING_STRING_OK,
_popup_ok_cb, NULL, NULL);
+ }
}
+
return TRUE;
}
#include <unicode/udat.h>
#include <unicode/udatpg.h>
#include <unicode/ustring.h>
+#include <account.h>
+#include <account-types.h>
static email_account_t *account_data = NULL;
static struct viewdata *g_vd = NULL;
struct viewdata *vd = (struct viewdata *)data;
struct priv_data *p = vd->priv;
EmailSettingUGD *ugd = vd->ugd;
+ int account_id = vd->ugd->account_id;
+ int account_svc_id = account_data->account_svc_id;
if (ugd->popup_one) {
evas_object_del(ugd->popup_one);
ugd->popup_validate = NULL;
}
- int account_id = vd->ugd->account_id;
- int ret = email_engine_delete_account(account_id);
-
- if (ret) {
- p->account_deleted = TRUE;
- ugd->del_timer = ecore_timer_add(0.5, _after_delete_cb, vd);
- debug_log("delete success");
+ // delete account from account_svc
+ int ret = setting_delete_account_from_account_svc(account_svc_id);
+ if (ret == ACCOUNT_ERROR_NONE) {
+ // delete account from email_svc
+ ret = email_engine_delete_account(account_id);
+ if (ret) {
+ p->account_deleted = TRUE;
+ ugd->del_timer = ecore_timer_add(0.5, _after_delete_cb, vd);
+ debug_log("delete success");
+ } else {
+ ugd->popup_one = setting_get_notify(vd, EMAIL_SETTING_STRING_WARNING,
+ EMAIL_SETTING_STRING_UNABLE_DELETE, 1,
+ EMAIL_SETTING_STRING_OK,
+ _popup_cancel_cb, NULL, NULL);
+ debug_log("delete failed");
+ }
} else {
+ debug_error("setting_delete_account_from_account_svc failed: %d", ret);
ugd->popup_one = setting_get_notify(vd, EMAIL_SETTING_STRING_WARNING,
- EMAIL_SETTING_STRING_UNABLE_DELETE, 1,
- EMAIL_SETTING_STRING_OK,
- _popup_cancel_cb, NULL, NULL);
+ EMAIL_SETTING_STRING_UNABLE_DELETE, 1,
+ EMAIL_SETTING_STRING_OK,
+ _popup_cancel_cb, NULL, NULL);
debug_log("delete failed");
}
}