--- a/instantmsgindicatorplugin/src/instantmsgindicatorpluginimplementation.cpp Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,194 +0,0 @@
-/*
-* Copyright (c) 2009 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: this class is the implementaiton of this plugin
-*
-*/
-// Include Files
-
-#include "instantmsgindicatorpluginimplementation.h"
-#include <AknSmallIndicator.h> //Akn indicator
-#include <avkon.hrh>
-#include <e32property.h>
-#include "cimalertmanager.h"
-
-// Member Functions
-
-// ---------------------------------------------------------------------------
-// CInstantMsgIndicatorPluginImplementation::CInstantMsgIndicatorPluginImplementation()
-// ---------------------------------------------------------------------------
-//
-CInstantMsgIndicatorPluginImplementation* CInstantMsgIndicatorPluginImplementation::NewLC()
- {
- CInstantMsgIndicatorPluginImplementation* self = new (ELeave) CInstantMsgIndicatorPluginImplementation();
- CleanupStack::PushL(self);
- self->ConstructL();
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// CInstantMsgIndicatorPluginImplementation::CInstantMsgIndicatorPluginImplementation()
-// ---------------------------------------------------------------------------
-//
- CInstantMsgIndicatorPluginImplementation* CInstantMsgIndicatorPluginImplementation::NewL()
- {
- CInstantMsgIndicatorPluginImplementation* self = CInstantMsgIndicatorPluginImplementation::NewLC( );
- CleanupStack::Pop(self);
- return self;
- }
- // ---------------------------------------------------------------------------
- // CInstantMsgIndicatorPluginImplementation::CInstantMsgIndicatorPluginImplementation()
- // ---------------------------------------------------------------------------
- //
-CInstantMsgIndicatorPluginImplementation::CInstantMsgIndicatorPluginImplementation( )
- {
- }
-// ---------------------------------------------------------------------------
-// CInstantMsgIndicatorPluginImplementation::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CInstantMsgIndicatorPluginImplementation::ConstructL()
- {
- iIndicator = CAknSmallIndicator::NewL( TUid::Uid( EAknIndicatorMecoServiceTab ) );
- //define the properties for publishing
- // msg count, serive id, sender id, receiver id
-
- // define first property to be integer type
- TInt result = RProperty::Define(KIMStatusProperty,EIMStatusPropertyMessageCount,RProperty::EInt);
- if (result != KErrAlreadyExists)
- User::LeaveIfError(result);
-
- // define first property to be integer type
- result = RProperty::Define(KIMStatusProperty,EIMStatusPropertyServiceId,RProperty::EInt);
- if (result != KErrAlreadyExists)
- User::LeaveIfError(result);
-
- result = RProperty::Define(KIMStatusProperty,EIMMultipleSender,RProperty::EInt);
- if (result != KErrAlreadyExists)
- User::LeaveIfError(result);
-
- // define first property to be integer type
- result = RProperty::Define(KIMStatusProperty,EIMStatusPropertySenderId,RProperty::EText);
- if (result != KErrAlreadyExists)
- User::LeaveIfError(result);
-
- iIMAlertMgr = CIMAlertManager::NewL();
- }
-
-// ---------------------------------------------------------------------------
-// CInstantMsgIndicatorPluginImplementation::~CInstantMsgIndicatorPluginImplementation
-// ---------------------------------------------------------------------------
-//
-CInstantMsgIndicatorPluginImplementation::~CInstantMsgIndicatorPluginImplementation()
- {
- //Make the IM Indicator invisible here
- if(iIndicator)
- {
- // using TRAP_IGNORE as we cannot call leaving methods in the destructor.
- TRAP_IGNORE(iIndicator->SetIndicatorStateL(EAknIndicatorStateOff));
- delete iIndicator;
- iIndicator = NULL;
- }
- // delete the earlier defined property
- RProperty::Delete(KIMStatusProperty,EIMStatusPropertyMessageCount);
-
- // delete the earlier defined property
- RProperty::Delete(KIMStatusProperty,EIMStatusPropertyServiceId);
-
- // delete the earlier defined property
- RProperty::Delete(KIMStatusProperty,EIMMultipleSender);
-
- // delete the earlier defined property
- RProperty::Delete(KIMStatusProperty,EIMStatusPropertySenderId);
- }
-
-
-// ---------------------------------------------------------------------------
-// CInstantMsgIndicatorPluginImplementation::ShowIMIndicator
-// ---------------------------------------------------------------------------
-//
-void CInstantMsgIndicatorPluginImplementation::ShowIMIndicatorL(TInt aNewMessages, TInt aSeriveId,
- const TDesC& aSenderId ,
- TInt aMultipleSender)
- {
- if(iIndicator)
- {
- if(aNewMessages>0)
- {
- TInt result = RProperty::Set(KIMStatusProperty,EIMStatusPropertyMessageCount,aNewMessages);
- User::LeaveIfError(result);
-
- result = RProperty::Set(KIMStatusProperty,EIMStatusPropertyServiceId,aSeriveId);
- User::LeaveIfError(result);
-
- result = RProperty::Set(KIMStatusProperty,EIMMultipleSender,aMultipleSender);
- User::LeaveIfError(result);
-
- result = RProperty::Set(KIMStatusProperty,EIMStatusPropertySenderId,aSenderId);
- User::LeaveIfError(result);
-
- iIndicator->SetIndicatorStateL( EAknIndicatorStateOn );
- }
- else
- {
- TInt result = RProperty::Set(KIMStatusProperty,EIMStatusPropertyMessageCount,aNewMessages);
- User::LeaveIfError(result);
-
- result = RProperty::Set(KIMStatusProperty,EIMStatusPropertyServiceId,aSeriveId);
- User::LeaveIfError(result);
-
- result = RProperty::Set(KIMStatusProperty,EIMMultipleSender,aMultipleSender);
- User::LeaveIfError(result);
-
- result = RProperty::Set(KIMStatusProperty,EIMStatusPropertySenderId,aSenderId);
- User::LeaveIfError(result);
- iIndicator->SetIndicatorStateL( EAknIndicatorStateOff );
- }
- }
-
- }
-
-// ---------------------------------------------------------------------------
-// CInstantMsgIndicatorPluginImplementation::PlayMsgToneL
-// ---------------------------------------------------------------------------
-//
-void CInstantMsgIndicatorPluginImplementation::PlayMsgToneL(TInt aNewMessages,TInt aSeriveId)
- {
- if(aNewMessages>0 && iIMAlertMgr)
- {
- iIMAlertMgr->PlayL(aSeriveId);
- }
- }
-
-// ---------------------------------------------------------------------------
-// CInstantMsgIndicatorPluginImplementation::MessageInfoL
-// ---------------------------------------------------------------------------
-//
- void CInstantMsgIndicatorPluginImplementation::MessageInfoL(TInt aNewMessages, TInt aSeriveId,
- const TDesC& aSenderId ,
- TInt aMultipleSender,
- TBool aCloseConversation /*= EFalse*/)
- {
-
- ShowIMIndicatorL(aNewMessages, aSeriveId,aSenderId, aMultipleSender);
- // this event is not from close conversation hence play the tone,
- // else do not play the tone.
- if(!aCloseConversation)
- {
- PlayMsgToneL(aNewMessages,aSeriveId);
- }
- }
-
-//end of file
-
-