TizenRefApp-8366 Implement mark msg thread as read. 87/124987/1
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Thu, 13 Apr 2017 08:27:49 +0000 (11:27 +0300)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Thu, 13 Apr 2017 08:27:49 +0000 (11:27 +0300)
Change-Id: I35ae783280232a428b52cb12d1f89aba47e156ee
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/Conversation/Controller/inc/ConvList.h
src/Conversation/Controller/src/ConvList.cpp
src/MsgThread/Controller/inc/ThreadList.h
src/MsgThread/Controller/src/ThreadList.cpp
src/MsgThread/View/inc/ThreadListViewItem.h
src/MsgThread/View/src/ThreadListViewItem.cpp

index a0ac917121f671ddccd4814b0b3466ab947c52cf..df064f2a5e13add8600cfc7a218d5a988318f5ed 100644 (file)
@@ -76,6 +76,7 @@ namespace Msg {
             ConvListItem *insertItem(const MsgConversationItem &item);
             void demoteItem(ConvListItem &item); // move down existing item
             void clear();
+            void markAsRead();
 
         private:
             bool m_IsDeleteMode;
index 847aa7502247c85d1dfcded5d9df7bf1f6f32f22..61448fed0bb806e9da71ef0cf33d179172eadf66 100644 (file)
@@ -243,9 +243,17 @@ void ConvList::setThreadId(ThreadId id)
         m_ThreadId = id;
         fillList();
         updateTitle();
+        markAsRead();
     }
 }
 
+void ConvList::markAsRead()
+{
+    if (m_ThreadId.isValid())
+        getMsgStorage().setReadStatus(m_ThreadId);
+}
+
+
 void ConvList::onListItemSelected(ListItem &listItem)
 {
     MSG_LOG("");
index 5cf52ba6c6d6c3cb871b6d8d7f52fe46e9fc9d55..6e75c826b0fb9e6cfc7f3f697a25a61ac393e44c 100644 (file)
@@ -54,7 +54,7 @@ namespace Msg {
             // IMsgStorageListener:
             void onMsgStorageThreadUpdate(const ThreadId &threadId) override;
             void onMsgStorageThreadInsert(const ThreadId &threadId) override;
-            void onMsgStorageThreadDelete(const ThreadId &threadId) override;;
+            void onMsgStorageThreadDelete(const ThreadId &threadId) override;
 
             // IContactManagerListener:
             void onContactChanged() override;
index 8a8c93f4de3f1dae0426e1caba18d25861e996f3..a102dc22fe50d43de05bde83def95ef02d85f1e5 100644 (file)
@@ -71,7 +71,6 @@ void ThreadList::setDeleteMode(bool value)
     if (m_DeleteMode != value) {
         m_DeleteMode = value;
         setCheckMode(value);
-        ThreadListViewItem::resetCheckMode(*this);
         checkAllItems(false, true);
         if (m_ComposeItem)
             m_ComposeItem->disabled(value);
@@ -227,7 +226,7 @@ void ThreadList::deleteItems()
 
 void ThreadList::navigateTo(ThreadListItem &item)
 {
-    ListView::showItem(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+    ListView::showItem(item, ELM_GENLIST_ITEM_SCROLLTO_MIDDLE);
 }
 
 void ThreadList::updateItems(const MsgIdList &idList)
index 02975e81b947731278d7654f6a4e39829571c9c5..2010a65c5d63935961cb9f2168ecda7e452b73a3 100644 (file)
@@ -36,7 +36,6 @@ namespace Msg {
 
             void setState(State state, bool updateUi);
             State getState() const;
-            static void resetCheckMode(ListView &listView);
 
         protected:
             virtual std::string getName() = 0;
index e6c41fb6f4b91e2f2edf22881ee652b1c7177e55..5523b5dc263eef374c625ae7a3588ab742feef07 100644 (file)
@@ -63,7 +63,7 @@ Evas_Object *ThreadListViewItem::getContent(ListItem &item, const char *part)
 {
     Evas_Object *content = nullptr;
 
-    if (!strcmp(part, iconPart) || !strcmp(part, iconPaddingPart))
+    if (m_State == IconState && (!strcmp(part, iconPart) || !strcmp(part, iconPaddingPart)))
         content = makeUnreadIcon(getUnreadCount());
 
     return content;
@@ -100,8 +100,3 @@ Evas_Object *ThreadListViewItem::makeUnreadIcon(const std::string &text) const
     evas_object_show(icon);
     return icon;
 }
-
-void ThreadListViewItem::resetCheckMode(ListView &listView)
-{
-    // TODO: impl if needed.
-}