--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/phoneapp/phoneuivoipextension/src/cphonenewcallcmdhandler.cpp Mon Jan 18 20:18:27 2010 +0200
@@ -0,0 +1,251 @@
+/*
+* 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: Implementation of CPhoneNewCallCmdHandler class.
+*
+*/
+
+#include <featmgr.h>
+
+#include "cphonenewcallcmdhandler.h"
+#include "cphonelogger.h"
+#include "mphonestatemachine.h"
+#include "phonerssvoip.h"
+#include "phoneappvoipcommands.hrh"
+#include "cphonestate.h"
+#include "cphonestateincall.h"
+#include "tphonecmdparamcustomdialer.h"
+#include "tphonecmdparaminteger.h"
+#include "tphonecmdparamstring.h"
+#include "tphonecmdparamquery.h"
+#include "tphonecmdparamglobalnote.h"
+#include "cphonemainresourceresolver.h"
+#include "cphonestatemachinevoip.h"
+#include "cphonestateutilsvoip.h"
+
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::CPhoneNewCallCmdHandler
+// C++ constructor.
+// ---------------------------------------------------------------------------
+//
+CPhoneNewCallCmdHandler::CPhoneNewCallCmdHandler(
+ MPhoneStateMachine& aStateMachine,
+ MPhoneViewCommandHandle& aViewCommandHandle )
+ : iStateMachine( aStateMachine ), iViewCommandHandle( aViewCommandHandle )
+ {
+
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::ConstructL
+// ---------------------------------------------------------------------------
+//
+void CPhoneNewCallCmdHandler::ConstructL()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::NewL
+// ---------------------------------------------------------------------------
+//
+CPhoneNewCallCmdHandler* CPhoneNewCallCmdHandler::NewL(
+ MPhoneStateMachine& aStateMachine,
+ MPhoneViewCommandHandle& aViewCommandHandle )
+ {
+ CPhoneNewCallCmdHandler* self =
+ CPhoneNewCallCmdHandler::NewLC(
+ aStateMachine, aViewCommandHandle );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::NewLC
+// ---------------------------------------------------------------------------
+//
+CPhoneNewCallCmdHandler* CPhoneNewCallCmdHandler::NewLC(
+ MPhoneStateMachine& aStateMachine,
+ MPhoneViewCommandHandle& aViewCommandHandle )
+ {
+ CPhoneNewCallCmdHandler* self =
+ new( ELeave ) CPhoneNewCallCmdHandler(
+ aStateMachine, aViewCommandHandle );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::~CPhoneNewCallCmdHandler
+// Destructor.
+// ---------------------------------------------------------------------------
+//
+CPhoneNewCallCmdHandler::~CPhoneNewCallCmdHandler()
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::HandleCommandL
+// ---------------------------------------------------------------------------
+//
+void CPhoneNewCallCmdHandler::HandleCommandL( TInt aCommand )
+ {
+ __LOGMETHODSTARTEND( PhoneUIVoIPExtension,
+ "CPhoneNewCallCmdHandler::HandleCommandL" )
+
+ switch ( aCommand )
+ {
+ case EPhoneInCallCmdNewInternetCall:
+ ShowNewCallQueryL();
+ break;
+
+ case EPhoneCmdNewInternetCallOk:
+ DoNewCallL();
+ break;
+
+ case EPhoneCmdNewInternetCallSearch:
+ OpenSingleItemContactFetchL(
+ EPhoneCmdNewInternetCallContactFetch );
+ break;
+
+ case EPhoneCmdNewInternetCallContactFetch:
+ {
+ TBuf<KPhoneNumberEntryBufferSize> fetchContent;
+ fetchContent = iViewCommandHandle.FetchContent();
+
+ StateUtils().SelectServiceAndDialL( fetchContent );
+ break;
+ }
+
+ default:
+ __PHONELOG( EOnlyFatal, PhoneUIVoIPExtension,
+ "CPhoneNewCallCmdHandler::HandleCommandL, DEFAULT" );
+ ASSERT( EFalse );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::ShowNewCallQueryL
+// ---------------------------------------------------------------------------
+//
+void CPhoneNewCallCmdHandler::ShowNewCallQueryL()
+ {
+ __LOGMETHODSTARTEND( PhoneUIVoIPExtension,
+ "CPhoneNewCallCmdHandler::ShowNewCallQueryL" )
+
+ if ( !FeatureManager::FeatureSupported( KFeatureIdOnScreenDialer ) )
+ {
+ CPhoneState* phoneState =
+ static_cast<CPhoneState*>( iStateMachine.State() );
+
+ HBufC *text = HBufC::NewLC( KPhoneNumberEntryBufferSize );
+ TPtr ptr( text->Des() );
+ // Pre-populate the query with the number entry contents, if it exists
+ if ( phoneState->IsNumberEntryUsedL() )
+ {
+ // get the number entry contents
+ TPhoneCmdParamString stringParam;
+ stringParam.SetString( &ptr );
+ iViewCommandHandle.ExecuteCommandL(
+ EPhoneViewGetLocalizedNumberFromEntry,
+ &stringParam );
+ }
+
+ TPhoneCmdParamQuery queryDialogParam;
+ queryDialogParam.SetQueryType( EPhoneTextQueryDialog );
+ queryDialogParam.SetQueryResourceId(
+ CPhoneMainResourceResolver::Instance()->
+ ResolveResourceID( EPhoneVoIPNewCallQuery ) );
+
+ queryDialogParam.SetDefaultCba( CPhoneMainResourceResolver::Instance()->
+ ResolveResourceID( EPhoneVoIPNewCallQueryEmptySoftkeys ) );
+
+ queryDialogParam.SetContentCba( CPhoneMainResourceResolver::Instance()->
+ ResolveResourceID( EPhoneVoIPNewCallQueryNotEmptySoftkeys ) );
+
+ queryDialogParam.SetDataText( &ptr );
+ queryDialogParam.SetSendKeyEnabled( ETrue );
+
+ // Display dialog
+ iViewCommandHandle.ExecuteCommandL(
+ EPhoneViewShowQuery, &queryDialogParam );
+
+ CleanupStack::PopAndDestroy( text );
+ }
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::DoNewCallL
+// ---------------------------------------------------------------------------
+//
+void CPhoneNewCallCmdHandler::DoNewCallL()
+ {
+ __LOGMETHODSTARTEND( PhoneUIVoIPExtension,
+ "CPhoneNewCallCmdHandler::DoNewCallL" )
+
+ // First get the string from dialog
+ TPhoneCmdParamString string;
+ HBufC* content = HBufC::NewLC( KPEPhoneNumberMaxLength );
+ TPtr ptr( content->Des() );
+ string.SetString( &ptr );
+
+ iViewCommandHandle.ExecuteCommandL(
+ EPhoneViewGetTextQueryContent, &string );
+
+ // Dial new voip call
+ StateUtils().SelectServiceAndDialL( ptr );
+
+ CleanupStack::PopAndDestroy( content );
+ }
+
+
+// ---------------------------------------------------------------------------
+// CPhoneNewCallCmdHandler::OpenSingleItemContactFetchL
+// ---------------------------------------------------------------------------
+//
+void CPhoneNewCallCmdHandler::OpenSingleItemContactFetchL(
+ TInt aFetchType )
+ {
+ __LOGMETHODSTARTEND( PhoneUIVoIPExtension,
+ "CPhoneNewCallCmdHandler::OpenSingleItemContactFetchL" )
+
+ TPhoneCmdParamInteger integerParam;
+ integerParam.SetInteger( aFetchType );
+
+ iViewCommandHandle.HandleCommandL(
+ EPhoneViewOpenSingleItemFetchDialog,
+ &integerParam );
+ }
+
+
+// -----------------------------------------------------------
+// CPhoneNewCallCmdHandler::StateUtils
+// -----------------------------------------------------------
+//
+CPhoneStateUtilsVoip& CPhoneNewCallCmdHandler::StateUtils()
+ {
+ return static_cast<CPhoneStateMachineVoIP&>(
+ iStateMachine ).StateUtils();
+ }
+
+// End of File