//
#include "MessageProxy.h"
+#include "../change_listener_container.h"
+#include "../email_manager.h"
#include "../message.h"
#include "../message_conversation.h"
#include "../message_email.h"
+#include "../messaging_native.h"
#include "common/logger.h"
-//#include <MessageFolder.h>
-#include "../change_listener_container.h"
-#include "../email_manager.h"
#include "messaging/DBus/DBusTypes.h"
namespace extension {
EventFolders* eventFolder = new EventFolders();
eventFolder->service_type = MessageType::EMAIL;
eventFolder->service_id = account_id;
- std::shared_ptr<MessageFolder> folder;
- if (event == NOTI_MAILBOX_DELETE) {
- // this event is triggered after mailbox is removed
- // so we just create folder with id
- folder.reset(new MessageFolder(std::to_string(mailbox_id),
- "", // parent_id
- "", // service_id
- "", // content_type
- "", // name
- "", // path
- "", // type
- false));
- } else {
- email_mailbox_t* mail_box = NULL;
- int ntv_ret = email_get_mailbox_by_mailbox_id(mailbox_id, &mail_box);
- if (EMAIL_ERROR_NONE != ntv_ret) {
+ auto folder =
+ std::make_shared<MessageFolder>(std::to_string(mailbox_id), "", "", "", "", "", "", false);
+ if (event != NOTI_MAILBOX_DELETE) {
+ auto ret = native::EmailGetMailboxById(mailbox_id, *folder);
+ if (ret.IsError()) {
delete eventFolder;
- return LogAndCreateResult(
- ErrorCode::UNKNOWN_ERR, "Failed to load mailbox",
- ("email_get_mailbox_by_mailbox_id error: %d (%s)", ntv_ret, get_error_message(ntv_ret)));
- }
- folder.reset(new MessageFolder(*mail_box));
- if (EMAIL_ERROR_NONE != email_free_mailbox(&mail_box, 1)) {
- LoggerD("Failed to free email_free_mailbox");
+ return ret;
}
}
+
eventFolder->items.push_back(folder);
switch (event) {
case NOTI_MAILBOX_ADD:
const char* MESSAGE_FOLDER_ATTRIBUTE_TYPE = "type";
const char* MESSAGE_FOLDER_ATTRIBUTE_SYNCHRONIZABLE = "synchronizable";
-std::string convertPlatformFolderType(email_mailbox_type_e folderType) {
- ScopeLogger();
- switch (folderType) {
- case EMAIL_MAILBOX_TYPE_INBOX:
- return MessageFolderTypeStr[MESSAGE_FOLDER_TYPE_INBOX];
- case EMAIL_MAILBOX_TYPE_SENTBOX:
- return MessageFolderTypeStr[MESSAGE_FOLDER_TYPE_SENTBOX];
- case EMAIL_MAILBOX_TYPE_DRAFT:
- return MessageFolderTypeStr[MESSAGE_FOLDER_TYPE_DRAFTS];
- case EMAIL_MAILBOX_TYPE_OUTBOX:
- return MessageFolderTypeStr[MESSAGE_FOLDER_TYPE_OUTBOX];
- default:
- return "";
- }
-}
-
} // namespace
MessageFolder::MessageFolder(const std::string& id, const std::string& parent_id,
attributes[MESSAGE_FOLDER_ATTRIBUTE_SYNCHRONIZABLE] = picojson::value(synchronizable);
}
-MessageFolder::MessageFolder(email_mailbox_t mailbox)
- : MessageFolder(std::to_string(mailbox.mailbox_id), "", std::to_string(mailbox.account_id),
- MessagingUtil::messageTypeToString(EMAIL), mailbox.alias, mailbox.mailbox_name,
- convertPlatformFolderType(mailbox.mailbox_type), mailbox.local == 0) {
- ScopeLogger("from email_mailbox_t");
-}
-
MessageFolder::MessageFolder(const picojson::value& json) {
ScopeLogger("from json");
attributes = json.get<picojson::object>();
const std::string& content_type, const std::string& name, const std::string& path,
const std::string& type, bool synchronizable);
- MessageFolder(email_mailbox_t mailbox);
MessageFolder(const picojson::value& json);
virtual bool isMatchingAttribute(const std::string& attribute_name,