--- a/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp Tue Aug 31 15:14:29 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestatecallsetup.cpp Wed Sep 01 12:30:10 2010 +0100
@@ -18,7 +18,8 @@
// INCLUDES
#include <featmgr.h>
-#include <StringLoader.h>
+#include <StringLoader.h>
+#include <ScreensaverInternalPSKeys.h>
#include <AknUtils.h>
#include <mpeengineinfo.h>
#include <mpeclientinformation.h>
@@ -82,8 +83,21 @@
Panic( EPhoneCtrlInvariant ) );
CPhoneState::BaseConstructL();
+
+ // Enable the volume display
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNaviPaneAudioVolume );
+ HandleAudioOutputChangedL();
- HandleAudioOutputChangedL();
+ TPhoneCmdParamCallStateData callStateData;
+ callStateData.SetCallState( EPEStateDialing );
+ iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, &callStateData );
+ if ( callStateData.CallId() > KErrNotFound && IsVideoCall( callStateData.CallId() ) )
+ {
+ CPhonePubSubProxy::Instance()->ChangePropertyValue(
+ KPSUidScreenSaver,
+ KScreenSaverAllowScreenSaver,
+ EPhoneScreensaverNotAllowed );
+ }
}
// -----------------------------------------------------------
@@ -119,10 +133,6 @@
switch( aCommand )
{
- case EPhoneInCallCmdDialer:
- iViewCommandHandle->ExecuteCommandL( EPhoneViewOpenDialer );
- break;
-
case EPhoneNumberAcqCmdAddToContacts:
{
// If call setup is ongoing then add to contacts query should
@@ -155,24 +165,34 @@
}
iDtmfWaitCharTimer->ButtonPressedL();
break;
-
+
+ case EPhoneDialerCmdHelpDtmf:
+ {
+ if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) )
+ {
+ TPtrC contextName( KDATA_DIALER_HLP_SEND_DTMF );
+ iViewCommandHandle->ExecuteCommandL(
+ EPhoneViewLaunchHelpApplication,
+ 0,
+ contextName );
+ }
+ }
+ break;
case EPhoneCmdOptions:
+ OpenMenuBarL();
break;
case EPhoneInCallCmdDtmfManualQuery:
+ if ( iOnScreenDialer )
+ {
+ ShowDtmfDialerL();
+ }
break;
case EPhoneDtmfDialerExit: // fall through
case EPhoneDtmfDialerCancel:
- break;
-
- case EPhoneInCallCmdMute: // fall through
- case EPhoneInCallCmdUnmute:
- iStateMachine->PhoneEngineInfo()->SetAudioMuteCommand(
- ( aCommand == EPhoneInCallCmdMute ) );
- iStateMachine->SendPhoneEngineMessage(
- MPEPhoneModel::EPEMessageSetAudioMute );
+ CloseDTMFEditorL();
break;
default:
@@ -183,6 +203,30 @@
return commandStatus;
}
+// -----------------------------------------------------------
+// CPhoneStateCallSetup::OpenMenuBarL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneStateCallSetup::OpenMenuBarL()
+ {
+ __LOGMETHODSTARTEND(EPhoneControl,
+ "CPhoneStateCallSetup::OpenMenuBarL()" );
+
+ if ( iOnScreenDialer )
+ {
+ if ( IsDTMFEditorVisibleL() && IsNumberEntryVisibleL() )
+ {
+ TInt resourceId = EPhoneDtmfDialerMenubar;
+
+ TPhoneCmdParamInteger integerParam;
+ integerParam.SetInteger(
+ CPhoneMainResourceResolver::Instance()->
+ ResolveResourceID( resourceId ) );
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen,
+ &integerParam );
+ }
+ }
+ }
// -----------------------------------------------------------
// CPhoneStateCallSetup::HandleNumberEntryClearedL()
@@ -198,6 +242,18 @@
}
// -----------------------------------------------------------
+// CPhoneStateCallSetup::HandleCreateNumberEntryL
+// -----------------------------------------------------------
+//
+EXPORT_C void CPhoneStateCallSetup::HandleCreateNumberEntryL(
+ const TKeyEvent& /*aKeyEvent*/,
+ TEventCode /*aEventCode*/)
+ {
+ __LOGMETHODSTARTEND(EPhoneControl,
+ "CPhoneStateCallSetup::HandleCreateNumberEntryL()" );
+ }
+
+// -----------------------------------------------------------
// CPhoneStateCallSetup::UpdateInCallCbaL
// -----------------------------------------------------------
//
@@ -214,7 +270,14 @@
EXPORT_C void CPhoneStateCallSetup::UpdateCbaL( TInt aResource )
{
__LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::UpdateCbaL() ");
- iCbaManager->UpdateCbaL( aResource );
+ if ( iOnScreenDialer && IsDTMFEditorVisibleL() )
+ {
+ iCbaManager->SetCbaL( EPhoneDtmfDialerCBA );
+ }
+ else
+ {
+ iCbaManager->UpdateCbaL( aResource );
+ }
}
// -----------------------------------------------------------
@@ -310,8 +373,15 @@
// Remove number entry if long press
if ( IsNumberEntryUsedL() )
{
- iViewCommandHandle->ExecuteCommandL(
- EPhoneViewRemoveNumberEntry );
+ if ( iOnScreenDialer && IsDTMFEditorVisibleL() )
+ {
+ CloseDTMFEditorL();
+ }
+ else
+ {
+ iViewCommandHandle->ExecuteCommandL(
+ EPhoneViewRemoveNumberEntry );
+ }
}
}
else
@@ -334,7 +404,7 @@
else // aMessage == EPhoneKeyLongPress
{
// Display call in progress information note
- CPhoneState::SendGlobalInfoNoteL( EPhoneCallInProgress, ETrue );
+ CPhoneState::SendGlobalInfoNoteL( EPhoneCallInProgress );
}
break;
@@ -500,21 +570,33 @@
//
void CPhoneStateCallSetup::HandleConnectedL( TInt aCallId )
{
- __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleConnectedL()");
- // Keep Phone in the foreground
- TPhoneCmdParamBoolean booleanParam;
- booleanParam.SetBoolean( EFalse );
- iViewCommandHandle->ExecuteCommandL(
- EPhoneViewSetNeedToSendToBackgroundStatus, &booleanParam );
+ __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleConnectedL()");
+
+ // Close menu bar, if it is displayed
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
BeginUiUpdateLC();
-
+
+ // Remove the number entry if it isn't DTMF dialer
+ if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() )
+ {
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
+ }
+
// Update the single call
CPhoneState::UpdateSingleActiveCallL( aCallId );
-
+
+ // Complete sat request
+ if ( iStateMachine->PhoneEngineInfo()->CallOrigin( aCallId ) == EPECallOriginSAT )
+ {
+ CompleteSatRequestL( aCallId );
+ }
+
// Update touch buttons
SetTouchPaneButtons( EPhoneIncallButtons );
+ SetToolbarDimming( EFalse );
+
EndUiUpdate();
// Go to single state
@@ -530,8 +612,16 @@
void CPhoneStateCallSetup::HandleIdleL( TInt aCallId )
{
__LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleIdleL()");
-
- BeginUiUpdateLC ();
+ if ( !NeedToReturnToForegroundAppL() &&
+ IsNumberEntryUsedL() )
+ {
+ BeginTransEffectLC( ECallUiDisappear );
+ }
+ else
+ {
+ BeginTransEffectLC( ENumberEntryOpen );
+ }
+ BeginUiUpdateLC();
// Disable the volume display
iViewCommandHandle->ExecuteCommandL( EPhoneViewHideNaviPaneAudioVolume );
@@ -544,10 +634,23 @@
if ( IsNumberEntryUsedL() )
{
- // Show the number entry if it exists
- SetNumberEntryVisibilityL(ETrue);
+ if ( NeedToReturnToForegroundAppL() )
+ {
+ // Return phone to the background if send to background is needed.
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
+
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
+
+ // Set Number Entry CBA
+ iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
+ }
+ else
+ {
+ // Show the number entry if it exists
+ SetNumberEntryVisibilityL(ETrue);
+ }
}
- else if ( NeedToSendToBackgroundL() )
+ else if ( NeedToReturnToForegroundAppL() )
{
__PHONELOG( EBasic,EPhoneControl,"CPhoneStateCallSetup::elseif1");
// Continue displaying current app but set up the
@@ -562,7 +665,7 @@
}
EndUiUpdate();
- // Go to idle state
+ EndTransEffect();
// No need update cba
iStateMachine->ChangeState( EPhoneStateIdle );
}
@@ -571,17 +674,17 @@
// CPhoneStateCallSetup::HandleRemoteTerminatedL
// -----------------------------------------------------------------------------
//
-void CPhoneStateCallSetup::HandleRemoteTerminatedL( TInt /*aCallId*/ )
+void CPhoneStateCallSetup::HandleRemoteTerminatedL( TInt aCallId )
{
__LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleRemoteTerminatedL( ) ");
// Remove call header
- /*iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
TPhoneCmdParamBoolean globalNotifierParam;
globalNotifierParam.SetBoolean( EFalse );
iViewCommandHandle->ExecuteCommandL(
- EPhoneViewSetGlobalNotifiersDisabled, &globalNotifierParam );*/
+ EPhoneViewSetGlobalNotifiersDisabled, &globalNotifierParam );
// Video call not possible note is shown by
// CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL method,
@@ -595,11 +698,11 @@
void CPhoneStateCallSetup::HandleAudioOutputChangedL()
{
__LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleAudioOutputChangedL( ) ");
-
- CPhoneState::HandleAudioOutputChangedL();
+
// Update the call setup CBA
UpdateInCallCbaL();
- SetTouchPaneButtons(0);
+
+ CPhoneState::HandleAudioOutputChangedL();
}
// -----------------------------------------------------------
@@ -619,12 +722,19 @@
TPtr ptr( content->Des() );
dtmfSequence.SetString( &ptr );
- if ( iOnScreenDialer )
+ if ( iOnScreenDialer && IsDTMFEditorVisibleL() )
{
iViewCommandHandle->ExecuteCommand(
EPhoneViewGetNumberFromEntry,
&dtmfSequence );
- }
+
+ CloseDTMFEditorL();
+ }
+ else
+ {
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewGetTextQueryContent,
+ &dtmfSequence );
+ }
// Send the DTMF
if ( ptr.Length() )