TSAM-9756 Threat list don't display lastest messages when receive new messages 56/96556/1 submit/tizen_3.0/20161109.114655
authorDenis Dolzhenko <d.dolzhenko@samsung.com>
Wed, 9 Nov 2016 09:38:23 +0000 (11:38 +0200)
committerDenis Dolzhenko <d.dolzhenko@samsung.com>
Wed, 9 Nov 2016 09:38:23 +0000 (11:38 +0200)
Change-Id: I6e0205c828aee99c35fcb0ce4f0fac011a8b0326
Signed-off-by: Denis Dolzhenko <d.dolzhenko@samsung.com>
src/MsgThread/Controller/inc/ThreadList.h
src/MsgThread/Controller/src/ThreadList.cpp

index 961dc9ddd9cd10dd2ca97eeb949fc9aefe797982..f816ad7ec79d0a68d913f157d93ca64068a51c4b 100644 (file)
@@ -74,8 +74,8 @@ namespace Msg
             void updateItems(const MsgIdList &idList);
             void updateItems();
             void updateItem(ThreadListItem &item);
-            void insertItem(const MsgThreadItem &msgThreadItem);
             void insertItem(ThreadId id);
+            void navigateTo(ThreadListItem &item);
             ThreadListItem *getItem(ThreadId id) const;
             bool isAllThreadListItemChecked() const;
             void updateSelectAllItem();
index 6def2cca7f39263c5598c8df1e7e5ac22379ce14..f60b6a6a7f09f12b9bdb2b4ed8725f3147dcf20d 100644 (file)
@@ -177,16 +177,15 @@ int ThreadList::cmpFunc(const ListItem &item1, const ListItem &item2)
     return threadItem2.getRawTime() - threadItem1.getRawTime();
 }
 
-void ThreadList::insertItem(const MsgThreadItem &item)
-{
-    ListView::sortedInsertItem(*new ThreadListItem(item, m_App));
-}
-
 void ThreadList::insertItem(ThreadId id)
 {
     MsgThreadItemRef threadItem = m_App.getMsgEngine().getStorage().getThread(id);
     if(threadItem)
-        insertItem(*threadItem);
+    {
+        auto newItem = new ThreadListItem(*threadItem, m_App);
+        ListView::sortedInsertItem(*newItem);
+        navigateTo(*newItem);
+    }
 }
 
 ThreadListItem *ThreadList::getItem(ThreadId id) const
@@ -240,6 +239,11 @@ void ThreadList::deleteItems()
     updateSelectAllItem();
 }
 
+void ThreadList::navigateTo(ThreadListItem &item)
+{
+    ListView::showItem(item, ELM_GENLIST_ITEM_SCROLLTO_TOP);
+}
+
 void ThreadList::updateItems(const MsgIdList &idList)
 {
     auto threadIdSet = getThreadIdSet(idList);
@@ -281,10 +285,12 @@ void ThreadList::updateItem(ThreadListItem &item)
         newItem->setCheckedState(item.getCheckedState(), false);
         item.destroy();
         ListView::sortedInsertItem(*newItem);
+        navigateTo(*newItem);
     }
     else
     {
         item.update(*msgThread, true);
+        navigateTo(item);
     }
 }