phoneapp/phoneuicontrol/src/cphonestate.cpp
changeset 45 6b911d05207e
parent 37 ba76fc04e6c2
child 46 bc5a64e5bc3c
equal deleted inserted replaced
37:ba76fc04e6c2 45:6b911d05207e
    36 #include <btengdomainpskeys.h>
    36 #include <btengdomainpskeys.h>
    37 #include <btengdomaincrkeys.h>
    37 #include <btengdomaincrkeys.h>
    38 #include <settingsinternalcrkeys.h>
    38 #include <settingsinternalcrkeys.h>
    39 #include <starterclient.h>
    39 #include <starterclient.h>
    40 #include <rsssettings.h>
    40 #include <rsssettings.h>
    41 #include <UikonInternalPSKeys.h>
    41 #include <uikoninternalpskeys.h>
    42 #include <telephonydomainpstypes.h>
    42 #include <telephonydomainpstypes.h>
    43 #include <telinformationpskeys.h>
    43 #include <telinformationpskeys.h>
    44 #include <coreapplicationuisdomainpskeys.h>
    44 #include <coreapplicationuisdomainpskeys.h>
    45 #include <mccecall.h>
    45 #include <mccecall.h>
    46 #include <ccpdefs.h>
    46 #include <ccpdefs.h>
    50 #include <MediatorDomainUIDs.h>
    50 #include <MediatorDomainUIDs.h>
    51 #include <videotelcontrolmediatorapi.h>
    51 #include <videotelcontrolmediatorapi.h>
    52 #include <textresolver.h>
    52 #include <textresolver.h>
    53 #include <phoneappvoipcommands.hrh>
    53 #include <phoneappvoipcommands.hrh>
    54 #include <hwrmdomainpskeys.h>
    54 #include <hwrmdomainpskeys.h>
       
    55 #include <hal.h>
    55 
    56 
    56 #include "phoneui.pan"
    57 #include "phoneui.pan"
    57 #include "cphonestate.h"
    58 #include "cphonestate.h"
    58 #include "mphonestatemachine.h"
    59 #include "mphonestatemachine.h"
    59 #include "mphoneviewcommandhandle.h"
    60 #include "mphoneviewcommandhandle.h"
   244 
   245 
   245        case MEngineMonitor::EPEMessageInitiatedEmergencyWhileActiveVideo:
   246        case MEngineMonitor::EPEMessageInitiatedEmergencyWhileActiveVideo:
   246            HandleInitiatedEmergencyWhileActiveVideoL();
   247            HandleInitiatedEmergencyWhileActiveVideoL();
   247            break;
   248            break;
   248 
   249 
   249         case MEngineMonitor::EPEMessageShowIMEI:
   250        case MEngineMonitor::EPEMessageCallSecureStatusChanged:
   250             // Stop playing DTMF tone
   251            HandleCallSecureStatusChangeL( aCallId );
   251             iStateMachine->SendPhoneEngineMessage( MPEPhoneModel::EPEMessageEndDTMF );
   252 
   252             HandleShowImeiL();
   253            if ( iCustomization )
   253             break;
   254                {
   254 
   255                iCustomization->HandlePhoneEngineMessageL( aMessage,
   255         case MEngineMonitor::EPEMessageCallSecureStatusChanged:
   256                    aCallId );
   256             HandleCallSecureStatusChangeL( aCallId );
   257                }
   257 
   258            break;
   258             if ( iCustomization )
       
   259                 {
       
   260                 iCustomization->HandlePhoneEngineMessageL( aMessage,
       
   261                     aCallId );
       
   262                 }
       
   263             break;
       
   264 
       
   265         case MEngineMonitor::EPEMessageActivateWarrantyMode:
       
   266             // Stop playing DTMF tone
       
   267             iStateMachine->SendPhoneEngineMessage( MPEPhoneModel::EPEMessageEndDTMF );
       
   268             HandleShowLifeTimerL();
       
   269             break;
       
   270 
   259 
   271         case MEngineMonitor::EPEMessageIssuingUSSDRequest:
   260         case MEngineMonitor::EPEMessageIssuingUSSDRequest:
   272             {
   261             {
   273              // Enable global notes
   262              // Enable global notes
   274             TPhoneCmdParamBoolean globalNotifierParam;
   263             TPhoneCmdParamBoolean globalNotifierParam;
   413     TPhoneCmdParamBoolean booleanParam;
   402     TPhoneCmdParamBoolean booleanParam;
   414     const TBool audioMute = iStateMachine->PhoneEngineInfo()->AudioMute();
   403     const TBool audioMute = iStateMachine->PhoneEngineInfo()->AudioMute();
   415     booleanParam.SetBoolean( audioMute );
   404     booleanParam.SetBoolean( audioMute );
   416     iViewCommandHandle->ExecuteCommandL( EPhoneViewActivateMuteUIChanges,
   405     iViewCommandHandle->ExecuteCommandL( EPhoneViewActivateMuteUIChanges,
   417         &booleanParam );
   406         &booleanParam );
       
   407     
       
   408     SetTouchPaneButtons(0);
   418     }
   409     }
   419 
   410 
   420 // -----------------------------------------------------------
   411 // -----------------------------------------------------------
   421 // CPhoneState::HandleAudioOutputChangedL
   412 // CPhoneState::HandleAudioOutputChangedL
   422 // Default handling for EPEMessageAudioOutputChanged message
   413 // Default handling for EPEMessageAudioOutputChanged message
   823 // (other items were commented in a header).
   814 // (other items were commented in a header).
   824 // -----------------------------------------------------------
   815 // -----------------------------------------------------------
   825 void CPhoneState::HandleChangedCallDurationL( TInt aCallId )
   816 void CPhoneState::HandleChangedCallDurationL( TInt aCallId )
   826     {
   817     {
   827      __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::HandleChangedCallDurationL() ");
   818      __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::HandleChangedCallDurationL() ");
   828     // Get the call duration
   819     
   829     TTimeIntervalSeconds seconds =
   820     TInt ret = KErrNone;
   830         iStateMachine->PhoneEngineInfo()->CallDuration( aCallId );
   821     TInt isDisplayOn;
   831 
   822     
   832     TPhoneCmdParamInteger time;
   823     ret = HAL::Get( HALData::EDisplayState, isDisplayOn );
   833     time.SetInteger(seconds.Int());
   824     
   834     iViewCommandHandle->ExecuteCommandL(EPhoneViewUpdateCallHeaderCallDuration, aCallId, &time);
   825     // Update only if the display is on or if HAL::Get returns an error, 
   835     }
   826     // in which case display value cannot be trusted.
       
   827     if ( ret || isDisplayOn )
       
   828         {
       
   829         // Get the call duration
       
   830         TTimeIntervalSeconds seconds =
       
   831             iStateMachine->PhoneEngineInfo()->CallDuration( aCallId );
       
   832 
       
   833         TPhoneCmdParamInteger time;
       
   834         time.SetInteger(seconds.Int());
       
   835         iViewCommandHandle->ExecuteCommandL(EPhoneViewUpdateCallHeaderCallDuration, aCallId, &time);
       
   836         }
       
   837     }	
   836 
   838 
   837 // -----------------------------------------------------------------------------
   839 // -----------------------------------------------------------------------------
   838 // CPhoneState::HandleRemoteBusyL
   840 // CPhoneState::HandleRemoteBusyL
   839 // -----------------------------------------------------------------------------
   841 // -----------------------------------------------------------------------------
   840 //
   842 //
  2209     TPhoneCmdParamCallHeaderData callHeaderParam = UpdateCallHeaderInfoL( aCallId );
  2211     TPhoneCmdParamCallHeaderData callHeaderParam = UpdateCallHeaderInfoL( aCallId );
  2210 
  2212 
  2211     if( iCustomization )
  2213     if( iCustomization )
  2212         {
  2214         {
  2213         TBuf<KCntMaxTextFieldLength> inCallNumberText( KNullDesC );
  2215         TBuf<KCntMaxTextFieldLength> inCallNumberText( KNullDesC );
  2214         // incall number text could be 'Call 1', 'Call 2', ...
  2216 
  2215         CallheaderManagerL()->GetInCallNumberTextL( aCallId, inCallNumberText );
       
  2216         // to check if we have VoIP call in question and fix
  2217         // to check if we have VoIP call in question and fix
  2217         // parameters if needed
  2218         // parameters if needed
  2218         iCustomization->ModifyCallHeaderTexts( aCallId, &callHeaderParam,
  2219         iCustomization->ModifyCallHeaderTexts( aCallId, &callHeaderParam,
  2219             inCallNumberText );
  2220             inCallNumberText );
  2220         }
  2221         }
  2472 
  2473 
  2473 // ---------------------------------------------------------
  2474 // ---------------------------------------------------------
  2474 // CPhoneState::SendGlobalInfoNoteL
  2475 // CPhoneState::SendGlobalInfoNoteL
  2475 // ---------------------------------------------------------
  2476 // ---------------------------------------------------------
  2476 //
  2477 //
  2477 EXPORT_C void CPhoneState::SendGlobalInfoNoteL( TInt aResourceId )
  2478 EXPORT_C void CPhoneState::SendGlobalInfoNoteL( 
       
  2479         TInt aResourceId, TBool aNotificationDialog )
  2478     {
  2480     {
  2479     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::SendGlobalInfoNoteL( ) ");
  2481     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::SendGlobalInfoNoteL( ) ");
  2480     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
  2482     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
  2481     if ( CPhonePubSubProxy::Instance()->Value(
  2483     if ( CPhonePubSubProxy::Instance()->Value(
  2482             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 )
  2484             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 )
  2492         globalNoteParam.SetType( EAknGlobalInformationNote );
  2494         globalNoteParam.SetType( EAknGlobalInformationNote );
  2493         globalNoteParam.SetTextResourceId(
  2495         globalNoteParam.SetTextResourceId(
  2494             CPhoneMainResourceResolver::Instance()->
  2496             CPhoneMainResourceResolver::Instance()->
  2495             ResolveResourceID( aResourceId ) );
  2497             ResolveResourceID( aResourceId ) );
  2496         globalNoteParam.SetTone( EAvkonSIDInformationTone );
  2498         globalNoteParam.SetTone( EAvkonSIDInformationTone );
  2497 
  2499         globalNoteParam.SetNotificationDialog( aNotificationDialog );
       
  2500         
  2498         iViewCommandHandle->ExecuteCommandL(
  2501         iViewCommandHandle->ExecuteCommandL(
  2499             EPhoneViewShowGlobalNote, &globalNoteParam );
  2502             EPhoneViewShowGlobalNote, &globalNoteParam );
  2500         }
  2503         }
  2501     }
  2504     }
  2502 
  2505 
  2503 // ---------------------------------------------------------
  2506 // ---------------------------------------------------------
  2504 //  CPhoneUIController::SendGlobalWarningNoteL
  2507 //  CPhoneUIController::SendGlobalWarningNoteL
  2505 // ---------------------------------------------------------
  2508 // ---------------------------------------------------------
  2506 //
  2509 //
  2507 EXPORT_C void CPhoneState::SendGlobalWarningNoteL( TInt aResourceId )
  2510 EXPORT_C void CPhoneState::SendGlobalWarningNoteL( 
       
  2511         TInt aResourceId, TBool aNotificationDialog )
  2508     {
  2512     {
  2509     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::SendGlobalWarningNoteL( ) ");
  2513     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::SendGlobalWarningNoteL( ) ");
  2510     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
  2514     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
  2511     if ( CPhonePubSubProxy::Instance()->Value(
  2515     if ( CPhonePubSubProxy::Instance()->Value(
  2512             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 ||
  2516             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 ||
  2522         globalNoteParam.SetType( EAknGlobalWarningNote );
  2526         globalNoteParam.SetType( EAknGlobalWarningNote );
  2523         globalNoteParam.SetTextResourceId(
  2527         globalNoteParam.SetTextResourceId(
  2524             CPhoneMainResourceResolver::Instance()->
  2528             CPhoneMainResourceResolver::Instance()->
  2525             ResolveResourceID( aResourceId ) );
  2529             ResolveResourceID( aResourceId ) );
  2526         globalNoteParam.SetTone( EAvkonSIDWarningTone );
  2530         globalNoteParam.SetTone( EAvkonSIDWarningTone );
  2527 
  2531         globalNoteParam.SetNotificationDialog( aNotificationDialog );
       
  2532         
  2528         iViewCommandHandle->ExecuteCommandL(
  2533         iViewCommandHandle->ExecuteCommandL(
  2529             EPhoneViewShowGlobalNote, &globalNoteParam );
  2534             EPhoneViewShowGlobalNote, &globalNoteParam );
  2530         }
  2535         }
  2531     }
  2536     }
  2532 
  2537 
  2533 // ---------------------------------------------------------
  2538 // ---------------------------------------------------------
  2534 //  CPhoneUIController::SendGlobalErrorNoteL
  2539 //  CPhoneUIController::SendGlobalErrorNoteL
  2535 // ---------------------------------------------------------
  2540 // ---------------------------------------------------------
  2536 //
  2541 //
  2537 EXPORT_C void CPhoneState::SendGlobalErrorNoteL( TInt aResourceId )
  2542 EXPORT_C void CPhoneState::SendGlobalErrorNoteL( 
       
  2543         TInt aResourceId, TBool aNotificationDialog )
  2538     {
  2544     {
  2539     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::SendGlobalErrorNoteL( ) ");
  2545     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::SendGlobalErrorNoteL( ) ");
  2540     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
  2546     __ASSERT_DEBUG( aResourceId, Panic( EPhoneCtrlParameterNotInitialized ) );
  2541     if ( CPhonePubSubProxy::Instance()->Value(
  2547     if ( CPhonePubSubProxy::Instance()->Value(
  2542             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 )
  2548             KPSUidUikon, KUikGlobalNotesAllowed ) == 1 )
  2551         globalNoteParam.SetType( EAknGlobalErrorNote );
  2557         globalNoteParam.SetType( EAknGlobalErrorNote );
  2552         globalNoteParam.SetTextResourceId(
  2558         globalNoteParam.SetTextResourceId(
  2553             CPhoneMainResourceResolver::Instance()->
  2559             CPhoneMainResourceResolver::Instance()->
  2554             ResolveResourceID( aResourceId ) );
  2560             ResolveResourceID( aResourceId ) );
  2555         globalNoteParam.SetTone( CAknNoteDialog::EErrorTone );
  2561         globalNoteParam.SetTone( CAknNoteDialog::EErrorTone );
       
  2562         globalNoteParam.SetNotificationDialog( aNotificationDialog );
  2556 
  2563 
  2557         iViewCommandHandle->ExecuteCommandL(
  2564         iViewCommandHandle->ExecuteCommandL(
  2558             EPhoneViewShowGlobalNote, &globalNoteParam );
  2565             EPhoneViewShowGlobalNote, &globalNoteParam );
  2559         }
  2566         }
  2560     }
  2567     }
  2847                                                                KNullDesC8,
  2854                                                                KNullDesC8,
  2848                                                                CPhoneContinueEmergencyCallCommand::NewL( *iStateMachine ) );
  2855                                                                CPhoneContinueEmergencyCallCommand::NewL( *iStateMachine ) );
  2849     }
  2856     }
  2850 
  2857 
  2851 // -----------------------------------------------------------
  2858 // -----------------------------------------------------------
  2852 // CPhoneState::HandleShowImeiL
       
  2853 // -----------------------------------------------------------
       
  2854 //
       
  2855 void CPhoneState::HandleShowImeiL()
       
  2856     {
       
  2857     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::HandleShowImeiL( ) ");
       
  2858     
       
  2859     // Fetch IMEI
       
  2860     TBuf<RMobilePhone::KPhoneSerialNumberSize> serialNumber;
       
  2861     TPEPhoneIdentityParameters phoneIdentityParameters = 
       
  2862         iStateMachine->PhoneEngineInfo()->PhoneIdentityParameters();
       
  2863     serialNumber = phoneIdentityParameters.iSerialNumber;
       
  2864     
       
  2865     HBufC* imeiNoteText = StringLoader::LoadLC(
       
  2866         CPhoneMainResourceResolver::Instance()->
       
  2867         ResolveResourceID(
       
  2868         EPhonePhoneImeiString ), serialNumber );
       
  2869     
       
  2870     TPhoneCmdParamGlobalNote noteParam;
       
  2871     noteParam.SetType( EAknGlobalInformationNote );
       
  2872     noteParam.SetTone( EAvkonSIDInformationTone );
       
  2873     noteParam.SetText( *imeiNoteText );
       
  2874     noteParam.SetTimeout( KPhoneNoteNoTimeout );
       
  2875     
       
  2876     iViewCommandHandle->ExecuteCommandL( 
       
  2877         EPhoneViewShowGlobalNote, 
       
  2878         &noteParam );
       
  2879     
       
  2880     CleanupStack::PopAndDestroy( imeiNoteText );
       
  2881     }
       
  2882 
       
  2883 // -----------------------------------------------------------
       
  2884 // CPhoneState::HandleCallSecureStatusChangeL
  2859 // CPhoneState::HandleCallSecureStatusChangeL
  2885 // -----------------------------------------------------------
  2860 // -----------------------------------------------------------
  2886 //
  2861 //
  2887 void CPhoneState::HandleCallSecureStatusChangeL( TInt aCallId )
  2862 void CPhoneState::HandleCallSecureStatusChangeL( TInt aCallId )
  2888     {
  2863     {
  2904 
  2879 
  2905     iViewCommandHandle->ExecuteCommandL(
  2880     iViewCommandHandle->ExecuteCommandL(
  2906         EPhoneViewCipheringInfoChange,
  2881         EPhoneViewCipheringInfoChange,
  2907         aCallId,
  2882         aCallId,
  2908         &callHeaderParam );
  2883         &callHeaderParam );
  2909     }
       
  2910 
       
  2911 // -----------------------------------------------------------
       
  2912 // CPhoneState::HandleShowLifeTimerL
       
  2913 // -----------------------------------------------------------
       
  2914 //
       
  2915 void CPhoneState::HandleShowLifeTimerL()
       
  2916    {
       
  2917     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneState::HandleShowLifeTimerL( ) ");
       
  2918     
       
  2919     // Fetch LifeTime
       
  2920     TPELifeTimeData lifeTimeData = 
       
  2921         iStateMachine->PhoneEngineInfo()->LifeTimerData();
       
  2922     
       
  2923     TLocale locale;
       
  2924     TBuf<KTimerTextLength> lifetimerText;
       
  2925     lifetimerText.NumFixedWidth(
       
  2926         lifeTimeData.iHours,
       
  2927         EDecimal,
       
  2928         KPhoneLifeTimerHoursLength );
       
  2929     
       
  2930     lifetimerText.Append(locale.TimeSeparator( KTimerMinuteSeparator ) );
       
  2931     
       
  2932     TBuf<KPhoneLifeTimerMinutesLength> mins;
       
  2933     mins.NumFixedWidth(
       
  2934         lifeTimeData.iMinutes,
       
  2935         EDecimal,
       
  2936         KPhoneLifeTimerMinutesLength );
       
  2937     
       
  2938     lifetimerText.Append(mins);
       
  2939     
       
  2940     HBufC* buf = StringLoader::LoadLC(
       
  2941         CPhoneMainResourceResolver::Instance()->
       
  2942         ResolveResourceID(
       
  2943         EPhoneLifeTimeFormat ), lifetimerText );
       
  2944     
       
  2945     TPhoneCmdParamGlobalNote noteParam;
       
  2946     noteParam.SetType( EAknGlobalInformationNote );
       
  2947     noteParam.SetTone( EAvkonSIDInformationTone );
       
  2948     noteParam.SetText( *buf );
       
  2949     noteParam.SetTimeout( KPhoneNoteNoTimeout );
       
  2950     
       
  2951     iViewCommandHandle->ExecuteCommandL( 
       
  2952         EPhoneViewShowGlobalNote, 
       
  2953         &noteParam );
       
  2954     
       
  2955     CleanupStack::PopAndDestroy( buf );
       
  2956     }
  2884     }
  2957 
  2885 
  2958 // ---------------------------------------------------------
  2886 // ---------------------------------------------------------
  2959 // CPhoneState::IsVideoCall
  2887 // CPhoneState::IsVideoCall
  2960 // ---------------------------------------------------------
  2888 // ---------------------------------------------------------
  3438     globalNoteParam.SetType( EAknGlobalInformationNote );
  3366     globalNoteParam.SetType( EAknGlobalInformationNote );
  3439     globalNoteParam.SetTextResourceId(
  3367     globalNoteParam.SetTextResourceId(
  3440         CPhoneMainResourceResolver::Instance()->
  3368         CPhoneMainResourceResolver::Instance()->
  3441         ResolveResourceID( resource ) );
  3369         ResolveResourceID( resource ) );
  3442     globalNoteParam.SetTone( EAvkonSIDInformationTone );
  3370     globalNoteParam.SetTone( EAvkonSIDInformationTone );
       
  3371     globalNoteParam.SetNotificationDialog( ETrue );
  3443     iViewCommandHandle->ExecuteCommandL( EPhoneViewShowGlobalNote,
  3372     iViewCommandHandle->ExecuteCommandL( EPhoneViewShowGlobalNote,
  3444         &globalNoteParam );
  3373         &globalNoteParam );
  3445     }
  3374     }
  3446 
  3375 
  3447 // ---------------------------------------------------------
  3376 // ---------------------------------------------------------
  3454     const TBool phoneIsLocked =
  3383     const TBool phoneIsLocked =
  3455                 CPhonePubSubProxy::Instance()->Value(
  3384                 CPhonePubSubProxy::Instance()->Value(
  3456                 KPSUidCoreApplicationUIs,
  3385                 KPSUidCoreApplicationUIs,
  3457                 KCoreAppUIsAutolockStatus ) > EAutolockOff;
  3386                 KCoreAppUIsAutolockStatus ) > EAutolockOff;
  3458 
  3387 
       
  3388     __PHONELOG1( EBasic,
       
  3389             EPhoneControl,
       
  3390             "CPhoneState::IsAutoLockOn() Status: %d",
       
  3391             phoneIsLocked );
       
  3392     
  3459     return phoneIsLocked;
  3393     return phoneIsLocked;
  3460     }
  3394     }
  3461 
  3395 
  3462 // ---------------------------------------------------------
  3396 // ---------------------------------------------------------
  3463 // CPhoneState::IsKeyLockOn
  3397 // CPhoneState::IsKeyLockOn
  3498 //
  3432 //
  3499 EXPORT_C void CPhoneState::SetTouchPaneButtons( TInt /*aResourceId*/ )
  3433 EXPORT_C void CPhoneState::SetTouchPaneButtons( TInt /*aResourceId*/ )
  3500     {
  3434     {
  3501     if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
  3435     if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
  3502         {
  3436         {
       
  3437         TPhoneCmdParamBoolean muteParam;
       
  3438         muteParam.SetBoolean( iStateMachine->PhoneEngineInfo()->AudioMute() );
       
  3439         
       
  3440         iViewCommandHandle->ExecuteCommand(EPhoneViewSetMuteFlag,&muteParam);
       
  3441                
  3503         TBool emergency( EPEStateIdle != 
  3442         TBool emergency( EPEStateIdle != 
  3504             iStateMachine->PhoneEngineInfo()->CallState( KPEEmergencyCallId ) );
  3443             iStateMachine->PhoneEngineInfo()->CallState( KPEEmergencyCallId ) );
  3505         TPhoneCmdParamBoolean booleanParam;
  3444         TPhoneCmdParamBoolean booleanParam;
  3506         booleanParam.SetBoolean( emergency );
  3445         booleanParam.SetBoolean( emergency );
  3507 
  3446 
  4707 // CPhoneState::SetToolbarDimming
  4646 // CPhoneState::SetToolbarDimming
  4708 // ---------------------------------------------------------
  4647 // ---------------------------------------------------------
  4709 //
  4648 //
  4710 EXPORT_C void CPhoneState::SetBackButtonActive( TBool aActive )
  4649 EXPORT_C void CPhoneState::SetBackButtonActive( TBool aActive )
  4711     {
  4650     {
       
  4651     if(IsAutoLockOn() && aActive) {
       
  4652         // keep back button dimmed device lock case
       
  4653         return;
       
  4654     }
       
  4655     
  4712     if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
  4656     if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) )
  4713         {
  4657         {
  4714         TPhoneCmdParamBoolean booleanParam;
  4658         TPhoneCmdParamBoolean booleanParam;
  4715         booleanParam.SetBoolean( aActive );
  4659         booleanParam.SetBoolean( aActive );
  4716         iViewCommandHandle->ExecuteCommand(
  4660         iViewCommandHandle->ExecuteCommand(