using namespace tizen;
+const char* MessageFolderTypeStr[] = {
+ "INBOX", "OUTBOX", "DRAFTS", "SENTBOX",
+};
+
namespace {
const char* MESSAGE_FOLDER_ATTRIBUTE_ID = "id";
const char* MESSAGE_FOLDER_ATTRIBUTE_TYPE = "type";
const char* MESSAGE_FOLDER_ATTRIBUTE_SYNCHRONIZABLE = "synchronizable";
-const std::string FOLDER_TYPE_INBOX = "INBOX";
-const std::string FOLDER_TYPE_OUTBOX = "OUTBOX";
-const std::string FOLDER_TYPE_DRAFTS = "DRAFTS";
-const std::string FOLDER_TYPE_SENTBOX = "SENTBOX";
-
-MessageFolderType convertPlatformFolderType(email_mailbox_type_e folderType) {
+std::string convertPlatformFolderType(email_mailbox_type_e folderType) {
ScopeLogger();
switch (folderType) {
- case email_mailbox_type_e::EMAIL_MAILBOX_TYPE_INBOX:
- return MessageFolderType::MESSAGE_FOLDER_TYPE_INBOX;
- case email_mailbox_type_e::EMAIL_MAILBOX_TYPE_SENTBOX:
- return MessageFolderType::MESSAGE_FOLDER_TYPE_SENTBOX;
- case email_mailbox_type_e::EMAIL_MAILBOX_TYPE_DRAFT:
- return MessageFolderType::MESSAGE_FOLDER_TYPE_DRAFTS;
- case email_mailbox_type_e::EMAIL_MAILBOX_TYPE_OUTBOX:
- return MessageFolderType::MESSAGE_FOLDER_TYPE_OUTBOX;
- case email_mailbox_type_e::EMAIL_MAILBOX_TYPE_ALL_EMAILS:
- return MessageFolderType::MESSAGE_FOLDER_TYPE_NOTSTANDARD;
- default:
- return MessageFolderType::MESSAGE_FOLDER_TYPE_NOTSTANDARD;
- }
-}
-} // namespace
-
-std::string messageFolderTypeToString(MessageFolderType type) {
- ScopeLogger();
- switch (type) {
- case MessageFolderType::MESSAGE_FOLDER_TYPE_INBOX:
- return FOLDER_TYPE_INBOX;
- case MessageFolderType::MESSAGE_FOLDER_TYPE_OUTBOX:
- return FOLDER_TYPE_OUTBOX;
- case MessageFolderType::MESSAGE_FOLDER_TYPE_DRAFTS:
- return FOLDER_TYPE_DRAFTS;
- case MessageFolderType::MESSAGE_FOLDER_TYPE_SENTBOX:
- return FOLDER_TYPE_SENTBOX;
+ 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,
const std::string& service_id, const std::string& content_type,
const std::string& name, const std::string& path,
- MessageFolderType type, bool synchronizable) {
+ const std::string& type, bool synchronizable) {
ScopeLogger();
attributes[MESSAGE_FOLDER_ATTRIBUTE_ID] = picojson::value(id);
attributes[MESSAGE_FOLDER_ATTRIBUTE_PARENT_ID] = picojson::value(parent_id);
attributes[MESSAGE_FOLDER_ATTRIBUTE_CONTENT_TYPE] = picojson::value(content_type);
attributes[MESSAGE_FOLDER_ATTRIBUTE_NAME] = picojson::value(name);
attributes[MESSAGE_FOLDER_ATTRIBUTE_PATH] = picojson::value(path);
- attributes[MESSAGE_FOLDER_ATTRIBUTE_TYPE] = picojson::value(static_cast<double>(type));
+ attributes[MESSAGE_FOLDER_ATTRIBUTE_TYPE] = picojson::value(type);
attributes[MESSAGE_FOLDER_ATTRIBUTE_SYNCHRONIZABLE] = picojson::value(synchronizable);
}
attributes = json.get<picojson::object>();
}
-std::string MessageFolder::getId() const {
- return attributes.at(MESSAGE_FOLDER_ATTRIBUTE_ID).get<std::string>();
-}
-
-MessageFolderType MessageFolder::getType() const {
- return static_cast<MessageFolderType>(
- static_cast<int>(attributes.at(MESSAGE_FOLDER_ATTRIBUTE_TYPE).get<double>()));
-}
-
-picojson::value MessageFolder::toJSON() const {
- picojson::value json(attributes);
- json.get<picojson::object>()[MESSAGE_FOLDER_ATTRIBUTE_TYPE] =
- picojson::value(messageFolderTypeToString(getType()));
- return json;
-}
-
bool MessageFolder::isMatchingAttribute(const std::string& attribute_name,
const common::AttributeMatchFlag match_flag,
AnyPtr match_value) const {
ScopeLogger();
- LoggerD("attribute_name: (%s), match_flag: (%s), match_value: (%s)", attribute_name.c_str(),
+ LoggerD("Attribute: (%s), Operator: (%s), Value: (%s)", attribute_name.c_str(),
common::AttributeMatchFlagToString(match_flag).c_str(), match_value->toString().c_str());
const auto attr = attributes.find(attribute_name);
if (attr == attributes.end()) {
- LoggerD("attribute: %s is NOT SUPPORTED", attribute_name.c_str());
+ LoggerD("Attribute does not exist.");
return false;
}
return true;
}
- if (MESSAGE_FOLDER_ATTRIBUTE_TYPE == attribute_name) {
- return FilterUtils::isMatching(*match_value, messageFolderTypeToString(getType()), match_flag);
- }
-
return FilterUtils::isMatching(*match_value, attr->second, match_flag);
}
FolderPtrVector filtered_folders;
for (const auto& fp : source_folders) {
if (filter->isMatching(fp.get())) {
- LoggerD("folder id:%s, folder name: %s, match: %s", fp->getId().c_str(),
- fp->attributes.at(MESSAGE_FOLDER_ATTRIBUTE_NAME).get<std::string>().c_str(), "true");
+ LoggerD("folder id: %s, folder name: %s, match: yes",
+ fp->attributes.at("id").get<std::string>().c_str(),
+ fp->attributes.at(MESSAGE_FOLDER_ATTRIBUTE_NAME).get<std::string>().c_str());
filtered_folders.push_back(fp);
} else {
- LoggerD("folder id:%s, folder name: %s, match: %s", fp->getId().c_str(),
- fp->attributes.at(MESSAGE_FOLDER_ATTRIBUTE_NAME).get<std::string>().c_str(), "false");
+ LoggerD("folder id: %s, folder name: %s, match: no",
+ fp->attributes.at("id").get<std::string>().c_str(),
+ fp->attributes.at(MESSAGE_FOLDER_ATTRIBUTE_NAME).get<std::string>().c_str());
}
}
namespace messaging {
enum MessageFolderType {
- MESSAGE_FOLDER_TYPE_INBOX = 1,
+ MESSAGE_FOLDER_TYPE_INBOX,
MESSAGE_FOLDER_TYPE_OUTBOX,
MESSAGE_FOLDER_TYPE_DRAFTS,
MESSAGE_FOLDER_TYPE_SENTBOX,
MESSAGE_FOLDER_TYPE_NOTSTANDARD
};
+extern const char* MessageFolderTypeStr[MESSAGE_FOLDER_TYPE_NOTSTANDARD];
class MessageFolder : public tizen::FilterableObject {
public:
MessageFolder(const std::string& id, const std::string& parent_id, const std::string& service_id,
const std::string& content_type, const std::string& name, const std::string& path,
- MessageFolderType type, bool synchronizable);
+ const std::string& type, bool synchronizable);
MessageFolder(email_mailbox_t mailbox);
MessageFolder(const picojson::value& json);
- std::string getId() const;
- MessageFolderType getType() const;
- picojson::value toJSON() const;
-
virtual bool isMatchingAttribute(const std::string& attribute_name,
const common::AttributeMatchFlag match_flag,
tizen::AnyPtr match_value) const override;
picojson::object attributes;
};
-std::string messageFolderTypeToString(MessageFolderType);
-
typedef std::vector<std::shared_ptr<MessageFolder>> FolderPtrVector;
-
FolderPtrVector filterFolders(tizen::AbstractFilterPtr filter,
const FolderPtrVector& source_folders);
class MessagingInstance;
-
struct FindFoldersTaskParams {
int account_id, callback_id;
std::string message_type;