TizenRefApp-6897 Move attachments insertion from body to convlist 98/85498/3
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Thu, 25 Aug 2016 10:59:57 +0000 (13:59 +0300)
committerAndrey Klimenko <and.klimenko@samsung.com>
Thu, 25 Aug 2016 12:41:58 +0000 (05:41 -0700)
Fixed: read attachments from body

Change-Id: I515cb2a84e8ce2024d93fb24ef44af4549e456a4
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/Common/Controller/src/NaviFrameController.cpp
src/Common/MsgEngine/inc/MsgAttachment.h
src/Common/MsgEngine/inc/MsgMedia.h
src/Common/MsgEngine/src/private/MsgAttachmentPrivate.cpp
src/Common/MsgEngine/src/private/MsgAttachmentPrivate.h
src/Common/MsgEngine/src/private/MsgMediaPrivate.cpp
src/Common/MsgEngine/src/private/MsgMediaPrivate.h
src/Conversation/Body/Controller/src/Body.cpp
src/Conversation/ConvList/View/src/BubbleViewItem.cpp

index 7eba56b..45452c0 100644 (file)
@@ -96,6 +96,7 @@ void NaviFrameController::execCmd(const AppControlDefaultRef &cmd)
                     Conversation *conversation = new Conversation(*this);
                     ecore_main_loop_iterate_may_block(true);  // FIXME: Fix EFL(TSAM-2158) and remove it
                     push(*conversation);
+                    ecore_main_loop_iterate_may_block(true);
                     conversation->execCmd(cmd);
                 }
             }
@@ -113,6 +114,7 @@ void NaviFrameController::execCmd(const AppControlComposeRef &cmd)
             conv = new Conversation(*this);
             ecore_main_loop_iterate_may_block(true); // FIXME: Fix EFL(TSAM-2158) and remove it
             push(*conv);
+            ecore_main_loop_iterate_may_block(true);
         }
         conv->execCmd(cmd);
     }
index 47b18a7..e977203 100644 (file)
@@ -37,9 +37,6 @@ namespace Msg
             virtual std::string getMime() const = 0;
 
             virtual void setFilePath(const std::string &path) = 0;
-            virtual void setFileName(const std::string &fileName) = 0;
-            virtual void setFileSize(int size) const = 0;
-            virtual void setMime(const std::string &mime) = 0;
     };
 }
 
index 08b31f9..d121ade 100644 (file)
@@ -73,12 +73,6 @@ namespace Msg
              * @param[in] path.
              */
             virtual void setFilePath(const std::string &path) = 0;
-
-            /**
-             * @brief Sets filename.
-             * @param[in] filename.
-             */
-            virtual void setFileName(const std::string &name) = 0;
     };
 }
 
index e95ab94..828d458 100644 (file)
@@ -65,6 +65,9 @@ std::string MsgAttachmentPrivate::getMime() const
 void MsgAttachmentPrivate::setFilePath(const std::string &path)
 {
     MsgUtilsPrivate::setStr(m_MsgStruct, MSG_MMS_ATTACH_FILEPATH_STR, path);
+    setFileName(FileUtils::getFileName(path));
+    setFileSize(FileUtils::getFileSize(path));
+    setMime(FileUtils::getMimeType(path));
 }
 
 void MsgAttachmentPrivate::setFileName(const std::string &fileName)
index 03b2e2f..32d36b3 100644 (file)
@@ -38,9 +38,9 @@ namespace Msg
             virtual std::string getMime() const;
 
             virtual void setFilePath(const std::string &path);
-            virtual void setFileName(const std::string &fileName);
-            virtual void setFileSize(int size) const;
-            virtual void setMime(const std::string &mime);
+            void setFileName(const std::string &fileName);
+            void setFileSize(int size) const;
+            void setMime(const std::string &mime);
     };
 
     typedef class MsgListHandlePrivate<MsgAttachmentPrivate, MsgAttachment> MsgAttachmentListHandlePrivate;
index 61b6728..db15f07 100644 (file)
@@ -20,6 +20,7 @@
 #include "MsgDefPrivate.h"
 #include "Logger.h"
 #include "MediaType.h"
+#include "FileUtils.h"
 #include <msg.h>
 
 using namespace Msg;
@@ -97,6 +98,7 @@ void MsgMediaPrivate::setFilePath(const std::string &path)
     MsgUtilsPrivate::setStr(m_MsgStruct, MSG_MMS_MEDIA_FILEPATH_STR, path);
     MediaTypeData mediaData = getMsgMediaTypeByFileExt(path);
     setType(mediaData.type);
+    setFileName(FileUtils::getFileName(path));
 }
 
 void MsgMediaPrivate::setFileName(const std::string &name)
index 379a6b8..b1d7184 100644 (file)
@@ -35,10 +35,10 @@ namespace Msg
             virtual Type getType() const;
             virtual std::string getFilePath() const;
             virtual std::string getFileName() const;
-            virtual void setFileName(const std::string &name);
             virtual void setFilePath(const std::string &path);
 
             std::string getMime() const;
+            void setFileName(const std::string &name);
             void setMime(const std::string &mime);
             void setType(Type type);
     };
index adfafda..a8bca93 100644 (file)
@@ -280,13 +280,27 @@ void Body::readAttachments(MessageMms &msg)
     for(auto *attachment : attachments)
     {
         const std::string &filePath = attachment->getFilePath();
-        if(!filePath.empty())
+        if(filePath.empty())
+            continue;
+
+        switch(getMsgMediaTypeByFileExt(filePath).type)
         {
-            MsgPage &msgPage = msg.addPage();
-            msgPage.setPageDuration(defaultPageDuration);
-            MsgMedia &media = msgPage.addMedia();
-            media.setFilePath(filePath);
-            media.setFileName(FileUtils::getFileName(filePath));
+            case MsgMedia::ImageType:
+            case MsgMedia::AudioType:
+            case MsgMedia::VideoType:
+            {
+                MsgPage &msgPage = msg.addPage();
+                msgPage.setPageDuration(defaultPageDuration);
+                MsgMedia &media = msgPage.addMedia();
+                media.setFilePath(filePath);
+                break;
+            }
+            default:
+            {
+                MsgAttachment &msgAttach = msg.addAttachment();
+                msgAttach.setFilePath(filePath);
+                break;
+            }
         }
     }
 }
index 1249908..699cad2 100644 (file)
@@ -75,6 +75,7 @@ void BubbleViewItem::showDelButton(bool show)
         m_pDelButton = elm_button_add(getEo());
         elm_object_style_set(m_pDelButton, "transparent");
         evas_object_smart_callback_add(m_pDelButton, "clicked", SMART_CALLBACK(BubbleViewItem, onDelButtonClicked), this);
+        elm_object_focus_allow_set(m_pDelButton, false);
         evas_object_event_callback_add
         (
             m_pDelButton,