imservices/instantmessagingcache/imcacheserver/src/ccacheserveractivehelper.cpp
branchRCL_3
changeset 18 b6f2a363adf7
parent 17 e1ad3c803639
child 20 7797b2f86d2b
--- a/imservices/instantmessagingcache/imcacheserver/src/ccacheserveractivehelper.cpp	Wed Mar 31 22:05:52 2010 +0300
+++ b/imservices/instantmessagingcache/imcacheserver/src/ccacheserveractivehelper.cpp	Wed Apr 14 16:17:20 2010 +0300
@@ -236,10 +236,11 @@
             unreadCount = unreadCount + header->UnreadMessageCount();   
             }
         }
-    if(!unreadCount)
-        {
+    //BugFix:ESLM-83TF7K: Unread messages are not updated to universal indicator.
+//    if(!unreadCount)
+//        {
         PublishMessageInfoL(*buddyId,sericeId);
-        }
+//        }
     
 	CleanupStack::PopAndDestroy(buddyId);
 	
@@ -453,13 +454,13 @@
         // hence the buddyid is required as conversation view will be openend.
         if(KErrNone == headerIndex)
             {
-            PublishMessageInfoL(iHeaderArray[headerIndex]->BuddyId(), sericeId);
+            PublishMessageInfoL(iHeaderArray[headerIndex]->BuddyId(), sericeId, ETrue);
             }
         // new messages are recieved from multiple parties, hence no need of the sender id
         // as the service tab will be opened.
         else
             {
-            PublishMessageInfoL(KNullDesC(), sericeId);
+            PublishMessageInfoL(KNullDesC(), sericeId,ETrue);
             }
 		PackAndNotifyEventL( EIMOperationChatDeleted, sericeId, msgHeader, NULL ); 
 		 
@@ -501,7 +502,7 @@
         {
         // remove the universal indicator notification if there it was displayed,
         // as when you logout all the ocnversations are removed.
-        PublishMessageInfoL(KNullDesC(), aServiceId);
+        PublishMessageInfoL(KNullDesC(), aServiceId, ETrue);
         
         PackAndNotifyEventL( EIMOperationAllChatDeleted, aServiceId, NULL, NULL ); 
         }
@@ -656,7 +657,8 @@
 // name of history data
 // -----------------------------------------------------------------------------
 //
-void  CCacheServerActiveHelper::PublishMessageInfoL(const TDesC& aSenderId,TInt aServiceId )
+void  CCacheServerActiveHelper::PublishMessageInfoL(const TDesC& aSenderId,TInt aServiceId, 
+                                                    TBool aCloseConversation /*= EFalse*/ )
     {
     // set/reset  the status pane indicator here
     // based on the unread count.
@@ -686,7 +688,7 @@
     for ( TInt index = 0; index < count; ++index )
         {
         //trap is required if one plugin leaves then it should continue with other plugins.
-        TRAP_IGNORE(iPluginInfo[index]->Plugin().MessageInfoL(unreadCount,aServiceId,aSenderId,multipleSender));
+        TRAP_IGNORE(iPluginInfo[index]->Plugin().MessageInfoL(unreadCount,aServiceId,aSenderId,multipleSender,aCloseConversation));
         }
     }
  // -----------------------------------------------------------------------------