phoneapp/phoneuistates/src/cphoneconferenceandsingleandwaiting.cpp
changeset 77 2be0b271d017
parent 72 c76a0b1755b9
child 76 cfea66083b62
equal deleted inserted replaced
72:c76a0b1755b9 77:2be0b271d017
   124 void CPhoneConferenceAndSingleAndWaiting::HandleIdleL( TInt aCallId )
   124 void CPhoneConferenceAndSingleAndWaiting::HandleIdleL( TInt aCallId )
   125     {
   125     {
   126     __LOGMETHODSTARTEND( EPhoneUIStates,
   126     __LOGMETHODSTARTEND( EPhoneUIStates,
   127         "CPhoneConferenceAndSingleAndWaiting::HandleIdleL()");
   127         "CPhoneConferenceAndSingleAndWaiting::HandleIdleL()");
   128     BeginUiUpdateLC();
   128     BeginUiUpdateLC();
   129     SetTouchPaneButtons( EPhoneWaitingCallButtons );
   129     UpdateUiCommands();
   130 
   130 
   131     TPhoneCmdParamBoolean conferenceExistsForCallId;
   131     TPhoneCmdParamBoolean conferenceExistsForCallId;
   132     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference,
   132     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference,
   133         aCallId, &conferenceExistsForCallId );
   133         aCallId, &conferenceExistsForCallId );
   134 
   134 
   188 //
   188 //
   189 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL( TInt /*aCallId*/ )
   189 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL( TInt /*aCallId*/ )
   190     {
   190     {
   191     __LOGMETHODSTARTEND( EPhoneUIStates,
   191     __LOGMETHODSTARTEND( EPhoneUIStates,
   192         "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL()");
   192         "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL()");
   193     SetTouchPaneButtons( EPhoneWaitingCallButtons );
   193     UpdateUiCommands();
   194     CheckDisableHWKeysAndCallUIL();
       
   195     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
       
   196     iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting );
   194     iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting );
   197     }
   195     }
   198 
   196 
   199 // -----------------------------------------------------------
   197 // -----------------------------------------------------------
   200 // CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL
   198 // CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL
   203 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL( 
   201 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL( 
   204         TInt /*aCallId*/ )
   202         TInt /*aCallId*/ )
   205     {
   203     {
   206     __LOGMETHODSTARTEND( EPhoneUIStates,
   204     __LOGMETHODSTARTEND( EPhoneUIStates,
   207         "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL()");
   205         "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL()");
   208     if( iStateMachine->PhoneStorage()->IsScreenLocked() )
   206     iNumberEntryManager->SetVisibilityIfNumberEntryUsedL( ETrue );
   209         {
   207     UpdateUiCommands();
   210         EnableCallUIL();
       
   211         }
       
   212     iStateMachine->PhoneStorage()->ResetBlockedKeysList();
       
   213 
       
   214     if ( IsNumberEntryUsedL() )
       
   215         {
       
   216         if ( NeedToSendToBackgroundL() )
       
   217             {
       
   218             iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
       
   219             UpdateCbaL( EPhoneCallHandlingInCallCBA );
       
   220             }
       
   221         else
       
   222             {
       
   223             SetNumberEntryVisibilityL(ETrue);
       
   224             }
       
   225         }
       
   226     else
       
   227         {
       
   228         UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
       
   229         // If numberentry is not open just check NeedToSendToBackgroundL and
       
   230         // sendbackround if needed.
       
   231         if ( NeedToSendToBackgroundL() )
       
   232             {
       
   233             iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
       
   234             }
       
   235         }
       
   236     SetTouchPaneButtons( EPhoneConferenceAndSingleButtons );
       
   237     iStateMachine->ChangeState( EPhoneStateConferenceAndSingle );
   208     iStateMachine->ChangeState( EPhoneStateConferenceAndSingle );
   238     }
   209     }
   239 
   210 
   240 // -----------------------------------------------------------
   211 // -----------------------------------------------------------
   241 // CPhoneConferenceAndSingleAndWaiting::HandleConferenceIdleL
   212 // CPhoneConferenceAndSingleAndWaiting::HandleConferenceIdleL
   263     __LOGMETHODSTARTEND( EPhoneUIStates,
   234     __LOGMETHODSTARTEND( EPhoneUIStates,
   264         "CPhoneConferenceAndSingleAndWaiting::HandleKeyMessageL()");
   235         "CPhoneConferenceAndSingleAndWaiting::HandleKeyMessageL()");
   265     switch ( aCode )
   236     switch ( aCode )
   266         {
   237         {
   267         case EKeyYes: // send-key
   238         case EKeyYes: // send-key
   268             if( IsNumberEntryVisibleL() )
   239             if( iNumberEntryManager->IsNumberEntryVisibleL() )
   269                 {
   240                 {
   270                 CallFromNumberEntryL();
   241                 iNumberEntryManager->CallFromNumberEntryL();
   271                 }
   242                 }
   272             else
   243             else
   273                 {
   244                 {
   274                 SendGlobalWarningNoteL(
   245                 SendGlobalWarningNoteL(
   275                     EPhoneNoteTextCallNotAllowed, ETrue );
   246                     EPhoneNoteTextCallNotAllowed, ETrue );
   278 
   249 
   279         default:
   250         default:
   280             CPhoneConferenceAndSingle::HandleKeyMessageL( aMessage, aCode );
   251             CPhoneConferenceAndSingle::HandleKeyMessageL( aMessage, aCode );
   281             break;
   252             break;
   282         }
   253         }
   283     }
       
   284 
       
   285 // -----------------------------------------------------------
       
   286 // CPhoneConferenceAndSingleAndWaiting::HandleKeyEventL
       
   287 // -----------------------------------------------------------
       
   288 //
       
   289 void CPhoneConferenceAndSingleAndWaiting::HandleKeyEventL(
       
   290     const TKeyEvent& aKeyEvent,
       
   291     TEventCode /*aEventCode*/ )
       
   292     {
       
   293     if( EKeyDeviceF == aKeyEvent.iCode )
       
   294         {
       
   295         __PHONELOG( EBasic, EPhoneUIStates,
       
   296             "CPhoneConferenceAndSingleAndWaiting::HandleKeyMessageL-deviceF" );
       
   297         HandleHoldSwitchL();
       
   298         }
       
   299     }
       
   300 
       
   301 // -----------------------------------------------------------
       
   302 // CPhoneConferenceAndSingleAndWaiting::UpdateInCallCbaL
       
   303 // -----------------------------------------------------------
       
   304 //
       
   305 void CPhoneConferenceAndSingleAndWaiting::UpdateInCallCbaL()
       
   306     {
       
   307     __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConferenceAndSingleAndWaiting::UpdateInCallCbaL() ");
       
   308     UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA );
       
   309     }
   254     }
   310 
   255 
   311 // -----------------------------------------------------------
   256 // -----------------------------------------------------------
   312 // CPhoneConferenceAndSingleAndWaiting::MakeTransitionAccordingToActiveCallsL
   257 // CPhoneConferenceAndSingleAndWaiting::MakeTransitionAccordingToActiveCallsL
   313 // -----------------------------------------------------------
   258 // -----------------------------------------------------------
   325             callStateData.SetCallState( EPEStateRinging );
   270             callStateData.SetCallState( EPEStateRinging );
   326             iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   271             iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   327                 &callStateData );
   272                 &callStateData );
   328             if ( callStateData.CallId() != KErrNotFound )
   273             if ( callStateData.CallId() != KErrNotFound )
   329                 {
   274                 {
   330                 TPhoneCmdParamCallHeaderData callHeaderParam;
       
   331                 callHeaderParam.SetCallState( EPEStateRinging );
       
   332                 SetCallHeaderTextsForCallComingInL( callStateData.CallId(), EFalse, &callHeaderParam );
       
   333 
       
   334                 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble,
   275                 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble,
   335                     callStateData.CallId(),
   276                     callStateData.CallId() );
   336                     &callHeaderParam );
       
   337                 
   277                 
   338                 iCbaManager->UpdateIncomingCbaL( callStateData.CallId() );
       
   339                 CheckDisableHWKeysAndCallUIL();
       
   340                 SetTouchPaneButtons( EPhoneIncomingCallButtons );
       
   341                 SetRingingTonePlaybackL( callStateData.CallId() );
   278                 SetRingingTonePlaybackL( callStateData.CallId() );
       
   279                 UpdateUiCommands();
   342                 SetBackButtonActive(EFalse);
   280                 SetBackButtonActive(EFalse);
   343                 iStateMachine->ChangeState( EPhoneStateIncoming );
   281                 iStateMachine->ChangeState( EPhoneStateIncoming );
   344                 }
   282                 }
   345             else
   283             else
   346                 {
   284                 {
   347                 SetDefaultFlagsL();
   285                 SetDefaultFlagsL();
   348                 UpdateCbaL( EPhoneEmptyCBA );
       
   349                 iStateMachine->ChangeState( EPhoneStateIdle );
   286                 iStateMachine->ChangeState( EPhoneStateIdle );
   350                 }
   287                 }
   351             }
   288             }
   352             break;
   289             break;
   353          case EOneActiveCall: // Go to Single And Waiting state
   290          case EOneActiveCall: // Go to Single And Waiting state
   354             {
   291             {
   355             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   292             UpdateUiCommands();
   356             SetTouchPaneButtons( EPhoneWaitingCallButtons );
       
   357             CheckDisableHWKeysAndCallUIL();
       
   358             iStateMachine->ChangeState( EPhoneStateWaitingInSingle );
   293             iStateMachine->ChangeState( EPhoneStateWaitingInSingle );
   359             }
   294             }
   360             break;
   295             break;
   361          case ETwoActiveCalls: // Go to Two Singles And Waiting state
   296          case ETwoActiveCalls: // Go to Two Singles And Waiting state
   362             {
   297             {
   363             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   298             UpdateUiCommands();
   364             CheckDisableHWKeysAndCallUIL();
       
   365             SetTouchPaneButtons( EPhoneWaitingCallButtons );
       
   366             iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
   299             iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
   367             }
   300             }
   368             break;
   301             break;
   369          default:
   302          default:
   370            // Too many active calls to handle reliable state change now.
   303            // Too many active calls to handle reliable state change now.