--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phonebookui/Phonebook2/ccapplication/ccacommlauncherplugin/src/ccappcommlaunchermenuhandler.cpp Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,617 @@
+/*
+* Copyright (c) 2007-2007 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: Implementation of ccappcommlauncher menuhandler
+*
+*/
+
+#include "ccappcommlauncherheaders.h"
+
+#include <mccacontactobserver.h>
+#include <mccappengine.h>
+
+using namespace AiwContactAssign;
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::NewL
+// ---------------------------------------------------------------------------
+//
+CCCAppCommLauncherMenuHandler* CCCAppCommLauncherMenuHandler::NewL(
+ CCCAppCommLauncherPlugin& aPlugin )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::NewL()"));
+ CCCAppCommLauncherMenuHandler* self = new ( ELeave ) CCCAppCommLauncherMenuHandler( aPlugin );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self );
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::NewL()"));
+ return self;
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::~CCCAppCommLauncherMenuHandler
+// ---------------------------------------------------------------------------
+//
+CCCAppCommLauncherMenuHandler::~CCCAppCommLauncherMenuHandler()
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("~CCCAppCommLauncherMenuHandler()"));
+ // iView is deleted through the alfdisplay
+ delete iPbkCmd;
+ delete iAiwServiceHandler;
+ delete iInputBlock;
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::CCCAppCommLauncherMenuHandler()
+// ---------------------------------------------------------------------------
+//
+CCCAppCommLauncherMenuHandler::CCCAppCommLauncherMenuHandler(
+ CCCAppCommLauncherPlugin& aPlugin ) :
+ iPlugin( aPlugin ),iInputBlock( NULL )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("CCCAppCommLauncherMenuHandler()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::ConstructL()
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("CCCAppCommLauncherMenuHandler::ConstructL()"));
+ PrepareAiwMenusL();
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::PrepareAiwMenusL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::PrepareAiwMenusL()
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::PrepareAiwMenusL()"));
+
+ // Initialisation of AIW Servicehandler cannot be in
+ // ConstructL, since the menus of plugin are given
+ // later via ProvideApplicationResourcesL(..)
+ iAiwServiceHandler = CAiwServiceHandler::NewL();
+ iAiwServiceHandler->AttachL(
+ R_CCACOMMLAUNCHER_AIW_SERVICE_INTERESTS );
+ iAiwServiceHandler->AttachMenuL(
+ R_CCACOMMLAUNCHER_MENUPANE,
+ R_CCACOMMLAUNCHER_AIW_MENU_INTERESTS );
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::PrepareAiwMenusL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::AknInputBlockCancel
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::AknInputBlockCancel()
+ {
+ iInputBlock = NULL;
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::StopInputBlock
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::StopInputBlock()
+ {
+ // stop user input blocker
+ if( iInputBlock )
+ {
+ iInputBlock->Cancel();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::SetContactStore
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::SetContactStore(
+ const TCmsContactStore& aStore )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("CCCAppCommLauncherMenuHandler::SetContactStore() - %d"), (TInt)aStore );
+ iContactStore = aStore;
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DynInitMenuPaneL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DynInitMenuPaneL(
+ TInt aResourceId,
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::DynInitMenuPaneL()"));
+
+ if ( iAiwServiceHandler->HandleSubmenuL( *aMenuPane ))
+ return;
+
+ switch ( aResourceId )
+ {
+ case R_CCACOMMLAUNCHER_MENUPANE:
+ {
+ SelectDynInitMenuPaneL( aMenuPane );
+
+ if ( iAiwServiceHandler->IsAiwMenu( aResourceId ))
+ {
+
+ iAiwServiceHandler->InitializeMenuPaneL(
+ *aMenuPane, aResourceId, ECCAppCommLauncherAiwBaseCmd,
+ iAiwServiceHandler->InParamListL() );
+ }
+ break;
+ }
+ default:
+ break;
+ }
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::DynInitMenuPaneL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::SelectDynInitMenuPaneL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::SelectDynInitMenuPaneL(
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::SelectDynInitMenuPaneL()"));
+
+ switch ( iContactStore )
+ {
+ case ECmsContactStorePbk :
+ PbkContactDynInitMenuPaneL( aMenuPane );
+ break;
+ case ECmsContactStoreSim :
+ SimContactDynInitMenuPaneL( aMenuPane );
+ break;
+ case ECmsContactStoreSdn :
+ SdnContactDynInitMenuPaneL( aMenuPane );
+ break;
+ case ECmsContactStoreXsp :
+ XspContactDynInitMenuPaneL( aMenuPane );
+ break;
+ default:
+ CCA_DP(KCommLauncherLogFile, CCA_L("::DynInitMenuPaneL() - unsupported store type"));
+ break;
+ }
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::SelectDynInitMenuPaneL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::PbkContactDynInitMenuPaneL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::PbkContactDynInitMenuPaneL(
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::ContactDynInitMenuPaneL()"));
+
+ DynInitSelectMenuItemL( aMenuPane );
+ DynInitSelectOtherMenuItemL( aMenuPane );
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::ContactDynInitMenuPaneL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::SimContactDynInitMenuPaneL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::SimContactDynInitMenuPaneL(
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::SimContactDynInitMenuPaneL()"));
+
+ DynInitSelectMenuItemL( aMenuPane );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherNmbCmd );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherAddrCmd );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherDefaultsCmd );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherVoiceTagDetailsCmd );
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::SimContactDynInitMenuPaneL()"));
+
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::SdnContactDynInitMenuPaneL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::SdnContactDynInitMenuPaneL(
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::SdnContactDynInitMenuPaneL()"));
+
+ DynInitSelectMenuItemL( aMenuPane );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherNmbCmd );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherAddrCmd );
+ aMenuPane->DeleteMenuItem( KAiwCmdAssign );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherDefaultsCmd );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherVoiceTagDetailsCmd );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherDeleteCmd );
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::SdnContactDynInitMenuPaneL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DynInitSelectMenuItemL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DynInitSelectMenuItemL(
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::DynInitSelectMenuItemL()"));
+
+ if ( !iPlugin.Container().CommMethodsAvailable() )
+ {// no comm methods available
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectCmd );
+ // ECCAppCommLauncherDefaultsCmd is deleted in the SimContactDynInitMenuPaneL() method
+ if (iContactStore != ECmsContactStoreSim)
+ {
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherDefaultsCmd );
+ }
+ }
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::DynInitSelectMenuItemL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DynInitSelectOtherMenuItemL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DynInitSelectOtherMenuItemL(
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::DynInitSelectOtherMenuItemL()"));
+
+ if ( iPlugin.Container().CommMethodsAvailable())
+ {// comm methods available, continue..
+ VPbkFieldTypeSelectorFactory::TVPbkContactActionTypeSelector contactAction =
+ iPlugin.Container().SelectedCommunicationMethod();
+ CCCAppCommLauncherContactHandler& contactHandler = iPlugin.ContactHandler();//not owned
+
+ if ( contactHandler.IsItNumberAddress( contactAction ))
+ {
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherAddrCmd );
+
+ if ( contactHandler.AddressAmount( contactAction ) < 2
+ || !contactHandler.HasDefaultAttribute( contactAction ))
+ {
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherNmbCmd );
+ }
+ }
+ else
+ {
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherNmbCmd );
+
+ if ( contactHandler.AddressAmount( contactAction ) < 2
+ || !contactHandler.HasDefaultAttribute( contactAction ))
+ {
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherAddrCmd );
+ }
+ }
+ }
+ else
+ {// no comm methods available, don't show anything
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherNmbCmd );
+ aMenuPane->DeleteMenuItem( ECCAppCommLauncherSelectOtherAddrCmd );
+ }
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::DynInitSelectOtherMenuItemL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::HandleCommandL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::HandleCommandL( TInt aCommand )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::HandleCommandL()"));
+
+ // Check and handle the Aiw commands 1st
+ TInt aiwCmd = iAiwServiceHandler->ServiceCmdByMenuCmd( aCommand );
+ if( aiwCmd )
+ {
+ DoAiwCommandL( aCommand, aiwCmd );
+ return;// aCommand should not match with non-Aiw commands, but just to be sure
+ }
+
+ // Then check if command is normal application command
+ switch( aCommand )
+ {
+ case EAknSoftkeySelect:
+ case ECCAppCommLauncherSelectCmd:
+ DoSelectCmdL( ETrue );// use default
+ break;
+ case ECCAppCommLauncherSelectOtherNmbCmd:
+ case ECCAppCommLauncherSelectOtherAddrCmd:
+ DoSelectCmdL( EFalse );// do not use default
+ break;
+ case KAiwCmdAssign:// AIW service cmd for Editing
+ DoEditCmdL();
+ break;
+ case ECCAppCommLauncherDefaultsCmd:
+ DoSetDefaultCmdL();
+ break;
+ case ECCAppCommLauncherDeleteCmd:
+ DoDeleteCmdL();
+ break;
+ default:
+ break;
+ }
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::HandleCommandL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DoSelectCmdL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DoSelectCmdL( TBool aUseDefaultAddress )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::DoSelectCmdL()"));
+
+ if ( iPlugin.Container().SelectedCommunicationMethod()
+ == VPbkFieldTypeSelectorFactory::EFindOnMapSelector )
+ {
+ DoShowOnMapCmdL();
+ }
+ else
+ {
+ TPtrC fullName;
+ iPlugin.ContactHandler().ContactFieldItemDataL(
+ CCmsContactFieldItem::ECmsFullName, fullName );
+ TUint paramFlag =
+ aUseDefaultAddress ? CCAContactorService::TCSParameter::EEnableDefaults : 0;
+ CCAContactorService::TCSParameter param(
+ iPlugin.Container().SelectedCommunicationMethod(),
+ *iPlugin.ContactHandler().ContactIdentifierLC(),//contactlinkarray
+ paramFlag,
+ fullName );
+
+ CCAContactorService* contactorService = iPlugin.ContactorService();
+ contactorService->ExecuteServiceL( param );
+ CleanupStack::PopAndDestroy( 1 );// contactlinkarray
+ }
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::DoSelectCmdL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DoEditCmdL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DoEditCmdL()
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::DoEditCmdL()"));
+
+ // Avoid user input during Edit command execution
+ if( iInputBlock )
+ {
+ iInputBlock->Cancel();
+ }
+
+ iInputBlock = CAknInputBlock::NewCancelHandlerLC( this );
+ CleanupStack::Pop( iInputBlock );
+ iInputBlock->SetCancelDelete( iInputBlock );
+ CAiwGenericParamList& inParamList = iAiwServiceHandler->InParamListL();
+ TInt popAndDestroyUs = 0;
+
+ inParamList.AppendL(
+ TAiwGenericParam(
+ EGenericParamContactAssignData,
+ TAiwVariant( TAiwSingleContactAssignDataV1Pckg(
+ TAiwSingleContactAssignDataV1().SetFlags( EskipInfoNotes )))));
+
+ popAndDestroyUs += PackedContactLinkArrayToInParamListLC( inParamList );
+
+ iAiwServiceHandler->ExecuteServiceCmdL(
+ KAiwCmdAssign,
+ inParamList,
+ iAiwServiceHandler->OutParamListL(), NULL, this );
+
+ CleanupStack::PopAndDestroy( popAndDestroyUs );
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::DoEditCmdL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DoAiwCommandL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DoAiwCommandL( TInt aCmdId, TInt aServiceId )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::DoAiwCommandL()"));
+
+ CAiwGenericParamList& inParamList = iAiwServiceHandler->InParamListL();
+ TInt popAndDestroyUs = 0;
+
+ switch( aServiceId )
+ {
+ case KAiwCmdSindInfoView:
+ popAndDestroyUs += PackedContactLinkArrayToInParamListLC( inParamList );
+ break;
+ default:
+ break;
+ }
+
+ iAiwServiceHandler->ExecuteMenuCmdL(
+ aCmdId,
+ inParamList,
+ iAiwServiceHandler->OutParamListL(), NULL, NULL );// not needed (so far)
+
+ CleanupStack::PopAndDestroy( popAndDestroyUs );
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::DoAiwCommandL()"));
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::PackedContactLinkArrayToInParamListLC
+// ---------------------------------------------------------------------------
+//
+TInt CCCAppCommLauncherMenuHandler::PackedContactLinkArrayToInParamListLC(
+ CAiwGenericParamList& aInParamList )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::PrepareAiwParamListForVoiceTagLC()"));
+
+ HBufC8* packedLinks = iPlugin.ContactHandler().ContactIdentifierLC();
+
+ aInParamList.AppendL(
+ TAiwGenericParam( EGenericParamContactLinkArray,
+ TAiwVariant( *packedLinks )));
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::PrepareAiwParamListForVoiceTagLC()"));
+ return 1;// packedLinks
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::HandleNotifyL
+// ---------------------------------------------------------------------------
+//
+TInt CCCAppCommLauncherMenuHandler::HandleNotifyL(
+ TInt aCmdId,
+ TInt aEventId,
+ CAiwGenericParamList& aEventParamList,
+ const CAiwGenericParamList& /*aInParamList*/ )
+ {
+ TInt returnValue = KErrNone;
+ TInt index = 0;
+ const TAiwGenericParam* param = aEventParamList.FindFirst(index,
+ EGenericParamContactLinkArray);
+
+ index = 0;
+ const TAiwGenericParam* errParam = aEventParamList.FindFirst(index,
+ EGenericParamError);
+
+ if (param)
+ {
+ TPtrC8 contactLink = param->Value().AsData();
+
+ // Update the CCA parameter contact data
+ HBufC16* link16 = HBufC16::NewLC( contactLink.Length() );
+ link16->Des().Copy( contactLink );
+ iPlugin.AppEngine()->Parameter().SetContactDataL( link16->Des() );
+ // Set contact data flag to EContactLink, because the parameters returned from
+ // phonebook AIW provider have conatct link but not contact id.
+ iPlugin.AppEngine()->Parameter().SetContactDataFlag( MCCAParameter::EContactLink );
+ CleanupStack::PopAndDestroy(1); // link16
+
+ // Inform the app engine of the contact event
+ iPlugin.AppEngine()->CCAppContactEventL();
+
+ // Update the commlauncher the UI contact data
+ iPlugin.ContactHandler().RefetchContactL();
+ iPlugin.Container().ContactsChangedL();
+ }
+
+ if (errParam)
+ {
+ TInt32 err;
+ errParam->Value().Get(err);
+ if (err == (TInt32)KErrInUse)
+ {
+ CCoeEnv::Static()->HandleError(KErrInUse);
+ }
+ }
+
+ if ( KAiwCmdAssign == aCmdId && KAiwEventQueryExit == aEventId )
+ {
+ // Send an exit command in order to close CCA and Phonebook2
+ CAknAppUi* appUi = static_cast<CAknAppUi*>( CCoeEnv::Static()->AppUi() );
+
+ if ( appUi )
+ {
+ appUi->ProcessCommandL( EAknCmdExit );
+ }
+
+ // allow pbk editor AIW service to close whole app chain
+ returnValue = ETrue;
+ }
+
+ // stop user input blocker
+ StopInputBlock();
+
+ return returnValue;
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DoSetDefaultCmdL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DoSetDefaultCmdL()
+ {
+ if( !iPbkCmd )
+ iPbkCmd = CCCAppCommLauncherPbkCmd::NewL( iPlugin );
+
+ iPbkCmd->ExecutePbk2CmdAssignDefaultL(
+ *iPlugin.ContactHandler().ContactIdentifierLC() );
+
+ CleanupStack::PopAndDestroy( 1 ); // ContactIdentifierLC
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DoShowOnMapCmdL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DoShowOnMapCmdL()
+ {
+ if( !iPbkCmd )
+ {
+ iPbkCmd = CCCAppCommLauncherPbkCmd::NewL( iPlugin );
+ }
+
+ iPbkCmd->ExecutePbk2CmdShowMapL(
+ iPlugin.ContactHandler().ContactIdentifierLC(),
+ (TPbk2CommandId)EPbk2ExtensionShowOnMap );
+
+ CleanupStack::PopAndDestroy( 1 ); // ContactIdentifierLC
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::DoDeleteCmdL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::DoDeleteCmdL()
+ {
+ if( !iPbkCmd )
+ {
+ iPbkCmd = CCCAppCommLauncherPbkCmd::NewL( iPlugin );
+ }
+ iPbkCmd->ExecutePbk2CmdDeleteL(
+ *iPlugin.ContactHandler().ContactIdentifierLC() );
+
+ CleanupStack::PopAndDestroy( 1 ); // ContactIdentifierLC
+ }
+
+// ---------------------------------------------------------------------------
+// CCCAppCommLauncherMenuHandler::XspContactDynInitMenuPaneL
+// ---------------------------------------------------------------------------
+//
+void CCCAppCommLauncherMenuHandler::XspContactDynInitMenuPaneL(
+ CEikMenuPane* aMenuPane )
+ {
+ CCA_DP(KCommLauncherLogFile, CCA_L("->CCCAppCommLauncherMenuHandler::XspContactDynInitMenuPaneL()"));
+
+ DynInitSelectMenuItemL( aMenuPane );
+ DynInitSelectOtherMenuItemL( aMenuPane );
+
+ CCA_DP(KCommLauncherLogFile, CCA_L("<-CCCAppCommLauncherMenuHandler::XspContactDynInitMenuPaneL()"));
+ }
+
+
+// End of File