TizenRefApp-5528 Copy text for SMS and MMS 89/58989/5
authorOleksander Kostenko <o.kostenko@samsung.com>
Fri, 5 Feb 2016 14:44:35 +0000 (16:44 +0200)
committerOleksandr Kostenko <o.kostenko@samsung.com>
Mon, 8 Feb 2016 14:27:33 +0000 (06:27 -0800)
Change-Id: I570968e6719d41b9b3d5422a129eacbcbea60276
Signed-off-by: Oleksander Kostenko <o.kostenko@samsung.com>
src/Conversation/ConvList/Controller/inc/ConvListItem.h
src/Conversation/ConvList/Controller/src/ConvListItem.cpp

index 5be1c56..4991f28 100644 (file)
@@ -79,6 +79,7 @@ namespace Msg
             void onSaveAttachmentsItemPressed(ContextPopupItem &item);
             void onCopyToSimCardItemPressed(ContextPopupItem &item);
             void onViewDetailsItemPressed(ContextPopupItem &item);
+            void prepareMsgText();
 
             // Create popup when failed button is clicked
             void showFailedToSendPopup();
@@ -95,7 +96,6 @@ namespace Msg
             Message::NetworkStatus m_NetworkStatus;
             Message::Type m_Type;
             BubbleEntity m_BubbleEntity;
-            Message::Direction m_Direction;
     };
 
     class IConvListItemListener
index 7c15891..2d4d8c6 100644 (file)
@@ -23,6 +23,7 @@
 #include <telephony_common.h>
 #include <telephony_sim.h>
 #include "ContactManager.h"
+#include "FileUtils.h"
 
 using namespace Msg;
 
@@ -209,7 +210,42 @@ void ConvListItem::onDeleteItemPressed(ContextPopupItem &item)
 
 void ConvListItem::onCopyTextItemPressed(ContextPopupItem &item)
 {
-    MSG_LOG("");
+    item.getParent().destroy();
+    prepareMsgText();
+    if(!m_MessageText.empty())
+        elm_cnp_selection_set(*getOwner(), ELM_SEL_TYPE_CLIPBOARD, ELM_SEL_FORMAT_TEXT, m_MessageText.c_str(), m_MessageText.length());
+
+}
+
+void ConvListItem::prepareMsgText()
+{
+    if(m_Type == Message::MT_MMS)
+    {
+        m_MessageText.clear();
+        MessageRef msg = m_App.getMsgEngine().getStorage().getMessage(m_MsgId);
+        if(msg)
+        {
+            MessageMms *mms = dynamic_cast<MessageMms*>(msg.get());
+            MsgPageList &pageList = mms->getPageList();
+
+            int size = pageList.getLength();
+            for(int i = 0; i < size; ++i)
+            {
+                MsgMediaList &mediaList = pageList.at(i).getMediaList();
+
+                int sizeList = mediaList.getLength();
+                for(int j = 0; j < sizeList; ++j)
+                {
+                    if(mediaList.at(j).getType() == MsgMedia::SmilText)
+                    {
+                        m_MessageText += FileUtils::readTextFile(mediaList.at(j).getFilePath());
+                        if(i < size - 1)
+                            m_MessageText.append("\n");
+                    }
+                }
+            }
+        }
+    }
 }
 
 void ConvListItem::onForwardItemPressed(ContextPopupItem &item)