--- a/phoneapp/phoneuicontrol/src/cphonestate.cpp Wed Apr 14 15:56:42 2010 +0300
+++ b/phoneapp/phoneuicontrol/src/cphonestate.cpp Tue Apr 27 16:37:10 2010 +0300
@@ -1068,10 +1068,10 @@
if ( numberEntryUsed && ( aKeyEvent.iRepeats == 0 ||
aKeyEvent.iScanCode == EStdKeyBackspace ||
- aKeyEvent.iScanCode ==EStdKeyLeftArrow ||
- aKeyEvent.iScanCode == EStdKeyUpArrow ||
- aKeyEvent.iScanCode == EStdKeyDownArrow ||
- aKeyEvent.iScanCode ==EStdKeyRightArrow ))
+ aKeyEvent.iScanCode == EStdKeyLeftArrow ||
+ aKeyEvent.iScanCode == EStdKeyUpArrow ||
+ aKeyEvent.iScanCode == EStdKeyDownArrow ||
+ aKeyEvent.iScanCode == EStdKeyRightArrow ))
{
// Number entry exists but may be hidden
KeyEventForExistingNumberEntryL( aKeyEvent, aEventCode );
@@ -1529,12 +1529,10 @@
// this should be bypasses?
case EPhoneDialerCallHandling:
case EPhoneCmdBack:
- BeginTransEffectLC( ENumberEntryClose );
// Remove number entry from screen
iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
// Do state-specific behaviour if number entry is cleared
HandleNumberEntryClearedL();
- EndTransEffect();
break;
case EPhoneDialerCmdTouchInput:
@@ -1644,16 +1642,6 @@
}
break;
- case EPhoneDialerCmdContacts:
- {
- // Launch Phonebook application
- TPhoneCmdParamAppInfo appInfoParam;
- appInfoParam.SetAppUid( KPhoneUidAppPhonebook );
- iViewCommandHandle->ExecuteCommandL(
- EPhoneViewActivateApp, &appInfoParam );
- }
- break;
-
case EPhoneViewYesSingleItemFetch:
{
if ( IsOnScreenDialerSupported() )
@@ -2073,6 +2061,13 @@
// Set Idle app as the top app
iViewCommandHandle->ExecuteCommandL( EPhoneViewSetIdleTopApplication );
+ // Go to Homescreen when application, which was open when answered incoming call,
+ // is closed during active call
+ if( TopAppIsDisplayedL() )
+ {
+ DisplayIdleScreenL();
+ }
+
// Set Empty CBA
iCbaManager->SetCbaL( EPhoneEmptyCBA );
}
@@ -2137,12 +2132,8 @@
iStateMachine->PhoneEngineInfo()->SetPhoneNumber( *phoneNumber );
if ( phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength )
- {
- // Closing effect is shown when dialer exist.
- BeginTransEffectLC( ENumberEntryClose );
+ {
iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
- EndTransEffect();
-
HandleNumberEntryClearedL();
}
@@ -3878,25 +3869,31 @@
EXPORT_C void CPhoneState::BeginTransEffectLC( TStateTransEffectType aType )
{
__LOGMETHODSTARTEND( EPhoneControl, "CPhoneState::BeginTransEffectLC( ) ");
- TPhoneCmdParamTransEffect effectParam;
-
- switch ( aType )
+
+ // Check if this particular effect can be used in the current state.
+ if ( CanTransEffectTypeBeUsed( aType ) )
{
- case ENumberEntryOpen:
- effectParam.SetType( EPhoneTransEffectDialerOpen );
- break;
- case ENumberEntryClose:
- effectParam.SetType( EPhoneTransEffectDialerClose );
- break;
- case ENumberEntryCreate:
- effectParam.SetType( EPhoneTransEffectDialerCreate );
- break;
- default:
- effectParam.SetType( EPhoneTransEffectNone );
+ TPhoneCmdParamTransEffect effectParam;
+ switch ( aType )
+ {
+ case ENumberEntryOpen:
+ effectParam.SetType( EPhoneTransEffectDialerOpen );
+ break;
+ case ENumberEntryClose:
+ effectParam.SetType( EPhoneTransEffectDialerClose );
+ break;
+ case ENumberEntryCreate:
+ effectParam.SetType( EPhoneTransEffectDialerCreate );
+ break;
+ default:
+ effectParam.SetType( EPhoneTransEffectNone );
+ }
+
+ iViewCommandHandle->ExecuteCommand( EPhoneViewBeginTransEffect,
+ &effectParam );
}
- iViewCommandHandle->ExecuteCommand( EPhoneViewBeginTransEffect, &effectParam );
-
+ // Always put the cleanup item into stack as expected by the caller.
TCleanupItem operation( EffectCleanup, this );
CleanupStack::PushL( operation );
}
@@ -3974,7 +3971,7 @@
{
TPhoneCmdParamTransEffect effectParam;
effectParam.SetType( EPhoneTransEffectStop );
-
+ // won't do anything if effect wasn't started
static_cast<CPhoneState*>( aThis )->iViewCommandHandle->ExecuteCommand(
EPhoneViewEndTransEffect, &effectParam );
}
@@ -4006,10 +4003,7 @@
iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfDialerViewVisible,
&booleanParam );
- // Closing effect is shown when DTMF dialer exist.
- BeginTransEffectLC( ENumberEntryClose );
iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
- EndTransEffect();
}
else // Non-Touch
{
@@ -4345,12 +4339,8 @@
// Set dialer back to default mode.
iViewCommandHandle->HandleCommandL( EPhoneViewHideCustomizedDialer );
- // Closing effect is shown when customized dialer exist.
- BeginTransEffectLC( ENumberEntryClose );
-
iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
- EndTransEffect();
// Do state-specific behaviour if number entry is cleared
HandleNumberEntryClearedL();
}
@@ -4402,8 +4392,6 @@
iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfDialerViewVisible,
&booleanParam );
- BeginTransEffectLC( ENumberEntryCreate );
-
if ( IsNumberEntryUsedL() )
{
// Store the number entry content to cache
@@ -4421,8 +4409,6 @@
NumberEntryManagerL()->CreateNumberEntryL();
}
- EndTransEffect();
-
// Update CBA
iCbaManager->UpdateInCallCbaL();
}
@@ -4668,6 +4654,16 @@
StartAlsLineChangeTimerL();
}
+// ---------------------------------------------------------
+// CPhoneState::CanTransEffectTypeBeUsed
+// ---------------------------------------------------------
+//
+EXPORT_C TBool CPhoneState::CanTransEffectTypeBeUsed( TStateTransEffectType /*aType*/ )
+ {
+ // State dependant so return EFalse by default.
+ return EFalse;
+ }
+
// -----------------------------------------------------------
// CPhoneState::NumberEntryClearL
// -----------------------------------------------------------