servicewidget/servicewidgetdatapublisher/src/cservicewidgetmessagehandler.cpp
branchRCL_3
changeset 22 3104fc151679
parent 21 2b7283837edb
child 23 9a48e301e94b
--- a/servicewidget/servicewidgetdatapublisher/src/cservicewidgetmessagehandler.cpp	Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,249 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  message handler notification
- *                
- *
-*/
-
- 
-#include "cservicewidgetmessagehandler.h"
-#include "mservicewidgetobservers.h"
-#include "swpdebugtrace.h"
-//im cache
-#include  <cimcachefactory.h>
-#include  <mimcacheaccessor.h>
-#include <apgtask.h> 
-#include <coemain.h>
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::CServiceWidgetMessageHandler
-// ---------------------------------------------------------------------------
-// 
-CServiceWidgetMessageHandler::CServiceWidgetMessageHandler(
-						MServiceWidgetNewMessageObserver& aMessageObserver )
-	:iMessageObserver( aMessageObserver )
-   {
-   TRACE_SWP(TXT("CServiceWidgetMessageHandler::CServiceWidgetMessageHandler") );
-   }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::NewL
-// ---------------------------------------------------------------------------
-// 
-CServiceWidgetMessageHandler* CServiceWidgetMessageHandler::NewL( 
-						MServiceWidgetNewMessageObserver& aMessageObserver,
-						TInt aServiceId, 
-     				    const TDesC& aOwnUserId )
-    {
-    TRACE_SWP(TXT("CServiceWidgetMessageHandler::NewL() start") );
-    CServiceWidgetMessageHandler* self = NewLC(aMessageObserver,
-    									aServiceId,
-    									aOwnUserId);
-    CleanupStack::Pop(self);
-    TRACE_SWP(TXT("CServiceWidgetMessageHandler::NewL() end") );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::NewLC
-// ---------------------------------------------------------------------------
-// 
-CServiceWidgetMessageHandler* CServiceWidgetMessageHandler::NewLC( 
-					   MServiceWidgetNewMessageObserver& aMessageObserver,
-						TInt aServiceId, 
-				 		const TDesC& aOwnUserId )
-    {
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::NewLC() start") );
-    CServiceWidgetMessageHandler* self =
-        new (ELeave) CServiceWidgetMessageHandler(aMessageObserver );
-    CleanupStack::PushL(self);
-    self->ConstructL( aOwnUserId ,aServiceId );
-    TRACE_SWP(TXT("CServiceWidgetMessageHandler::NewLC() end") );
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::ConstructL
-// ---------------------------------------------------------------------------
-// 
-void CServiceWidgetMessageHandler::ConstructL( const TDesC& aOwnUserId, TInt aServiceId )
-    {
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::ConstructL() start") );
-   	iIMCacheFactory = CIMCacheFactory::InstanceL(); 
-	iAccessor = iIMCacheFactory->CreateAccessorL( aServiceId, aOwnUserId );
-	iAccessor->RegisterObserverL(*this);
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::ConstructL() end") );
-	}
-
-// ---------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::~CServiceWidgetMessageHandler
-// ---------------------------------------------------------------------------
-// 
-CServiceWidgetMessageHandler::~CServiceWidgetMessageHandler()
-    {
-    TRACE_SWP(TXT("CServiceWidgetMessageHandler::~CServiceWidgetMessageHandler() start") );
-  	if( iIMCacheFactory )
-		{
-		if( iAccessor )
-		    {
-	    	iAccessor->UnRegisterObserver(*this);	
-	    	}
-		CIMCacheFactory::Release();  	
-		}
-	iSendersArray.ResetAndDestroy();
-	
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::~CServiceWidgetMessageHandler() end") );
-    }
-
-// -----------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::GetUnreadMessageCountL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//	
-TInt CServiceWidgetMessageHandler::GetUnreadMessageCountL()
-	{
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::GetUnreadMessageCountL()") );
-	return iAccessor->GetAllUnreadMessageCountL() ;
-	}
-//-----------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::HandleIMCacheEventL
-// ( Other items commented in header )
-//-----------------------------------------------------------------------------  
-
-void CServiceWidgetMessageHandler::HandleIMCacheEventL(TIMCacheEventType aEventType, TAny* aChatMessage  )
-	{
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::HandleIMCacheEventL() start") );
-	switch( aEventType )
-		{
-		case EIMCacheUnreadMessage :
-			{
-			TRACE_SWP(TXT("CServiceWidgetMessageHandler::HandleIMCacheEventL() EIMCacheUnreadMessage ") );
-			if (!aChatMessage)
-				{
-				return;	
-				}
-			SIMCacheMessageData* chatData = static_cast<SIMCacheMessageData*>( aChatMessage ) ;
-			// check that buddy id exists
-			if ( chatData->iBuddyId )
-			    {
-			    TPtrC buddyId = chatData->iBuddyId->Des();
-				TPtrC messageText = chatData->iText->Des();
-				if( !IsExistInSendersArrayL( buddyId ) ) // append only if not exist 
-					{
-					HBufC* sender = buddyId.AllocLC();
-					if( sender )
-						{
-						iSendersArray.InsertL( sender ,0 ); // ownership to array
-						CleanupStack::Pop(sender); //	
-						}
-					}
-				iMessageObserver.HandleNewMessageL( buddyId, messageText );
-			    }
-			break;	
-			}
-		case EIMCacheUnreadChange :
-			{
-			TRACE_SWP(TXT("CServiceWidgetMessageHandler::HandleIMCacheEventL() EIMCacheUnreadChange ") );
-			SynchronizeSendersArrayL();
-		    iMessageObserver.HandleCountChangedL();
-			break;	
-			}
-		default:
-			{
-			break;
-			}
-		}
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::HandleIMCacheEventL() end ") );
-	}
-
-// -----------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::GetUnreadSenderId
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-const TDesC& CServiceWidgetMessageHandler::GetUnreadSenderId() 
-	{
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::GetUnreadSenderId() start") );
-	if( iSendersArray.Count() )
-		{
-		TRACE_SWP(TXT("CServiceWidgetMessageHandler::GetUnreadSenderId() end") );
-		return *( iSendersArray[ 0 ] ); //  latest sender always on top
-		}
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::GetUnreadSenderId() end") );
-	return KNullDesC;
-	}
-
-// -----------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::IsSingleMessageSender
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CServiceWidgetMessageHandler::IsSingleMessageSender() 
-	{
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::IsSingleMessageSender()") );
-	return ( iSendersArray.Count() == 1 );
-	}
-	
-// -----------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::IsExistInSendersArrayL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-TBool CServiceWidgetMessageHandler::IsExistInSendersArrayL( const TDesC& aNewSenderId ) 
-	{
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::IsExistInSendersArrayL() start") );
-	TInt count = iSendersArray.Count();
-	for( TInt i=0; i<count; i++ )
-		{
-		HBufC* senderId = iSendersArray[i];
-		if( senderId && aNewSenderId.Compare( *senderId ) == 0 )	
-			{
-			TRACE_SWP(TXT("CServiceWidgetMessageHandler::IsExistInSendersArrayL() end") );
-			return  ETrue;	
-			}
-		}
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::IsExistInSendersArrayL() end") );
-	return EFalse;
-	}
-// -----------------------------------------------------------------------------
-// CServiceWidgetMessageHandler::SynchronizeSendersArrayL
-// (other items were commented in a header).
-// -----------------------------------------------------------------------------
-//
-void CServiceWidgetMessageHandler::SynchronizeSendersArrayL() 
-	{
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::SynchronizeSendersArrayL() start") );
-	TInt count = iSendersArray.Count();
-	for( TInt i=0; i < count; i++ )
-		{
-		HBufC* senderId = iSendersArray[i];
-		if( senderId )	
-			{
-			TInt unreadCount = iAccessor->GetUnreadMessageCountL(*senderId  ) ;
-			if( !unreadCount )
-				{
-				iSendersArray.Remove( i );
-				delete 	senderId;
-				senderId = NULL;
-				iSendersArray.Compress();
-				break;
-				}
-			}
-		}
-	TRACE_SWP(TXT("CServiceWidgetMessageHandler::SynchronizeSendersArrayL() end") );
-	}		
-	
-// end of file
-
-