--- a/phoneapp/phoneuistates/src/cphonetwosingles.cpp Fri May 14 15:51:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,493 +0,0 @@
-/*
-* Copyright (c) 2005 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 CPhoneTwoSingles class.
-*
-*/
-
-
-// INCLUDES
-#include <eikmenub.h>
-#include <eikenv.h>
-#include <StringLoader.h>
-#include <pevirtualengine.h>
-#include <mpeengineinfo.h>
-#include <cpephonemodelif.h>
-#include <featmgr.h>
-#include "cphonetwosingles.h"
-#include "mphonestatemachine.h"
-#include "phoneviewcommanddefinitions.h"
-#include "phoneui.hrh"
-#include "cphonemainresourceresolver.h"
-#include "phonerssbase.h"
-#include "phonestatedefinitions.h"
-#include "tphonecmdparaminteger.h"
-#include "tphonecmdparamappinfo.h"
-#include "tphonecmdparamboolean.h"
-#include "tphonecmdparamstring.h"
-#include "tphonecmdparamcallheaderdata.h"
-#include "tphonecmdparamcallstatedata.h"
-#include "phonestatedefinitionsgsm.h"
-#include "phonelogger.h"
-
-// ================= MEMBER FUNCTIONS =======================
-
-// C++ default constructor can NOT contain any code, that
-// might leave.
-//
-EXPORT_C CPhoneTwoSingles::CPhoneTwoSingles(
- MPhoneStateMachine* aStateMachine,
- MPhoneViewCommandHandle* aViewCommandHandle,
- MPhoneCustomization* aPhoneCustomization ) :
- CPhoneGsmInCall( aStateMachine, aViewCommandHandle, aPhoneCustomization )
- {
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::~CPhoneTwoSingles()
-// Destructor
-// (other items were commented in a header).
-// -----------------------------------------------------------
-//
-EXPORT_C CPhoneTwoSingles::~CPhoneTwoSingles()
- {
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::ConstructL()
-// Constructor
-// (other items were commented in a header).
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneTwoSingles::ConstructL()
- {
- CPhoneGsmInCall::ConstructL();
-
- // Re-enable global notes
- TPhoneCmdParamBoolean globalNotifierParam;
- globalNotifierParam.SetBoolean( EFalse );
- iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
- &globalNotifierParam );
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::NewL()
-// Constructor
-// (other items were commented in a header).
-// -----------------------------------------------------------
-//
-CPhoneTwoSingles* CPhoneTwoSingles::NewL(
- MPhoneStateMachine* aStateMachine,
- MPhoneViewCommandHandle* aViewCommandHandle,
- MPhoneCustomization* aPhoneCustomization )
- {
- CPhoneTwoSingles* self = new( ELeave ) CPhoneTwoSingles(
- aStateMachine, aViewCommandHandle, aPhoneCustomization );
-
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
-
- return self;
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::HandlePhoneEngineMessageL
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneTwoSingles::HandlePhoneEngineMessageL(
- const TInt aMessage,
- TInt aCallId )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandlePhoneEngineMessageL()");
- switch ( aMessage )
- {
- case MEngineMonitor::EPEMessageIdle:
- HandleIdleL( aCallId );
- break;
-
- case MEngineMonitor::EPEMessageConnected:
- HandleConnectedL( aCallId );
- break;
-
- case MEngineMonitor::EPEMessageHeld:
- HandleHeldL( aCallId );
- break;
-
- case MEngineMonitor::EPEMessageConnectedConference:
- HandleConnectedConferenceL( aCallId );
- break;
-
- case MEngineMonitor::EPEMessageIncoming:
- HandleIncomingL( aCallId );
- break;
-
- default:
- CPhoneGsmInCall::HandlePhoneEngineMessageL( aMessage, aCallId );
- break;
- }
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::OpenMenuBarL
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneTwoSingles::OpenMenuBarL()
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::OpenMenuBarL()");
- TInt resourceId;
-
- if ( iOnScreenDialer && IsDTMFEditorVisibleL() )
- {
- resourceId = EPhoneDtmfDialerMenubar;
- }
- if ( iOnScreenDialer && IsCustomizedDialerVisibleL() )
- {
- resourceId = CustomizedDialerMenuResourceIdL();
- }
- else if ( IsNumberEntryVisibleL() )
- {
- resourceId = EPhoneCallActiveAndHeldMenubarWithNumberEntry;
- }
- else
- {
- resourceId = EPhoneCallActiveAndHeldMenubar;
- }
-
- TPhoneCmdParamInteger integerParam;
- integerParam.SetInteger(
- CPhoneMainResourceResolver::Instance()->
- ResolveResourceID( resourceId ) );
-
- // Set Hold flag to view
- TPhoneCmdParamBoolean holdFlag;
- holdFlag.SetBoolean( EFalse );
- iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
-
- iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen,
- &integerParam );
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles:HandleIdleL
-// -----------------------------------------------------------
-//
-void CPhoneTwoSingles::HandleIdleL( TInt aCallId )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandleIdleL()");
- BeginUiUpdateLC();
-
- // Remove call
- iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
-
- TPhoneCmdParamInteger activeCallCount;
- iViewCommandHandle->ExecuteCommandL(
- EPhoneViewGetCountOfActiveCalls, &activeCallCount );
-
- switch( activeCallCount.Integer() )
- {
- case EOneActiveCall:
- {
- if ( IsNumberEntryUsedL() )
- {
- // Show the number entry if it exists
- SetNumberEntryVisibilityL(ETrue);
- }
- else
- {
- // Close menu bar if number entry is not open.
- iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
- // Set incall CBAs
- UpdateCbaL( EPhoneCallHandlingInCallCBA );
- }
-
- TPhoneCmdParamCallStateData callStateData;
- callStateData.SetCallState( EPEStateHeld );
- iViewCommandHandle->HandleCommandL(
- EPhoneViewGetCallIdByState, &callStateData );
- TInt holdCallId = callStateData.CallId();
-
- // Set Hold flag to view
- TPhoneCmdParamBoolean holdFlag;
-
- if ( holdCallId < 0 )
- {
- holdFlag.SetBoolean( EFalse );
- }
- else
- {
- holdFlag.SetBoolean( ETrue );
- // Close the dtmf query if it exists
- CloseDtmfQueryL();
- }
-
- iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
-
- SetTouchPaneButtons( EPhoneIncallButtons );
- // Go to single state
- // CBA updates in above if-else conditions
- iStateMachine->ChangeState( EPhoneStateSingle );
- }
-
- default:
- break;
- }
- EndUiUpdate();
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::HandleKeyMessageL
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneTwoSingles::HandleKeyMessageL(
- TPhoneKeyEventMessages aMessage,
- TKeyCode aCode )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandleKeyMessageL()");
- switch ( aCode )
- {
- // send-key
- case EKeyYes:
- {
- // Check is number entry open
- if ( !IsNumberEntryVisibleL() )
- {
- iStateMachine->SendPhoneEngineMessage(
- CPEPhoneModelIF::EPEMessageSwap );
- }
- else
- {
- CallFromNumberEntryL();
- }
- break;
- }
-
- default:
- CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode );
- break;
- }
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::HandleConnectedL
-// -----------------------------------------------------------
-//
-void CPhoneTwoSingles::HandleConnectedL( TInt aCallId )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandleConnectedL()");
- // Show bubble
- TPhoneCmdParamCallHeaderData callHeaderParam;
- callHeaderParam.SetCallState( EPEStateConnected );
- iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId,
- &callHeaderParam );
-
- SetTouchPaneButtons( EPhoneIncallButtons );
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::HandleHeldL
-// -----------------------------------------------------------
-//
-void CPhoneTwoSingles::HandleHeldL( TInt aCallId )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandleHeldL()");
- // Display hold bubble
- TPhoneCmdParamCallHeaderData callHeaderParam;
- callHeaderParam.SetCallState( EPEStateHeld );
-
- TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC );
- TInt callLabelId = CPhoneMainResourceResolver::Instance()->
- ResolveResourceID( EPhoneCallOnHold );
-
- StringLoader::Load(
- labelText,
- callLabelId,
- CCoeEnv::Static() );
- callHeaderParam.SetLabelText( labelText );
-
- iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId,
- &callHeaderParam );
-
- SetTouchPaneButtons( EPhoneIncallButtons );
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::HandleNumberEntryClearedL()
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneTwoSingles::HandleNumberEntryClearedL()
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandleNumberEntryClearedL()");
- UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::HandleConnectedConferenceL
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneTwoSingles::HandleConnectedConferenceL( TInt aCallId )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandleConnectedConferenceL()");
- // Update call state
- TPhoneCmdParamCallHeaderData callHeaderParam;
-
- TInt callLabelId;
- TBuf<KPhoneCallHeaderLabelMaxLength> conferenceText( KNullDesC );
- callLabelId = CPhoneMainResourceResolver::Instance()->
- ResolveResourceID( EPhoneCLIConferenceCall );
-
- StringLoader::Load(
- conferenceText,
- callLabelId,
- CCoeEnv::Static() );
- callHeaderParam.SetCLIText( conferenceText, TPhoneCmdParamCallHeaderData::ERight );
-
- callHeaderParam.SetCallState(EPEStateConnectedConference);
- BeginUiUpdateLC();
-
- callHeaderParam.SetCiphering(
- iStateMachine->PhoneEngineInfo()->IsSecureCall( aCallId ) );
-
- callHeaderParam.SetCipheringIndicatorAllowed(
- iStateMachine->PhoneEngineInfo()->SecureSpecified() );
-
- // Service identifier must be given so that service specific settings
- // can be taken into account at phoneuiview.
- callHeaderParam.SetServiceId(
- iStateMachine->PhoneEngineInfo()->ServiceId( aCallId ) );
-
- iViewCommandHandle->ExecuteCommandL( EPhoneViewCreateConference, aCallId,
- &callHeaderParam );
-
- // Set Hold flag to view
- TPhoneCmdParamBoolean holdFlag;
- holdFlag.SetBoolean( EFalse );
- iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
-
- SetTouchPaneButtons( EPhoneConferenceButtons );
- SetTouchPaneButtonEnabled( EPhoneInCallCmdPrivate );
- EndUiUpdate();
-
- UpdateCbaL( EPhoneCallHandlingInCallCBA );
-
- // Go to conference state
- // No need for CBA update
- iStateMachine->ChangeState( EPhoneStateConference );
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::HandleIncomingL
-// -----------------------------------------------------------
-//
-void CPhoneTwoSingles::HandleIncomingL( TInt aCallId )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::HandleIncomingL()");
-
- BeginUiUpdateLC();
-
- TPhoneCmdParamBoolean dialerParam;
- dialerParam.SetBoolean( ETrue );
-
- // Get allow waiting call header param value.
- AllowShowingOfWaitingCallHeaderL( dialerParam );
-
- // Close fast swap window if it's displayed
- CEikonEnv::Static()->DismissTaskList();
-
- // Display incoming call
- DisplayIncomingCallL( aCallId, dialerParam );
-
- // Set touch controls
- SetTouchPaneButtonDisabled( EPhoneCallComingCmdAnswer );
-
- // Check if HW Keys or Call UI should be disabled
- CheckDisableHWKeysAndCallUIL();
-
- SetTouchPaneButtons( EPhoneWaitingCallButtons );
-
- EndUiUpdate();
-
- // Go to incoming state
- iCbaManager->SetCbaL( EPhoneCallHandlingIncomingRejectCBA );
-
- iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::DisplayIncomingCallL
-// -----------------------------------------------------------
-//
-void CPhoneTwoSingles::DisplayIncomingCallL(
- TInt aCallId,
- const TPhoneCmdParamBoolean aCommandParam )
- {
- __LOGMETHODSTARTEND( EPhoneUIStates,
- "CPhoneTwoSingles::DisplayIncomingCallL()");
- // Close menu bar, if it is displayed
- iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
-
- // Cannot delete active note, e.g. New call query,
- // but show waiting note with or without caller name
- if ( IsAnyQueryActiveL() ||
- ( !aCommandParam.Boolean() && iOnScreenDialer ) )
- {
- CallWaitingNoteL( aCallId );
- }
- else
- {
- // Remove any phone dialogs if they are displayed
- iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
- }
-
- // Indicate that the Phone needs to be sent to the background if
- // an application other than the top application is in the foreground
- TPhoneCmdParamBoolean booleanParam;
- booleanParam.SetBoolean( !TopAppIsDisplayedL() );
- iViewCommandHandle->ExecuteCommandL(
- EPhoneViewSetNeedToSendToBackgroundStatus,
- &booleanParam );
-
- // Bring Phone app in the foreground
- TPhoneCmdParamInteger uidParam;
- uidParam.SetInteger( KUidPhoneApplication.iUid );
- iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
- &uidParam );
-
- // Set Phone as the top application
- iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
- &uidParam );
-
- CPhoneState::DisplayHeaderForCallComingInL( aCallId, ETrue ); //waiting call
- }
-
-// -----------------------------------------------------------
-// CPhoneTwoSingles::UpdateInCallCbaL
-// -----------------------------------------------------------
-//
-EXPORT_C void CPhoneTwoSingles::UpdateInCallCbaL()
- {
- __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneTwoSingles::UpdateInCallCbaL() ");
- UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
- }
-
-// End of File