TizenRefApp-7510 reduced number of MsgStorage::getMessage() calls to improve performa... 28/94228/3
authorAndrey Klimenko <and.klimenko@samsung.com>
Thu, 27 Oct 2016 15:04:53 +0000 (18:04 +0300)
committerAndrey Klimenko <and.klimenko@samsung.com>
Fri, 28 Oct 2016 12:07:47 +0000 (05:07 -0700)
Change-Id: I8ec28db5c1d788622e6c32b2e8565498028fa669
Signed-off-by: Andrey Klimenko <and.klimenko@samsung.com>
src/Conversation/ConvList/Controller/src/MsgDetailsPopup.cpp
src/Conversation/Utils/inc/MessageDetailContent.h
src/Conversation/Utils/src/MessageDetailContent.cpp

index d93f247..d60e994 100644 (file)
@@ -47,14 +47,15 @@ void MsgDetailsPopup::updateContent()
 
     std::string content;
     MsgStorage &msgStorage = m_App.getMsgEngine().getStorage();
-    Message::Direction msgDirection = msgStorage.getMessage(m_MsgId)->getDirection();
-    Message::Type msgType = msgStorage.getMessage(m_MsgId)->getType();
-    Message::NetworkStatus msgStatus = msgStorage.getMessage(m_MsgId)->getNetworkStatus();
-    ThreadId msgThreadId = msgStorage.getMessage(m_MsgId)->getThreadId();
+    MessageRef message = msgStorage.getMessage(m_MsgId);
+    Message::Direction msgDirection = message->getDirection();
+    Message::Type msgType = message->getType();
+    Message::NetworkStatus msgStatus = message->getNetworkStatus();
+    ThreadId msgThreadId = message->getThreadId();
 
     content += getMessageType(msgType);
     content += getContactsInfo(m_App, msgDirection, msgThreadId);
-    content += getSentReceivedTime(msgStorage, msgDirection, m_MsgId);
+    content += getSentReceivedTime(*message, msgDirection);
 
     if(msgDirection == Message::MD_Sent && msgType == Message::MT_SMS)
     {
@@ -65,15 +66,15 @@ void MsgDetailsPopup::updateContent()
     else if(msgType == Message::MT_MMS_Noti)
     {
         content += brTag;
-        content += getMmsSubject(m_App, m_MsgId, ViewDetailsTextStyle);
-        content += getMmsMessageSize(m_App, m_MsgId, ViewDetailsTextStyle);
-        content += getMmsMessageExpired(m_App, m_MsgId, ViewDetailsTextStyle);
+        content += getMmsSubject(*message, ViewDetailsTextStyle);
+        content += getMmsMessageSize(*message, ViewDetailsTextStyle);
+        content += getMmsMessageExpired(*message, ViewDetailsTextStyle);
     }
     else if(msgType == Message::MT_MMS)
     {
         content += brTag;
-        content += getMmsSubject(m_App, m_MsgId, ViewDetailsTextStyle);
-        content += getMmsMessageSize(m_App, m_MsgId, ViewDetailsTextStyle);
+        content += getMmsSubject(*message, ViewDetailsTextStyle);
+        content += getMmsMessageSize(*message, ViewDetailsTextStyle);
 
         if(msgDirection == Message::MD_Sent)
         {
index b470acf..c921879 100644 (file)
@@ -31,16 +31,15 @@ namespace Msg
             DownloadTextStyle
         };
 
-        // TODO: Ineffective get methods by MsgId
         std::string getMmsNotiConvListItemContent(App &app, MsgId msgId);
         std::string getMessageType(Message::Type msgType);
         std::string getContactsInfo(App &app, Message::Direction m_Direction, ThreadId msgThreadId);
-        std::string getSentReceivedTime(MsgStorage &msgStorage, Message::Direction msgDirection, MsgId msgId);
+        std::string getSentReceivedTime(const Message &message, Message::Direction msgDirection);
         std::string makeDeliveryReportResult(App &app, Message::NetworkStatus msgStatus, Message::Type msgType, ThreadId msgThreadId, MsgId msgId);
         std::string getSmsStatus(Message::NetworkStatus msgStatus);
-        std::string getMmsSubject(App &app, MsgId msgId, int style);
-        std::string getMmsMessageSize(App &app, MsgId msgId, int style);
-        std::string getMmsMessageExpired(App &app, MsgId msgId, int style);
+        std::string getMmsSubject(const Message &msg, int style);
+        std::string getMmsMessageSize(const Message &message, int style);
+        std::string getMmsMessageExpired(const Message &message, int style);
         std::string makeReadReportResult(App &app, MsgId msgId, ThreadId msgThreadId, Message::NetworkStatus msgStatus);
         std::string makeDispAddress(App &app, const std::string &address);
         std::string makeMainText(const std::string &text);
index 5058693..d142bd1 100644 (file)
@@ -40,10 +40,11 @@ namespace
 
 std::string getMmsNotiConvListItemContent(App &app, MsgId msgId)
 {
+    MessageRef msg = app.getMsgEngine().getStorage().getMessage(msgId);
     std::string msgDetails;
-    msgDetails += getMmsSubject(app, msgId, DownloadTextStyle);
-    msgDetails += getMmsMessageSize(app, msgId, DownloadTextStyle);
-    msgDetails += getMmsMessageExpired(app, msgId, DownloadTextStyle);
+    msgDetails += getMmsSubject(*msg, DownloadTextStyle);
+    msgDetails += getMmsMessageSize(*msg, DownloadTextStyle);
+    msgDetails += getMmsMessageExpired(*msg, DownloadTextStyle);
     return msgDetails;
 }
 
@@ -100,7 +101,7 @@ std::string getContactsInfo(App &app, Message::Direction msgDirection, ThreadId
     return contactsInfo;
 }
 
-std::string getSentReceivedTime(MsgStorage &msgStorage, Message::Direction msgDirection, MsgId msgId)
+std::string getSentReceivedTime(const Message &message, Message::Direction msgDirection)
 {
     std::string msgDetails;
     if(msgDirection == Message::MD_Sent)
@@ -109,7 +110,7 @@ std::string getSentReceivedTime(MsgStorage &msgStorage, Message::Direction msgDi
         msgDetails.append(makeMainText(msg("IDS_MSG_HEADER_TIME_RECEIVED")));
 
     msgDetails.append("<br/>");
-    time_t time = msgStorage.getMessage(msgId)->getTime();
+    time_t time = message.getTime();
     msgDetails.append(makeSecondText(TimeUtils::makeDateTimeString(time)));
     return msgDetails;
 }
@@ -210,18 +211,19 @@ std::string getSmsStatus(Message::NetworkStatus msgStatus)
     return status;
 }
 
-std::string getMmsSubject(App &app, MsgId msgId, int style)
+std::string getMmsSubject(const Message &message, int style)
 {
     std::string msgDetails;
-    std::string subject = app.getMsgEngine().getStorage().getMessage(msgId)->getSubject();
+    std::string subject = message.getSubject();
     switch(style)
     {
         case ViewDetailsTextStyle:
             msgDetails.append(makeMainText(msg("IDS_MSG_HEADER_SUBJECT"))).append("<br/>");
             if(subject.empty())
-                    msgDetails.append(makeSecondText(msg("IDS_MSGF_BODY_NO_SUBJECT")));
+                msgDetails.append(makeSecondText(msg("IDS_MSGF_BODY_NO_SUBJECT")));
             else
                 msgDetails.append(makeSecondText(subject));
+
             msgDetails.append("<br/><br/>");
             break;
         case DownloadTextStyle:
@@ -231,6 +233,7 @@ std::string getMmsSubject(App &app, MsgId msgId, int style)
                 msgDetails.append(msg("IDS_MSGF_BODY_NO_SUBJECT"));
             else
                 msgDetails.append(subject);
+
             msgDetails.append("<br/>");
             break;
         default:
@@ -241,11 +244,10 @@ std::string getMmsSubject(App &app, MsgId msgId, int style)
     return msgDetails;
 }
 
-std::string getMmsMessageSize(App &app, MsgId msgId, int style)
+std::string getMmsMessageSize(const Message &message, int style)
 {
+    int msgSize = message.getSize();
     std::string msgDetails;
-    int msgSize = app.getMsgEngine().getStorage().getMessage(msgId)->getSize();
-
     switch(style)
     {
         case ViewDetailsTextStyle:
@@ -267,11 +269,10 @@ std::string getMmsMessageSize(App &app, MsgId msgId, int style)
     return msgDetails;
 }
 
-std::string getMmsMessageExpired(App &app, MsgId msgId, int style)
+std::string getMmsMessageExpired(const Message &message, int style)
 {
+    const MessageMms *mms = dynamic_cast<const MessageMms*>(&message);
     std::string msgDetails;
-    MessageMmsRef mms = std::dynamic_pointer_cast<MessageMms>(app.getMsgEngine().getStorage().getMessage(msgId));
-
     switch(style)
     {
         case ViewDetailsTextStyle: