phoneapp/phoneuistates/src/cphoneconferenceandwaitingandcallsetup.cpp
changeset 77 2be0b271d017
parent 72 c76a0b1755b9
child 76 cfea66083b62
equal deleted inserted replaced
72:c76a0b1755b9 77:2be0b271d017
   151     __LOGMETHODSTARTEND( EPhoneUIStates, 
   151     __LOGMETHODSTARTEND( EPhoneUIStates, 
   152         "CPhoneConferenceAndWaitingAndCallSetup::HandleKeyMessageL");
   152         "CPhoneConferenceAndWaitingAndCallSetup::HandleKeyMessageL");
   153     switch ( aCode )
   153     switch ( aCode )
   154         {
   154         {
   155         case EKeyYes: // send-key
   155         case EKeyYes: // send-key
   156             if( IsNumberEntryVisibleL() )
   156             if( iNumberEntryManager->IsNumberEntryVisibleL() )
   157                  {
   157                  {
   158                 CallFromNumberEntryL();
   158                  iNumberEntryManager->CallFromNumberEntryL();
   159                  }
   159                  }
   160              else
   160              else
   161                  {
   161                  {
   162                 // Number entry is behind waiting call bubble.
   162                 // Number entry is behind waiting call bubble.
   163                 // We can't answer to call in this state so display
   163                 // We can't answer to call in this state so display
   172             break;
   172             break;
   173         }
   173         }
   174     }
   174     }
   175 
   175 
   176 // -----------------------------------------------------------
   176 // -----------------------------------------------------------
   177 // CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL
       
   178 // -----------------------------------------------------------
       
   179 //
       
   180 void CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL()
       
   181     {
       
   182     __LOGMETHODSTARTEND(EPhoneControl, 
       
   183         "CPhoneConferenceAndWaitingAndCallSetup::SetCallSetupCbaL() "); 
       
   184     if ( iAlerting )
       
   185         {
       
   186         UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA );
       
   187         }
       
   188     else
       
   189         {
       
   190         UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
       
   191         }
       
   192     }
       
   193 
       
   194 // -----------------------------------------------------------
       
   195 // CPhoneConferenceAndWaitingAndCallSetup::HandleConnectingL
   177 // CPhoneConferenceAndWaitingAndCallSetup::HandleConnectingL
   196 // -----------------------------------------------------------
   178 // -----------------------------------------------------------
   197 //
   179 //
   198 void CPhoneConferenceAndWaitingAndCallSetup::HandleConnectingL( TInt aCallId )
   180 void CPhoneConferenceAndWaitingAndCallSetup::HandleConnectingL( TInt aCallId )
   199     {
   181     {
   206     TPhoneCmdParamBoolean globalNotifierParam;
   188     TPhoneCmdParamBoolean globalNotifierParam;
   207     globalNotifierParam.SetBoolean( EFalse );
   189     globalNotifierParam.SetBoolean( EFalse );
   208     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
   190     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
   209         &globalNotifierParam );
   191         &globalNotifierParam );
   210     
   192     
   211     TPhoneCmdParamCallHeaderData callHeaderParam;
   193     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId );
   212     callHeaderParam.SetCallState( EPEStateConnecting );
       
   213     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
       
   214         &callHeaderParam );
       
   215         
   194         
   216     if ( !IsNumberEntryVisibleL() )
   195     iNumberEntryManager->RemoveNumberEntryIfVisibilityIsFalseL();
   217         {
   196 
   218         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
   197     UpdateUiCommands();
   219         }
       
   220     
       
   221     EndUiUpdate();
   198     EndUiUpdate();
   222     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
       
   223     }
   199     }
   224 
   200 
   225 // -----------------------------------------------------------
   201 // -----------------------------------------------------------
   226 // CPhoneConferenceAndWaitingAndCallSetup::HandleConnectedL
   202 // CPhoneConferenceAndWaitingAndCallSetup::HandleConnectedL
   227 // -----------------------------------------------------------
   203 // -----------------------------------------------------------
   230     {
   206     {
   231     __LOGMETHODSTARTEND( EPhoneUIStates, 
   207     __LOGMETHODSTARTEND( EPhoneUIStates, 
   232         "CPhoneConferenceAndWaitingAndCallSetup::HandleConnectedL");
   208         "CPhoneConferenceAndWaitingAndCallSetup::HandleConnectedL");
   233     BeginUiUpdateLC();
   209     BeginUiUpdateLC();
   234     UpdateRemoteInfoDataL ( aCallId );
   210     UpdateRemoteInfoDataL ( aCallId );
   235     
   211 
   236     TPhoneCmdParamCallHeaderData callHeaderParam;
   212     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId );
   237     callHeaderParam.SetCallState( EPEStateConnected );
   213     
   238     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   214     iNumberEntryManager->RemoveNumberEntryIfVisibilityIsFalseL();
   239         &callHeaderParam );
   215     
   240     
   216     UpdateUiCommands();
   241     if ( !IsNumberEntryVisibleL() )
       
   242         {
       
   243         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
       
   244         }
       
   245     
       
   246     SetTouchPaneButtons( EPhoneWaitingCallButtons );
       
   247     EndUiUpdate();
   217     EndUiUpdate();
   248     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );  
       
   249     iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );
   218     iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );
   250     }
   219     }
   251 
   220 
   252 // -----------------------------------------------------------
   221 // -----------------------------------------------------------
   253 // CPhoneConferenceAndWaitingAndCallSetup::UpdateConnectingCbaL
   222 // CPhoneConferenceAndWaitingAndCallSetup::UpdateConnectingCbaL
   254 // -----------------------------------------------------------
   223 // -----------------------------------------------------------
   255 //
   224 //
   256 void CPhoneConferenceAndWaitingAndCallSetup::UpdateConnectingCbaL()
   225 void CPhoneConferenceAndWaitingAndCallSetup::UpdateConnectingCbaL()
   257     {
   226     {
   258     __LOGMETHODSTARTEND(EPhoneControl, 
   227     __LOGMETHODSTARTEND(EPhoneControl, 
   259         "CPhoneConferenceAndCallSetup::UpdateInCallCbaL() ");
   228         "CPhoneConferenceAndCallSetup::UpdateConnectingCbaL() ");
   260     UpdateCbaL( EPhoneCallHandlingInCallCBA );
   229     UpdateUiCommands();
   261     } 
   230     } 
   262     
   231     
   263 // -----------------------------------------------------------
   232 // -----------------------------------------------------------
   264 // CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL
   233 // CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL
   265 // -----------------------------------------------------------
   234 // -----------------------------------------------------------
   268     {
   237     {
   269     __LOGMETHODSTARTEND( EPhoneUIStates, 
   238     __LOGMETHODSTARTEND( EPhoneUIStates, 
   270         "CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL");
   239         "CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL");
   271     BeginUiUpdateLC();
   240     BeginUiUpdateLC();
   272     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   241     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   273     if ( IsNumberEntryUsedL() )
   242     iNumberEntryManager->SetVisibilityIfNumberEntryUsedL(ETrue);
   274         {
       
   275         SetNumberEntryVisibilityL(ETrue);
       
   276         }
       
   277 
   243 
   278     TPhoneCmdParamCallStateData callStateData;
   244     TPhoneCmdParamCallStateData callStateData;
   279     callStateData.SetCallState( EPEStateConnected );
   245     callStateData.SetCallState( EPEStateConnected );
   280     iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   246     iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   281         &callStateData );
   247         &callStateData );
   282  
   248  
   283     if( callStateData.CallId() > KErrNotFound ) //  No need update cba's. 
   249     if( callStateData.CallId() > KErrNotFound ) //  No need update cba's. 
   284         {        
   250         {        
   285         SetTouchPaneButtons( EPhoneCallSetupButtons );
   251         UpdateUiCommands();
   286         iStateMachine->ChangeState( EPhoneStateSingleAndCallSetupAndWaiting );
   252         iStateMachine->ChangeState( EPhoneStateSingleAndCallSetupAndWaiting );
   287         }
   253         }
   288     else 
   254     else 
   289         {
   255         {
   290         callStateData.SetCallState( EPEStateHeld );
   256         callStateData.SetCallState( EPEStateHeld );
   291         iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   257         iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   292             &callStateData );
   258             &callStateData );
   293         
   259         
       
   260         UpdateUiCommands();
       
   261         
   294         if( callStateData.CallId() > KErrNotFound )
   262         if( callStateData.CallId() > KErrNotFound )
   295             {
   263             {     
   296             SetTouchPaneButtons( EPhoneCallSetupButtons ); 
       
   297             iStateMachine->ChangeState( EPhoneStateSingleAndCallSetupAndWaiting );
   264             iStateMachine->ChangeState( EPhoneStateSingleAndCallSetupAndWaiting );
   298             }
   265             }
   299         else
   266         else
   300             {
   267             {
   301             // Reset Hold flag to view
       
   302             TPhoneCmdParamBoolean holdFlag;
       
   303             holdFlag.SetBoolean( EFalse );
       
   304             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
       
   305 
       
   306             SetTouchPaneButtons( EPhoneCallSetupButtons ); 
       
   307             iStateMachine->ChangeState( EPhoneStateCallSetupAndWaiting );
   268             iStateMachine->ChangeState( EPhoneStateCallSetupAndWaiting );
   308             }
   269             }
   309         }
   270         }
   310     EndUiUpdate();
   271     EndUiUpdate();
   311     }
   272     }
   353             callStateData.SetCallState( EPEStateRinging );
   314             callStateData.SetCallState( EPEStateRinging );
   354             iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   315             iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   355                 &callStateData );
   316                 &callStateData );
   356             if( callStateData.CallId() > KErrNotFound )
   317             if( callStateData.CallId() > KErrNotFound )
   357                 { 
   318                 { 
   358                 if ( IsNumberEntryUsedL() )
   319                 // Show the number entry if callsetup failed with number busy
   359                     {
   320                 // etc reason.
   360                     // Show the number entry if callsetup failed with number busy
   321                 iNumberEntryManager->SetVisibilityIfNumberEntryUsedL(ETrue);
   361                     // etc reason.
   322                 UpdateUiCommands();
   362                     SetNumberEntryVisibilityL(ETrue);
       
   363                     }
       
   364                 SetTouchPaneButtons( EPhoneWaitingCallButtons );
       
   365                 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
       
   366                 iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting );
   323                 iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting );
   367                 }
   324                 }
   368             else
   325             else
   369                 {
   326                 {
   370                 SetTouchPaneButtons( EPhoneCallSetupButtons );
   327                 UpdateUiCommands();
   371                 UpdateCbaL( EPhoneCallHandlingInCallCBA );
       
   372                 iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
   328                 iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
   373                 }
   329                 }
   374             EndUiUpdate();
   330             EndUiUpdate();
   375             }
   331             }
   376         }
   332         }