[messaging] Support new filtering options in findFolders (SMS/MMS) 67/211867/3
authorPawel Wasowski <p.wasowski2@samsung.com>
Wed, 6 Mar 2019 17:11:57 +0000 (18:11 +0100)
committerPawel Wasowski <p.wasowski2@samsung.com>
Fri, 15 Nov 2019 12:23:57 +0000 (12:23 +0000)
Related ACR: TWDAPI-205

[Verification] tct-messaging-sms-tests & tct-messaging-mms-tests:
pass rate did not change after applying the commit

This commit has already been reviewed:
https://review.tizen.org/gerrit/#/c/platform/core/api/webapi-plugins/+/200975/
Change-Id of the original change was:
I8cea3b5cb0a0a19a827446c5bb34bce0e2710d7e

Change-Id: I88e7720dcbc6dd500d8bb27ae8aca4cd5d429655
Signed-off-by: Pawel Wasowski <p.wasowski2@samsung.com>
src/messaging/message_folder.h
src/messaging/message_storage_short_msg.cc

index a9a7ded..e88e54c 100644 (file)
@@ -30,7 +30,7 @@ namespace extension {
 namespace messaging {
 
 enum MessageFolderType {
-  MESSAGE_FOLDER_TYPE_INBOX,
+  MESSAGE_FOLDER_TYPE_INBOX = 1,
   MESSAGE_FOLDER_TYPE_OUTBOX,
   MESSAGE_FOLDER_TYPE_DRAFTS,
   MESSAGE_FOLDER_TYPE_SENTBOX,
index 2c1e472..c5bae61 100644 (file)
@@ -225,24 +225,17 @@ void MessageStorageShortMsg::findFolders(FoldersCallbackData* callback) {
   }
 
   std::string content_type = getMsgServiceTypeString();
-  std::string empty = "";
-  std::shared_ptr<MessageFolder> folder;
-
-  /* For SMS and MMS, folderId can be one of these values:
-   *
-   *  INBOX = 1,
-   *  OUTBOX = 2,
-   *  DRAFTS = 3,
-   *  SENTBOX = 4
-   */
-
-  for (int i = 1; i < 5; i++) {
+  FolderPtr folder;
+
+  auto filter = callback->getFilter();
+  for (int i = MESSAGE_FOLDER_TYPE_INBOX; i < MESSAGE_FOLDER_TYPE_NOTSTANDARD; ++i) {
     folder = std::make_shared<MessageFolder>(
-        std::to_string(i), empty, std::to_string(m_id), content_type,
-        MessagingUtil::messageFolderTypeToString((MessageFolderType)i), empty, (MessageFolderType)i,
+        std::to_string(i), "", std::to_string(m_id), content_type,
+        MessagingUtil::messageFolderTypeToString(static_cast<MessageFolderType>(i)), "", static_cast<MessageFolderType>(i),
         false);
-
-    callback->addFolder(folder);
+    if (filter->isMatching(folder.get())) {
+      callback->addFolder(folder);
+    }
   }
 
   guint id = g_idle_add(findFoldersCB, static_cast<void*>(callback));