diff -r ebdbd102c78a -r 2eacb6118286 phoneapp/phoneuistates/src/cphonealerting.cpp --- a/phoneapp/phoneuistates/src/cphonealerting.cpp Fri May 14 15:51:57 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,383 +0,0 @@ -/* -* Copyright (c) 2005-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: Implementation of CPhoneAlerting class. -* -*/ - - -// INCLUDES -#include -#include -#include -#include -#include "cphonealerting.h" -#include "mphonestatemachine.h" -#include "tphonecmdparamboolean.h" -#include "tphonecmdparaminteger.h" -#include "tphonecmdparamcallstatedata.h" -#include "phoneviewcommanddefinitions.h" -#include "phoneui.hrh" -#include "cphonemainresourceresolver.h" -#include "phonerssbase.h" -#include "phonestatedefinitionsgsm.h" -#include "phonelogger.h" -#include "phoneconstants.h" -#include "cphonemediatorfactory.h" -#include "cphonemediatorsender.h" - - -// ================= MEMBER FUNCTIONS ======================= - -// C++ default constructor can NOT contain any code, that -// might leave. -// -EXPORT_C CPhoneAlerting::CPhoneAlerting( - MPhoneStateMachine* aStateMachine, - MPhoneViewCommandHandle* aViewCommandHandle, - MPhoneCustomization* aPhoneCustomization ) : - CPhoneGsmInCall( aStateMachine, aViewCommandHandle, aPhoneCustomization ), - iIncomingCallId( KErrNotFound ) - { - } - -// ----------------------------------------------------------- -// CPhoneAlerting::~CPhoneAlerting() -// Destructor -// (other items were commented in a header). -// ----------------------------------------------------------- -// -EXPORT_C CPhoneAlerting::~CPhoneAlerting() - { - } - -// ----------------------------------------------------------- -// CPhoneAlerting::ConstructL() -// Constructor -// (other items were commented in a header). -// ----------------------------------------------------------- -// -EXPORT_C void CPhoneAlerting::ConstructL() - { - CPhoneGsmInCall::ConstructL(); - } - -// ----------------------------------------------------------- -// CPhoneAlerting::NewL() -// Constructor -// (other items were commented in a header). -// ----------------------------------------------------------- -// -CPhoneAlerting* CPhoneAlerting::NewL( - MPhoneStateMachine* aStateMachine, - MPhoneViewCommandHandle* aViewCommandHandle, - MPhoneCustomization* aPhoneCustomization ) - { - CPhoneAlerting* self = new( ELeave ) CPhoneAlerting( - aStateMachine, aViewCommandHandle, aPhoneCustomization ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// -------------------------------------------------------------- -// CPhoneAlerting::HandleKeyMessageL -// -------------------------------------------------------------- -// -EXPORT_C void CPhoneAlerting::HandleKeyMessageL( - TPhoneKeyEventMessages aMessage, - TKeyCode aCode ) - { - __LOGMETHODSTARTEND( EPhoneUIStates, - "CPhoneAlerting::HandleKeyMessageL()"); - switch ( aCode ) - { - // send-key - case EKeyYes: - if ( IsNumberEntryUsedL() ) - { - // send a manual control sequence - CallFromNumberEntryL(); - } - else - { - // Show not allowed note - SendGlobalErrorNoteL( - EPhoneNoteTextNotAllowed ); - } - break; - - // end-key - case EKeyNo: - // handle long press - if ( aMessage == EPhoneKeyLongPress ) - { - // Close all connections - iStateMachine->SendPhoneEngineMessage( - MPEPhoneModel::EPEMessageTerminateAllConnections ); - - if ( IsNumberEntryUsedL() ) - { - BeginTransEffectLC( ENumberEntryClose ); - // Remove number entry from screen - iViewCommandHandle->ExecuteCommandL( - EPhoneViewRemoveNumberEntry ); - EndTransEffect(); - // Do state-specific operation when number entry is cleared - HandleNumberEntryClearedL(); - } - if ( !TopAppIsDisplayedL() ) - { - // Bring app to foreground - TPhoneCmdParamInteger uidParam; - uidParam.SetInteger( KUidPhoneApplication.iUid ); - iViewCommandHandle->ExecuteCommandL( - EPhoneViewBringAppToForeground, &uidParam ); - } - } - else - { - // handle end key - DisconnectOutgoingCallL(); - } - break; - - default: - // do base operation - CPhoneGsmInCall::HandleKeyMessageL( aMessage, aCode ); - break; - } - } - -// ----------------------------------------------------------- -// CPhoneAlerting::HandlePhoneEngineMessageL -// ----------------------------------------------------------- -// -EXPORT_C void CPhoneAlerting::HandlePhoneEngineMessageL( - const TInt aMessage, - TInt aCallId ) - { - __LOGMETHODSTARTEND( EPhoneUIStates, - "CPhoneAlerting::HandlePhoneEngineMessageL()"); - - switch ( aMessage ) - { - case MEngineMonitor::EPEMessageConnected: - HandleConnectedL( aCallId ); - break; - - case MEngineMonitor::EPEMessageDisconnecting: - HandleDisconnectingL( aCallId ); - break; - - case MEngineMonitor::EPEMessageRemoteTerminated: - iViewCommandHandle->ExecuteCommandL( - EPhoneViewHideNaviPaneAudioVolume ); - CPhoneGsmInCall::HandlePhoneEngineMessageL( aMessage, aCallId ); - break; - - case MEngineMonitor::EPEMessageIncoming: - { - // If incoming message is received in alerting state, teardown of - // alerting call must be ongoing. Handling of the incoming call is - // buffered until first call teardown is completed. - iIncomingCallId = aCallId; - } - break; - - case MEngineMonitor::EPEMessageIdle: - { - if ( KErrNotFound < iIncomingCallId ) - { - TInt incomingCallId = iIncomingCallId; - iIncomingCallId = KErrNotFound; - - if ( aCallId != incomingCallId ) - { - CPhoneGsmInCall::HandlePhoneEngineMessageL( - aMessage, aCallId ); - - // Simulate incoming event which was received while - // teardown of first call was ongoing. - iStateMachine->State()->HandlePhoneEngineMessageL( - MEngineMonitor::EPEMessageIncoming, incomingCallId ); - } - - return; - } - } - break; - - default: - break; - } - - CPhoneGsmInCall::HandlePhoneEngineMessageL( aMessage, aCallId ); - } - -// ----------------------------------------------------------- -// CPhoneAlerting::HandleConnectedL -// ----------------------------------------------------------- -// -EXPORT_C void CPhoneAlerting::HandleConnectedL( TInt aCallId ) - { - __LOGMETHODSTARTEND( EPhoneUIStates, - "CPhoneAlerting::HandleConnectedL()"); - // Keep Phone in the foreground - TPhoneCmdParamBoolean booleanParam; - booleanParam.SetBoolean( EFalse ); - iViewCommandHandle->ExecuteCommandL( - EPhoneViewSetNeedToSendToBackgroundStatus, &booleanParam ); - - // Close menu bar, if it is displayed - iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); - - BeginUiUpdateLC(); - - // Update the single call - UpdateSingleActiveCallL( aCallId ); - - SetTouchPaneButtons( EPhoneIncallButtons ); - - SetToolbarDimming( EFalse ); - - EndUiUpdate(); - - HandleColpNoteL( aCallId ); - - // Go to single state - UpdateCbaL( EPhoneCallHandlingInCallCBA ); - iStateMachine->ChangeState( EPhoneStateSingle ); - } - -// ----------------------------------------------------------- -// CPhoneAlerting::OpenMenuBarL -// ----------------------------------------------------------- -// -EXPORT_C void CPhoneAlerting::OpenMenuBarL() - { - __LOGMETHODSTARTEND( EPhoneUIStates, - "CPhoneAlerting::OpenMenuBarL()"); - TInt resourceId; - - if ( iOnScreenDialer && IsDTMFEditorVisibleL() ) - { - resourceId = EPhoneDtmfDialerMenubar; - } - else if ( IsNumberEntryVisibleL() ) - { - resourceId = EPhoneAlertingCallMenubarWithNumberEntry; - } - // Use different resources for alerting data, video and cs call - else if( IsVideoCallAlertingL() ) - { - resourceId = EPhoneAlertingVideoCallMenubar; - } - else - { - resourceId = EPhoneAlertingCallMenubar; - } - - TPhoneCmdParamInteger integerParam; - integerParam.SetInteger( - CPhoneMainResourceResolver::Instance()-> - ResolveResourceID( resourceId ) ); - iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, - &integerParam ); - } - -// ----------------------------------------------------------- -// CPhoneAlerting::HandleCommandL -// ----------------------------------------------------------- -// -EXPORT_C TBool CPhoneAlerting::HandleCommandL( TInt aCommand ) - { - __LOGMETHODSTARTEND( EPhoneUIStates, - "CPhoneAlerting::HandleCommandL()" ); - TBool commandStatus = ETrue; - - switch( aCommand ) - { - case EPhoneInCallCmdHelp: - { - TPtrC contextName; - if ( IsVideoCallAlertingL() ) - { - contextName.Set( KINCAL_HLP_VIDEOCALL() ); - } - else - { - contextName.Set( KINCAL_HLP_CALL_HANDLING() ); - } - iViewCommandHandle->ExecuteCommandL( - EPhoneViewLaunchHelpApplication, 0, contextName ); - } - break; - default: - commandStatus = CPhoneGsmInCall::HandleCommandL( aCommand ); - break; - } - return commandStatus; - } - -// ----------------------------------------------------------- -// CPhoneAlerting::IsVideoCallAlertingL -// ----------------------------------------------------------- -// -TBool CPhoneAlerting::IsVideoCallAlertingL() - { - __LOGMETHODSTARTEND( EPhoneUIStates, - "CPhoneAlerting::IsVideoCallAlerting()" ); - TBool retVal = EFalse; - // Fetch active call's id from view - TPhoneCmdParamCallStateData callStateData; - callStateData.SetCallState( EPEStateConnecting ); - iViewCommandHandle->HandleCommandL( - EPhoneViewGetCallIdByState, &callStateData ); - - if ( callStateData.CallId() > KErrNotFound ) - { - retVal = IsVideoCall( callStateData.CallId() ); - } - - return retVal; - } - -// ----------------------------------------------------------- -// CPhoneAlerting::CheckIfShowTerminationNote -// ----------------------------------------------------------- -// -EXPORT_C TBool CPhoneAlerting::CheckIfShowCallTerminationNote( ) - { - // Alerting state does not need call termination since - // call has not begun. - return EFalse; - } - -// ----------------------------------------------------------- -// CPhoneAlerting::HandleDisconnectingL -// ----------------------------------------------------------- -// -EXPORT_C void CPhoneAlerting::HandleDisconnectingL( TInt aCallId ) - { - __LOGMETHODSTARTEND( EPhoneUIStates, - "CPhoneAlerting::HandleDisconnectingL()" ); - CPhoneGsmInCall::HandleDisconnectingL( aCallId ); - } - - - -// End of File