--- a/phoneapp/phoneuistates/src/cphoneincoming.cpp Tue Aug 31 15:14:29 2010 +0300
+++ b/phoneapp/phoneuistates/src/cphoneincoming.cpp Wed Sep 01 12:30:10 2010 +0100
@@ -18,7 +18,6 @@
// INCLUDES
#include <featmgr.h>
-#include <telephonyvariant.hrh>
#include "cphoneincoming.h"
#include "phonerssbase.h"
#include "phonelogger.h"
@@ -28,8 +27,7 @@
#include "tphonecmdparamboolean.h"
#include "phoneui.hrh"
#include "mphonestatemachine.h"
-#include "mphonestorage.h"
-#include "cphonecenrepproxy.h"
+#include "mphonesecuritymodeobserver.h"
#include "tphonecmdparamcallstatedata.h"
// ================= MEMBER FUNCTIONS =======================
@@ -119,12 +117,22 @@
break;
case MEngineMonitor::EPEMessageRemoteHeld:
- SendGlobalInfoNoteL( EPhoneInformationRemotePutOnHoldNote, ETrue );
+ SendGlobalInfoNoteL( EPhoneInformationRemotePutOnHoldNote );
break;
case MEngineMonitor::EPEMessageRemoteResumed:
- SendGlobalInfoNoteL( EPhoneInformationConnectedNote, ETrue );
+ SendGlobalInfoNoteL( EPhoneInformationConnectedNote );
break;
+
+ case MEngineMonitor::EPEMessageShowVersion:
+ {
+ if ( iStateMachine->SecurityMode()->IsSecurityMode() )
+ {
+ // Do nothing if security mode is enabled.
+ return;
+ }
+ }
+ // Fall through
// fall through.
case MEngineMonitor::EPEMessageIssuingSSRequest:
@@ -191,15 +199,24 @@
iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallIdByState, &callState );
TInt connectedCall = callState.CallId();
+ IsNumberEntryUsedL() ?
+ BeginTransEffectLC( ECallUiAppear ) :
+ BeginTransEffectLC( ENumberEntryOpen );
BeginUiUpdateLC();
+ // Hide the number entry if it exists
+ if ( IsNumberEntryUsedL() )
+ {
+ SetNumberEntryVisibilityL( EFalse );
+ }
+
TPhoneCmdParamBoolean dialerParam;
dialerParam.SetBoolean( ETrue );
AllowShowingOfWaitingCallHeaderL( dialerParam );
// Close fast swap window if it's displayed
- CEikonEnv::Static()->DismissTaskList();
+ EikonEnv()->DismissTaskList();
// If the 1st incoming call became Connected, this is waiting call
// If the 1st incoming call went just Idle, this is a normal call
@@ -217,39 +234,15 @@
dialerParam.SetBoolean( EFalse );
}
+ SetToolbarDimming( EFalse );
// Display incoming call
DisplayIncomingCallL( aCallId, dialerParam );
-
- SetTouchPaneButtons( EPhoneWaitingCallButtons );
- if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke )
- && !CPhoneCenRepProxy::Instance()->
- IsTelephonyFeatureSupported( KTelephonyLVFlagAllowUnlockOnIncoming )
- && ( IsKeyLockOn() || IsAutoLockOn() ) )
- {
- DisableCallUIL();
- }
- else
- {
- // if keys have been locked, disable keylock without information note
- if ( IsKeyLockOn() )
- {
- iViewCommandHandle->ExecuteCommandL( EPhoneViewDisableKeyLockWithoutNote );
- }
- }
-
- if( CPhoneCenRepProxy::Instance()->
- IsTelephonyFeatureSupported( KTelephonyLVFlagDisableCallControlHardKeysWhileLocked )
- && ( IsKeyLockOn() || IsAutoLockOn() ) )
- {
- DisableHWKeysL();
- }
-
EndUiUpdate();
+ EndTransEffect();
if ( connectedCall > KErrNotFound )
{
- // Go to incoming state
iCbaManager->UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
iStateMachine->ChangeState( EPhoneStateWaitingInSingle );
}
@@ -265,28 +258,23 @@
{
__LOGMETHODSTARTEND( EPhoneUIStates,
"CPhoneIncoming::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 ) )
+ // Remove any phone dialogs if they are displayed
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
+
+ // if keys have been locked, disable keylock without information note
+ if ( IsKeyLockOn() )
{
- CallWaitingNoteL( aCallId );
- }
- else
- {
- // Remove any phone dialogs if they are displayed
- iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
+ iViewCommandHandle->ExecuteCommandL( EPhoneViewDisableKeyLockWithoutNote );
}
// 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 );
-
+ SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
+
// Bring Phone app in the foreground
TPhoneCmdParamInteger uidParam;
uidParam.SetInteger( KUidPhoneApplication.iUid );
@@ -297,7 +285,7 @@
iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
&uidParam );
- DisplayHeaderForCallComingInL( aCallId, ETrue ); //waiting call
+ DisplayHeaderForCallComingInL( aCallId, aCommandParam.Boolean() ); //waiting call
}
// -----------------------------------------------------------
@@ -309,7 +297,20 @@
{
__LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneIncoming::AllowShowingOfWaitingCallHeaderL() ");
- if ( aCommandParam.Boolean() && IsNumberEntryUsedL() )
+ iViewCommandHandle->ExecuteCommandL(
+ EPhoneViewAllowWaitingCallHeader,
+ &aCommandParam );
+
+ // Non-touch :Hide number entry if it exists on
+ // Touch : an internal operation ongoing
+ // -> do not hide dialer
+ if ( !iOnScreenDialer )
+ {
+ SetNumberEntryVisibilityL(EFalse);
+ }
+ // If param is true and number entry is open only then
+ // hide number entry.
+ else if ( aCommandParam.Boolean() && IsNumberEntryUsedL() )
{
SetNumberEntryVisibilityL(EFalse);
}