diff -r 2b7283837edb -r 3104fc151679 imstutils/imconversationview/imcmslauncherplugin/src/imcmslauncherplugin.cpp --- a/imstutils/imconversationview/imcmslauncherplugin/src/imcmslauncherplugin.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +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: This plugin is loaded by the Communication Launcher -* -*/ - - -#include -#include -#include "imcmslauncherplugin.h" -#include - -#include -#include - -#include -#include - -#include - - -// ======== MEMBER FUNCTIONS ======== - - -// --------------------------------------------------------------------------- -// Key value pair table to identify correct constructor -// function for the requested interface. -// --------------------------------------------------------------------------- -// -const TImplementationProxy ImplementationTable[] = - { - IMPLEMENTATION_PROXY_ENTRY( 0x200255D0, CImCmsLauncherPlugin::NewL ) - }; - -// --------------------------------------------------------------------------- -// Exported function to return the implementation proxy table -// --------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount ) - { - aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy ); - return ImplementationTable; - } - -// --------------------------------------------------------------------------- -// CImCmsLauncherPlugin::CImCmsLauncherPlugin() -// --------------------------------------------------------------------------- -// -CImCmsLauncherPlugin::CImCmsLauncherPlugin() - { - } - -// --------------------------------------------------------------------------- -// CImCmsLauncherPlugin::NewL() -// --------------------------------------------------------------------------- -// -CImCmsLauncherPlugin* CImCmsLauncherPlugin::NewL() - { - return new( ELeave ) CImCmsLauncherPlugin(); - } - -// --------------------------------------------------------------------------- -// CImCmsLauncherPlugin::~CImCmsLauncherPlugin() -// --------------------------------------------------------------------------- -// -CImCmsLauncherPlugin::~CImCmsLauncherPlugin() - { - - } - -// --------------------------------------------------------------------------- -// CImCmsLauncherPlugin::ExecuteL -// --------------------------------------------------------------------------- -// -void CImCmsLauncherPlugin::ExecuteL( const TDesC& aXspId ) - { - - - // launch the UI - TVwsViewId activeViewId; - TInt serviceId = KErrNotFound; - - //Get the active view id. This used for getting the focus - //back to the application which launched the CV - CCoeEnv::Static()->AppUi()->GetActiveViewId( activeViewId ); - - // Call to launch the conversation view - TInt serviceIdStart = aXspId.Locate(':'); - - //Get the User Id - HBufC* userId = aXspId.Right(aXspId.Length() - serviceIdStart - 1).AllocLC(); - - if (serviceIdStart) - { - //Check to see whether its a valid service id - //then there is service id. set it in the RProperty - TInt err = KErrNone; - CDesCArrayFlat* nameArray = NULL; - - RIdArray ids; - CleanupClosePushL( ids ); - - HBufC* serviceName = aXspId.Left(serviceIdStart).AllocLC(); - - CSPSettings* settings = CSPSettings::NewLC(); - - nameArray = new (ELeave) CDesCArrayFlat(2); - CleanupStack::PushL( nameArray ); - - //Get the service table id's - err = settings->FindServiceIdsL( ids ); - User::LeaveIfError( err ); - - //get the service names - err = settings->FindServiceNamesL( ids, *nameArray ); - User::LeaveIfError( err ); - - TInt count = nameArray->MdcaCount(); - for ( TInt i(0); i < count; i++) - { - // search the mathching service name - TPtrC p = nameArray->MdcaPoint( i ); - if (!p.CompareF( *serviceName )) - { - // We have found the service, - serviceId = ids[i]; - break; - } - } - CleanupStack::PopAndDestroy( 4 ); - - } - - if (KErrNotFound != serviceId) - { - //if valid service - TInt err = IMCVLauncher::LaunchImConversationViewL(activeViewId, serviceId, userId->Des(), CmsParameter()->DisplayName()); - CleanupStack::PopAndDestroy(); - User::LeaveIfError(err); - return; - } - - CleanupStack::PopAndDestroy(); - User::LeaveIfError(KErrArgument); - - } - -// End of file -