phoneapp/phoneuicontrol/src/cphonestateincoming.cpp
branchRCL_3
changeset 25 5266b1f337bd
parent 24 41a7f70b3818
child 26 8baf28733c3d
equal deleted inserted replaced
24:41a7f70b3818 25:5266b1f337bd
    22 #include <eikenv.h>
    22 #include <eikenv.h>
    23 #include <featmgr.h>
    23 #include <featmgr.h>
    24 #include <StringLoader.h>
    24 #include <StringLoader.h>
    25 #include <dundomainpskeys.h>
    25 #include <dundomainpskeys.h>
    26 #include <telephonyvariant.hrh>
    26 #include <telephonyvariant.hrh>
       
    27 #include <ScreensaverInternalPSKeys.h>
    27 #include <mpeengineinfo.h>
    28 #include <mpeengineinfo.h>
    28 #include <MediatorDomainUIDs.h>
    29 #include <MediatorDomainUIDs.h>
    29 #include <videotelcontrolmediatorapi.h>
    30 #include <videotelcontrolmediatorapi.h>
    30 
    31 
    31 #include "cphonepubsubproxy.h"
    32 #include "cphonepubsubproxy.h"
    51 #include "tphonecmdparamquery.h"
    52 #include "tphonecmdparamquery.h"
    52 #include "cphonemediatorfactory.h"
    53 #include "cphonemediatorfactory.h"
    53 #include "cphonemediatorsender.h"
    54 #include "cphonemediatorsender.h"
    54 #include "cphonereleasecommand.h"
    55 #include "cphonereleasecommand.h"
    55 #include "mphonecustomization.h"
    56 #include "mphonecustomization.h"
    56 #include "mphonestorage.h"
    57 #include "mphonesecuritymodeobserver.h"
    57 
    58 
    58 // ================= MEMBER FUNCTIONS =======================
    59 // ================= MEMBER FUNCTIONS =======================
    59 
    60 
    60 // C++ default constructor can NOT contain any code, that
    61 // C++ default constructor can NOT contain any code, that
    61 // might leave.
    62 // might leave.
   151     {
   152     {
   152     __LOGMETHODSTARTEND(EPhoneControl,
   153     __LOGMETHODSTARTEND(EPhoneControl,
   153         "CPhoneStateIncoming::HandleNumberEntryClearedL ()" );
   154         "CPhoneStateIncoming::HandleNumberEntryClearedL ()" );
   154     // Set incoming call CBA when number entry is cleared
   155     // Set incoming call CBA when number entry is cleared
   155     iCbaManager->UpdateIncomingCbaL( iRingingCallId );
   156     iCbaManager->UpdateIncomingCbaL( iRingingCallId );
       
   157     UpdateSilenceButtonDimming();
   156     }
   158     }
   157 
   159 
   158 // -----------------------------------------------------------
   160 // -----------------------------------------------------------
   159 // CPhoneStateIncoming::HandleKeyMessageL
   161 // CPhoneStateIncoming::HandleKeyMessageL
   160 // -----------------------------------------------------------
   162 // -----------------------------------------------------------
   216             if ( aMessage == EPhoneKeyLongPress )
   218             if ( aMessage == EPhoneKeyLongPress )
   217                 {
   219                 {
   218                 // Answer the call if long press of selection key
   220                 // Answer the call if long press of selection key
   219                 AnswerCallL();
   221                 AnswerCallL();
   220                 }
   222                 }
   221             break;
   223             else if ( CPhoneCenRepProxy::Instance()->IsTelephonyFeatureSupported(
   222 
   224                         KTelephonyLVFlagCoverHideSendEndKey ))
   223         case EKeyDeviceF:
       
   224                 {
   225                 {
   225                 __PHONELOG( EBasic, EPhoneUIStates,
   226                 // Open number entry OK menubar
   226                     "CPhoneConferenceAndSingleAndWaiting::HandleKeyMessageL-deviceF" );
   227                 OpenMenuBarL();
   227                 HandleHoldSwitchL();
       
   228                 }
   228                 }
   229             break;
   229             break;
   230             
   230 
   231         default:
   231         default:
   232             break;
   232             break;
   233         }
   233         }
   234     }
   234     }
   235 
   235 
   246     iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr );
   246     iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr );
   247     iStateMachine->SendPhoneEngineMessage(
   247     iStateMachine->SendPhoneEngineMessage(
   248             MPEPhoneModel::EPEMessagePhoneNumberEdited );
   248             MPEPhoneModel::EPEMessagePhoneNumberEdited );
   249     
   249     
   250     if ( phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength 
   250     if ( phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength 
   251             && iStateMachine->PhoneEngineInfo()->PhoneNumberIsServiceCode() ) 
   251     		&& iStateMachine->PhoneEngineInfo()->PhoneNumberIsServiceCode() ) 
   252         {
   252         {
   253         // Send a manual control sequence by providing number
   253         // Send a manual control sequence by providing number
   254         // information with dial command
   254         // information with dial command
   255         CPhoneState::CallFromNumberEntryL();
   255         CPhoneState::CallFromNumberEntryL();
   256         }
   256         }
   359 //
   359 //
   360 void CPhoneStateIncoming::HandleConnectedL( TInt aCallId )
   360 void CPhoneStateIncoming::HandleConnectedL( TInt aCallId )
   361     {
   361     {
   362     __LOGMETHODSTARTEND(EPhoneControl,
   362     __LOGMETHODSTARTEND(EPhoneControl,
   363         "CPhoneStateIncoming::HandleConnectedL ()" );
   363         "CPhoneStateIncoming::HandleConnectedL ()" );
   364 
       
   365     // Re-enable global notes
   364     // Re-enable global notes
   366     TPhoneCmdParamBoolean globalNotifierParam;
   365     TPhoneCmdParamBoolean globalNotifierParam;
   367     globalNotifierParam.SetBoolean( EFalse );
   366     globalNotifierParam.SetBoolean( EFalse );
   368     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
   367     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
   369         &globalNotifierParam );
   368         &globalNotifierParam );
   370     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetEikonNotifiersDisabled,
   369     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetEikonNotifiersDisabled,
   371         &globalNotifierParam );
   370         &globalNotifierParam );
   372     // Stop tone playing, if necessary
   371     // Stop tone playing, if necessary
   373     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
   372     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
   374     
       
   375     if( IsVideoCall( aCallId ) && !IsAutoLockOn() )
       
   376         {
       
   377         // For keeping video call on top
       
   378         TPhoneCmdParamBoolean booleanParam;
       
   379         booleanParam.SetBoolean( EFalse );
       
   380         iViewCommandHandle->ExecuteCommandL(
       
   381             EPhoneViewSetNeedToSendToBackgroundStatus, &booleanParam );
       
   382         }
       
   383 
       
   384     if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke ) 
       
   385          && iStateMachine->PhoneStorage()->IsScreenLocked() )
       
   386         {
       
   387         EnableCallUIL();
       
   388         }
       
   389     
       
   390     // Reset blocked keys list
       
   391     iStateMachine->PhoneStorage()->ResetBlockedKeysList();
       
   392 
       
   393     BeginUiUpdateLC();
   373     BeginUiUpdateLC();
   394     
       
   395     // Update single call
   374     // Update single call
   396     UpdateSingleActiveCallL( aCallId );
   375     UpdateSingleActiveCallL( aCallId );
   397 
       
   398     SetTouchPaneButtons( EPhoneIncallButtons );
   376     SetTouchPaneButtons( EPhoneIncallButtons );
   399     SetBackButtonActive(ETrue);
   377     SetToolbarDimming( EFalse );
   400             
       
   401     EndUiUpdate();
   378     EndUiUpdate();
   402 
       
   403     // Go to single state
       
   404     iCbaManager->UpdateCbaL( EPhoneCallHandlingInCallCBA );
   379     iCbaManager->UpdateCbaL( EPhoneCallHandlingInCallCBA );
   405 
       
   406     iStateMachine->ChangeState( EPhoneStateSingle );
   380     iStateMachine->ChangeState( EPhoneStateSingle );
   407     }
   381     }
   408 
   382 
   409 // -----------------------------------------------------------
   383 // -----------------------------------------------------------
   410 // CPhoneStateIncoming::HandleAudioPlayStoppedL
   384 // CPhoneStateIncoming::HandleAudioPlayStoppedL
   412 //
   386 //
   413 EXPORT_C void CPhoneStateIncoming::HandleAudioPlayStoppedL()
   387 EXPORT_C void CPhoneStateIncoming::HandleAudioPlayStoppedL()
   414     {
   388     {
   415     __LOGMETHODSTARTEND(EPhoneControl,
   389     __LOGMETHODSTARTEND(EPhoneControl,
   416         "CPhoneStateIncoming::HandleAudioPlayStoppedL ()" );
   390         "CPhoneStateIncoming::HandleAudioPlayStoppedL ()" );
       
   391     // Update the CBA
       
   392     
   417     // Set the ringtone silenced status
   393     // Set the ringtone silenced status
   418     iCbaManager->SetRingtoneSilencedStatus( ETrue );
   394     iCbaManager->SetRingtoneSilencedStatus( ETrue );
   419     TInt resourceId = EPhoneCallHandlingIncomingRejectCBA;
   395     TInt resourceId = EPhoneCallHandlingIncomingRejectCBA;
   420     iCbaManager->SetCbaL( resourceId );
   396     // Get the soft reject flag status
       
   397     TPhoneCmdParamBoolean softRejectParam;
       
   398     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSoftRejectFlag,
       
   399         &softRejectParam );
       
   400 
       
   401     if ( IsNumberEntryVisibleL() && !iOnScreenDialer )
       
   402         {
       
   403         resourceId = EPhoneNumberAcqCBA;
       
   404         }
       
   405     else if ( iStateMachine->SecurityMode()->IsSecurityMode() )
       
   406     	{
       
   407 		// Use 'answer & reject' softkeys if security mode is enabled.
       
   408     	resourceId = EPhoneCallHandlingIncomingRejectCBA;
       
   409     	}
       
   410     else if ( softRejectParam.Boolean() )
       
   411         {
       
   412         resourceId = EPhoneCallHandlingIncomingSoftRejectCBA;
       
   413         }
       
   414 	iCbaManager->SetCbaL( resourceId );
   421     }
   415     }
   422 
   416 
   423 // -----------------------------------------------------------
   417 // -----------------------------------------------------------
   424 // CPhoneStateIncoming::HandleIdleL
   418 // CPhoneStateIncoming::HandleIdleL
   425 // -----------------------------------------------------------
   419 // -----------------------------------------------------------
   426 //
   420 //
   427 void CPhoneStateIncoming::HandleIdleL( TInt aCallId )
   421 void CPhoneStateIncoming::HandleIdleL( TInt aCallId )
   428     {
   422     {
   429     __LOGMETHODSTARTEND(EPhoneControl,
   423     __LOGMETHODSTARTEND(EPhoneControl,
   430         "CPhoneStateIncoming::HandleIdleL ()" );
   424         "CPhoneStateIncoming::HandleIdleL ()" );
       
   425     BeginTransEffectLC( ENumberEntryClose );
   431     BeginUiUpdateLC();
   426     BeginUiUpdateLC();
   432 
       
   433     // Enable call UI
       
   434     if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke ) 
       
   435         && iStateMachine->PhoneStorage()->IsScreenLocked() )
       
   436         {
       
   437         EnableCallUIL();
       
   438         }
       
   439 
       
   440     // Reset blocked keys list
       
   441     iStateMachine->PhoneStorage()->ResetBlockedKeysList();
       
   442     
       
   443     // Remove call
       
   444     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
   427     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
   445     // Stop tone playing, if necessary
   428     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
   446     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
   429     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
   447     
   430     
   448     TPhoneCmdParamBoolean globalNotifierParam;
   431     TPhoneCmdParamBoolean globalNotifierParam;
   449     globalNotifierParam.SetBoolean( EFalse );
   432     globalNotifierParam.SetBoolean( EFalse );
   450     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetEikonNotifiersDisabled,
   433     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetEikonNotifiersDisabled,
   452     
   435     
   453     SetDefaultFlagsL();
   436     SetDefaultFlagsL();
   454     
   437     
   455      if ( IsNumberEntryUsedL() )
   438      if ( IsNumberEntryUsedL() )
   456         {
   439         {
   457         if ( NeedToSendToBackgroundL() )
   440         if ( NeedToReturnToForegroundAppL() )
   458             {
   441             {
   459             // Return phone to the background if send to background is needed.
   442             // Return phone to the background if send to background is needed.
   460             iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
   443             iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
   461 
   444             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
   462             // Set Number Entry CBA
       
   463             iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
   445             iCbaManager->SetCbaL( EPhoneNumberAcqCBA );
   464             }
   446             }
   465         else
   447         else
   466             {
   448             {
   467             // Show the number entry if it exists.
   449             // Show the number entry if it exists.
   468             SetNumberEntryVisibilityL(ETrue);
   450             SetNumberEntryVisibilityL(ETrue);
   469             }
   451             }
   470         }
   452         }
   471     else if ( NeedToSendToBackgroundL() )
   453     else if ( NeedToReturnToForegroundAppL() ||
       
   454         SoftRejectMessageEditorIsDisplayedL() )
   472         {
   455         {
   473         // Continue displaying current app but set up the
   456         // Continue displaying current app but set up the
   474         // idle screen in the background
   457         // idle screen in the background
   475         SetupIdleScreenInBackgroundL();
   458         SetupIdleScreenInBackgroundL();
   476         }
   459         }
   477     else
   460     else
   478         {
   461         {
   479         // Display idle screen
       
   480         DisplayIdleScreenL();
   462         DisplayIdleScreenL();
   481         }
   463         }
   482  
   464  
   483     DeleteTouchPaneButtons();
   465     DeleteTouchPaneButtons();
   484     SetBackButtonActive(ETrue);
       
   485     
       
   486     EndUiUpdate();
   466     EndUiUpdate();
   487     // Go to idle state   
   467     EndTransEffect();
   488     iCbaManager->UpdateCbaL( EPhoneEmptyCBA );
   468     iCbaManager->UpdateCbaL( EPhoneEmptyCBA );
   489     iStateMachine->ChangeState( EPhoneStateIdle );
   469     iStateMachine->ChangeState( EPhoneStateIdle );
   490     }
   470     }
   491 
   471 
   492 // -----------------------------------------------------------
   472 // -----------------------------------------------------------
   503         {
   483         {
   504         case EPhoneCmdOptions:
   484         case EPhoneCmdOptions:
   505             // Stop tone playing, if necessary.
   485             // Stop tone playing, if necessary.
   506             // And stop vibrating, if it is active.
   486             // And stop vibrating, if it is active.
   507             iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
   487             iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
       
   488             // Open the menu bar
       
   489             OpenMenuBarL();
   508             break;
   490             break;
   509 
   491 
   510         case EPhoneCallComingCmdAnswer:
   492         case EPhoneCallComingCmdAnswer:
   511             AnswerCallL();
   493             AnswerCallL();
   512             break;
   494             break;
   525             break;
   507             break;
   526 
   508 
   527         case EPhoneCallComingCmdSilent:
   509         case EPhoneCallComingCmdSilent:
   528             // Silence the ringer. And stop vibrating, if it is active.
   510             // Silence the ringer. And stop vibrating, if it is active.
   529             iViewCommandHandle->ExecuteCommandL( EPhoneViewMuteRingTone );
   511             iViewCommandHandle->ExecuteCommandL( EPhoneViewMuteRingTone );
       
   512             // Dim silence button
       
   513             SetTouchPaneButtonDisabled( EPhoneCallComingCmdSilent );
   530             HandleAudioPlayStoppedL();
   514             HandleAudioPlayStoppedL();
   531             iStateMachine->SendPhoneEngineMessage(
   515             iStateMachine->SendPhoneEngineMessage(
   532                 MPEPhoneModel::EPEMessageStopTonePlay );
   516                 MPEPhoneModel::EPEMessageStopTonePlay );
   533             break;
   517             break;
   534 
   518 
   535         case EPhoneCallComingCmdSoftReject:
   519         case EPhoneCallComingCmdSoftReject:
   536             // Open Soft reject message editor
   520             // Open Soft reject message editor
   537             OpenSoftRejectMessageL();
   521             OpenSoftRejectMessageEditorL();
   538             break;
   522             break;
   539 
   523 
   540         case EPhoneNumberAcqCmdSendCommand:
   524         case EPhoneNumberAcqCmdSendCommand:
   541             HandleSendL();
   525             HandleSendL();
       
   526             break;
       
   527 
       
   528         case EPhoneInCallCmdHelp:
       
   529             {
       
   530             TPtrC contextName;
       
   531             if( IsVideoCall( iRingingCallId ) )
       
   532                 {
       
   533                 contextName.Set( KINCAL_HLP_VIDEOCALL() );
       
   534                 }
       
   535             else
       
   536                 {
       
   537                 contextName.Set( KINCAL_HLP_CALL_HANDLING() );
       
   538                 }
       
   539             iViewCommandHandle->ExecuteCommandL(
       
   540                 EPhoneViewLaunchHelpApplication, 0, contextName );
       
   541             }
   542             break;
   542             break;
   543 
   543 
   544         default:
   544         default:
   545             commandStatus = CPhoneState::HandleCommandL( aCommand );
   545             commandStatus = CPhoneState::HandleCommandL( aCommand );
   546             break;
   546             break;
   592     iStateMachine->SetCallId( iRingingCallId );
   592     iStateMachine->SetCallId( iRingingCallId );
   593 
   593 
   594     if( IsVideoCall( iRingingCallId ) )
   594     if( IsVideoCall( iRingingCallId ) )
   595         {
   595         {
   596         // Video call can be released only after we get response to VT Shutdown Command
   596         // Video call can be released only after we get response to VT Shutdown Command
   597         CPhoneMediatorFactory::Instance()->Sender()->IssueCommand( KMediatorVideoTelephonyDomain,
   597         CPhoneMediatorFactory::Instance()->Sender()->IssueCommand( 
   598                                                                              KCatPhoneToVideotelCommands, 
   598                 KMediatorVideoTelephonyDomain,
   599                                                                              EVtCmdReleaseDataport,
   599                          KCatPhoneToVideotelCommands, 
   600                                                                    TVersion( KPhoneToVideotelCmdVersionMajor,
   600                          EVtCmdReleaseDataport,
   601                                                                              KPhoneToVideotelCmdVersionMinor, 
   601                TVersion( KPhoneToVideotelCmdVersionMajor,
   602                                                                              KPhoneToVideotelCmdVersionBuild ),
   602                          KPhoneToVideotelCmdVersionMinor, 
   603                                                                    KNullDesC8,
   603                          KPhoneToVideotelCmdVersionBuild ),
   604                                                                    CPhoneReleaseCommand::NewL( *iStateMachine ) );
   604                KNullDesC8,
       
   605                CPhoneReleaseCommand::NewL( *iStateMachine ) );
   605         }
   606         }
   606     else
   607     else
   607         {
   608         {
   608         // Release the call
   609         // Release the call
   609         iStateMachine->SendPhoneEngineMessage(
   610         iStateMachine->SendPhoneEngineMessage(
   615 
   616 
   616 // -----------------------------------------------------------
   617 // -----------------------------------------------------------
   617 // CPhoneStateIncoming::OpenSoftRejectMessageEditorL
   618 // CPhoneStateIncoming::OpenSoftRejectMessageEditorL
   618 // -----------------------------------------------------------
   619 // -----------------------------------------------------------
   619 //
   620 //
   620 void CPhoneStateIncoming::OpenSoftRejectMessageL()
   621 void CPhoneStateIncoming::OpenSoftRejectMessageEditorL()
   621     {
   622     {
   622     __LOGMETHODSTARTEND(EPhoneControl,
   623     __LOGMETHODSTARTEND(EPhoneControl,
   623         "CPhoneStateIncoming::OpenSoftRejectMessageEditorL ()" );
   624         "CPhoneStateIncoming::OpenSoftRejectMessageEditorL ()" );
       
   625     // Clear the soft reject flag
       
   626     TPhoneCmdParamBoolean softRejectParam;
       
   627     softRejectParam.SetBoolean( EFalse );
       
   628     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetSoftRejectFlag,
       
   629         &softRejectParam );
       
   630 
       
   631     // Dim silence button
       
   632     SetTouchPaneButtonDisabled( EPhoneCallComingCmdSilent );
   624     
   633     
   625     // Silence the vibrating
   634     // Silence the vibrating
   626     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
   635     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
   627     iStateMachine->SendPhoneEngineMessage(
   636     iStateMachine->SendPhoneEngineMessage(
   628         MPEPhoneModel::EPEMessageStopTonePlay );
   637         MPEPhoneModel::EPEMessageStopTonePlay );
   652 
   661 
   653     iViewCommandHandle->ExecuteCommandL(
   662     iViewCommandHandle->ExecuteCommandL(
   654         EPhoneViewOpenSoftRejectEditor, &sfiDataParam );
   663         EPhoneViewOpenSoftRejectEditor, &sfiDataParam );
   655     }
   664     }
   656 
   665 
       
   666 // -----------------------------------------------------------
       
   667 // CPhoneStateIncoming::SoftRejectMessageEditorIsDisplayedL
       
   668 // -----------------------------------------------------------
       
   669 //
       
   670 TBool CPhoneStateIncoming::SoftRejectMessageEditorIsDisplayedL() const
       
   671     {
       
   672     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIncoming::SoftRejectMessageEditorIsDisplayedL () ");
       
   673     // Get the foreground application window group id
       
   674     TPhoneCmdParamInteger foregroundAppParam;
       
   675     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetForegroundApplication,
       
   676         &foregroundAppParam );
       
   677 
       
   678     // Get the soft reject message editor window group id
       
   679     TPhoneCmdParamInteger softRejectMessageEditorWgId;
       
   680     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetSoftRejectWindowGroupId,
       
   681         &softRejectMessageEditorWgId );
       
   682 
       
   683     __PHONELOG1(
       
   684         EBasic,
       
   685         EPhoneControl,
       
   686         "CPhoneStateIncoming::SoftRejectMessageEditorIsDisplayedL() SoftRejectGroupId %d",
       
   687         softRejectMessageEditorWgId.Integer() );
       
   688     __PHONELOG1(
       
   689         EBasic,
       
   690         EPhoneControl,
       
   691         "CPhoneStateIncoming::SoftRejectMessageEditorIsDisplayedL() ForegroundAppGroupId %d",
       
   692         foregroundAppParam.Integer() );
       
   693     // Return ETrue if soft reject message editor is displayed
       
   694     return softRejectMessageEditorWgId.Integer() == foregroundAppParam.Integer();
       
   695     }
       
   696 
       
   697 // -----------------------------------------------------------
       
   698 // CPhoneStateIncoming::OpenMenuBarL
       
   699 // -----------------------------------------------------------
       
   700 //
       
   701 void CPhoneStateIncoming::OpenMenuBarL()
       
   702     {
       
   703     __LOGMETHODSTARTEND(EPhoneControl,
       
   704         "CPhoneStateIncoming::OpenMenuBarL ()" );
       
   705     TInt resourceId;
       
   706 
       
   707     // Determine the correct menu bar to display
       
   708     if ( CPhoneState::IsNumberEntryVisibleL() )
       
   709         {
       
   710         resourceId = GetNumberEntryVisibleMenuBar();
       
   711         }
       
   712     else
       
   713         {
       
   714         resourceId = GetNumberEntryNotVisibleMenuBar();
       
   715         }
       
   716 
       
   717     // Silence the ringer. And stop vibrating, if it is active.
       
   718     iViewCommandHandle->ExecuteCommandL( EPhoneViewStopRingTone );
       
   719     iStateMachine->SendPhoneEngineMessage(
       
   720         MPEPhoneModel::EPEMessageStopTonePlay );
       
   721 
       
   722     //Set correct cba
       
   723     HandleAudioPlayStoppedL();
       
   724     
       
   725     // Dim button
       
   726     SetTouchPaneButtonDisabled( EPhoneCallComingCmdSilent );
       
   727 
       
   728     // Open the menu bar
       
   729     TPhoneCmdParamInteger integerParam;
       
   730     integerParam.SetInteger(
       
   731         CPhoneMainResourceResolver::Instance()->
       
   732         ResolveResourceID( resourceId ) );
       
   733     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen,
       
   734         &integerParam );
       
   735     }
   657 
   736 
   658 // -----------------------------------------------------------
   737 // -----------------------------------------------------------
   659 // CPhoneStateIncoming::GetNumberEntryVisibleMenuBar
   738 // CPhoneStateIncoming::GetNumberEntryVisibleMenuBar
   660 // -----------------------------------------------------------
   739 // -----------------------------------------------------------
   661 //
   740 //
   683         }
   762         }
   684     else
   763     else
   685         {
   764         {
   686         return EPhoneIncomingCallMenubar;
   765         return EPhoneIncomingCallMenubar;
   687         }
   766         }
       
   767     }
       
   768 
       
   769 // -----------------------------------------------------------
       
   770 // CPhoneStateIncoming::DynInitMenuPaneL
       
   771 // -----------------------------------------------------------
       
   772 //
       
   773 EXPORT_C void CPhoneStateIncoming::DynInitMenuPaneL(
       
   774     TInt aResourceId,
       
   775     CEikMenuPane* aMenuPane )
       
   776     {
       
   777     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIncoming::DynInitMenuPaneL() ");
       
   778     __ASSERT_DEBUG( aMenuPane && aResourceId,
       
   779         Panic( EPhoneCtrlParameterNotInitialized ) );
       
   780 
       
   781     // Save the number of digits in the number entry before processing
       
   782     // the menu pane
       
   783     if ( IsNumberEntryUsedL() )
       
   784         {
       
   785         TPhoneCmdParamBoolean serviceCodeParam;
       
   786         serviceCodeParam.SetBoolean( ETrue );
       
   787         iViewCommandHandle->ExecuteCommandL( EPhoneViewSetServiceCodeFlag,
       
   788             &serviceCodeParam );
       
   789         }
       
   790 
       
   791     if ( iCustomization )
       
   792         {
       
   793         iCustomization->CustomizeMenuPaneL(aResourceId, aMenuPane);
       
   794         }
       
   795     // Process the menu pane
       
   796     TPhoneCmdParamDynMenu dynMenuPane;
       
   797     dynMenuPane.SetResourceId( aResourceId );
       
   798     dynMenuPane.SetDynMenu( aMenuPane );
       
   799     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuPane, &dynMenuPane );
   688     }
   800     }
   689 
   801 
   690 // -----------------------------------------------------------
   802 // -----------------------------------------------------------
   691 // CPhoneStateIncoming::ShowDisconnectingL
   803 // CPhoneStateIncoming::ShowDisconnectingL
   692 // -----------------------------------------------------------
   804 // -----------------------------------------------------------
   706 
   818 
   707     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId,
   819     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId,
   708         &callHeaderParam );
   820         &callHeaderParam );
   709     }
   821     }
   710 
   822 
   711 // ---------------------------------------------------------
       
   712 // CPhoneStateIncoming::HandleKeyLockEnabledL
       
   713 // ---------------------------------------------------------
       
   714 //
       
   715 EXPORT_C void CPhoneStateIncoming::HandleKeyLockEnabled( TBool aKeylockEnabled )
       
   716     {
       
   717     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateIncoming::HandleKeyLockEnabledL( ) ");
       
   718     if( !FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke )
       
   719         && CPhoneCenRepProxy::Instance()->
       
   720             IsTelephonyFeatureSupported( KTelephonyLVFlagDisableCallControlHardKeysWhileLocked ) )
       
   721         {
       
   722         if( aKeylockEnabled )
       
   723             {
       
   724             // Keylock enabled
       
   725             if( iStateMachine->PhoneStorage()->IsBlockedKeysListEmpty() )
       
   726                 {
       
   727                 // Disable HW Keys if needed
       
   728                 DisableHWKeysL();
       
   729                 }
       
   730             }
       
   731         else
       
   732             {
       
   733             // Keylock disabled
       
   734             // Reset blocked keys list
       
   735             iStateMachine->PhoneStorage()->ResetBlockedKeysList();
       
   736             }
       
   737         }
       
   738     }
       
   739 
       
   740 // End of File
   823 // End of File