Revision: 201013 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 14 Apr 2010 16:17:20 +0300
branchRCL_3
changeset 13 b6f2a363adf7
parent 12 e1ad3c803639
child 14 7797b2f86d2b
Revision: 201013 Kit: 201015
imservices/instantmessagingcache/imcacheserver/inc/ccacheserveractivehelper.h
imservices/instantmessagingcache/imcacheserver/src/ccacheserveractivehelper.cpp
imsrv_plat/im_cache_server_api/inc/cinstantmsgindicator.h
--- a/imservices/instantmessagingcache/imcacheserver/inc/ccacheserveractivehelper.h	Wed Mar 31 22:05:52 2010 +0300
+++ b/imservices/instantmessagingcache/imcacheserver/inc/ccacheserveractivehelper.h	Wed Apr 14 16:17:20 2010 +0300
@@ -102,8 +102,10 @@
           * publishes the message info to the plugins
           * @param aSenderId, buddy id
           * @param aServiceId, service id
+          * @Param aCloseConversation indicates that the event came from closing the ocnversation.
           */
-		 void  PublishMessageInfoL(const TDesC& aSenderId,TInt aServiceId );
+		 void  PublishMessageInfoL(const TDesC& aSenderId,TInt aServiceId,
+		                            TBool aCloseConversation = EFalse );
 
     										
 public:	
--- 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));
         }
     }
  // -----------------------------------------------------------------------------
--- a/imsrv_plat/im_cache_server_api/inc/cinstantmsgindicator.h	Wed Mar 31 22:05:52 2010 +0300
+++ b/imsrv_plat/im_cache_server_api/inc/cinstantmsgindicator.h	Wed Apr 14 16:17:20 2010 +0300
@@ -61,8 +61,11 @@
           * @param aSeriveId, service id.
           * @param aSenderId, message sender id.
           * @param aMultipleSender, count of number of P-2_p chats.
+          * @param aCloseConversation, indicates that this even came from closing the 
+          * conversation and hence no need to paly the tone if there were already new messages.
           */
- 	   virtual void MessageInfoL(TInt aNewMessages, TInt aSeriveId,const TDesC& aSenderId,TInt aMultipleSenders) = 0;	
+ 	   virtual void MessageInfoL(TInt aNewMessages, TInt aSeriveId,const TDesC& aSenderId,
+ 	                             TInt aMultipleSenders,TBool aCloseConversation = EFalse) = 0;	
 		 
      private:
          /**