phoneapp/phoneuistates/src/cphonetwosingles.cpp
changeset 77 2be0b271d017
parent 72 c76a0b1755b9
child 76 cfea66083b62
equal deleted inserted replaced
72:c76a0b1755b9 77:2be0b271d017
   155 
   155 
   156     switch( activeCallCount.Integer() )
   156     switch( activeCallCount.Integer() )
   157         {
   157         {
   158         case EOneActiveCall:
   158         case EOneActiveCall:
   159             {   
   159             {   
   160             if ( IsNumberEntryUsedL() )
   160             iNumberEntryManager->SetVisibilityIfNumberEntryUsedL(ETrue);
   161                 {
   161             UpdateUiCommands();
   162                 SetNumberEntryVisibilityL(ETrue);
       
   163                 }
       
   164             else
       
   165                 {
       
   166                 UpdateCbaL( EPhoneCallHandlingInCallCBA );
       
   167                 }
       
   168             
       
   169             TPhoneCmdParamCallStateData callStateData;  
       
   170             callStateData.SetCallState( EPEStateHeld );
       
   171             iViewCommandHandle->HandleCommandL(
       
   172                 EPhoneViewGetCallIdByState, &callStateData );
       
   173             TInt holdCallId = callStateData.CallId();
       
   174             
       
   175             TPhoneCmdParamBoolean holdFlag;
       
   176             if ( holdCallId < 0 )
       
   177                 {
       
   178                 holdFlag.SetBoolean( EFalse );
       
   179                 }
       
   180             else
       
   181                 {
       
   182                 holdFlag.SetBoolean( ETrue );
       
   183                 }
       
   184             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
       
   185             SetTouchPaneButtons( EPhoneIncallButtons );
       
   186             iStateMachine->ChangeState( EPhoneStateSingle ); 
   162             iStateMachine->ChangeState( EPhoneStateSingle ); 
   187             }
   163             }
   188             
   164             
   189         default:
   165         default:
   190             break;
   166             break;
   204         "CPhoneTwoSingles::HandleKeyMessageL()");
   180         "CPhoneTwoSingles::HandleKeyMessageL()");
   205     switch ( aCode )
   181     switch ( aCode )
   206         {
   182         {
   207         case EKeyYes: // send-key
   183         case EKeyYes: // send-key
   208             {
   184             {
   209             if ( !IsNumberEntryVisibleL() )
   185             if ( !iNumberEntryManager->IsNumberEntryVisibleL() )
   210                 {
   186                 {
   211                 iStateMachine->SendPhoneEngineMessage(
   187                 iStateMachine->SendPhoneEngineMessage(
   212                     CPEPhoneModelIF::EPEMessageSwap );
   188                     CPEPhoneModelIF::EPEMessageSwap );
   213                 }
   189                 }
   214             else
   190             else
   215                 {
   191                 {
   216                 CallFromNumberEntryL();
   192                 iNumberEntryManager->CallFromNumberEntryL();
   217                 }
   193                 }
   218             break;    
   194             break;    
   219             }
   195             }
   220 
   196 
   221         default:
   197         default:
   230 //
   206 //
   231 void CPhoneTwoSingles::HandleConnectedL( TInt aCallId )
   207 void CPhoneTwoSingles::HandleConnectedL( TInt aCallId )
   232     {
   208     {
   233     __LOGMETHODSTARTEND( EPhoneUIStates, 
   209     __LOGMETHODSTARTEND( EPhoneUIStates, 
   234         "CPhoneTwoSingles::HandleConnectedL()");
   210         "CPhoneTwoSingles::HandleConnectedL()");
   235     
   211     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId );
   236     TPhoneCmdParamCallHeaderData callHeaderParam;
   212     UpdateUiCommands();
   237     callHeaderParam.SetCallState( EPEStateConnected );
       
   238     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
       
   239         &callHeaderParam );
       
   240     
       
   241     SetTouchPaneButtons( EPhoneIncallButtons );
       
   242     }
   213     }
   243     
   214     
   244 // -----------------------------------------------------------
   215 // -----------------------------------------------------------
   245 // CPhoneTwoSingles::HandleHeldL
   216 // CPhoneTwoSingles::HandleHeldL
   246 // -----------------------------------------------------------
   217 // -----------------------------------------------------------
   247 //
   218 //
   248 void CPhoneTwoSingles::HandleHeldL( TInt aCallId )
   219 void CPhoneTwoSingles::HandleHeldL( TInt aCallId )
   249     {
   220     {
   250     __LOGMETHODSTARTEND( EPhoneUIStates, 
   221     __LOGMETHODSTARTEND( EPhoneUIStates, 
   251         "CPhoneTwoSingles::HandleHeldL()");
   222         "CPhoneTwoSingles::HandleHeldL()");
   252     TPhoneCmdParamCallHeaderData callHeaderParam;
   223     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId );
   253     callHeaderParam.SetCallState( EPEStateHeld );
   224     UpdateUiCommands();
   254     
       
   255     TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC );
       
   256     TInt callLabelId = CPhoneMainResourceResolver::Instance()->
       
   257             ResolveResourceID( EPhoneCallOnHold );
       
   258 
       
   259     StringLoader::Load( 
       
   260         labelText, 
       
   261         callLabelId, 
       
   262         CCoeEnv::Static() );        
       
   263     callHeaderParam.SetLabelText( labelText );
       
   264     
       
   265     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
       
   266         &callHeaderParam );
       
   267     
       
   268     SetTouchPaneButtons( EPhoneIncallButtons );
       
   269     }
   225     }
   270     
   226     
   271 // -----------------------------------------------------------
   227 // -----------------------------------------------------------
   272 // CPhoneTwoSingles::HandleNumberEntryClearedL()
   228 // CPhoneTwoSingles::HandleNumberEntryClearedL()
   273 // -----------------------------------------------------------
   229 // -----------------------------------------------------------
   274 //
   230 //
   275 EXPORT_C void CPhoneTwoSingles::HandleNumberEntryClearedL()
   231 EXPORT_C void CPhoneTwoSingles::HandleNumberEntryClearedL()
   276     {
   232     {
   277     __LOGMETHODSTARTEND( EPhoneUIStates, 
   233     __LOGMETHODSTARTEND( EPhoneUIStates, 
   278         "CPhoneTwoSingles::HandleNumberEntryClearedL()");
   234         "CPhoneTwoSingles::HandleNumberEntryClearedL()");
   279     UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
   235     UpdateUiCommands();
   280     }
   236     }
   281 
   237 
   282 // -----------------------------------------------------------
   238 // -----------------------------------------------------------
   283 // CPhoneTwoSingles::HandleConnectedConferenceL
   239 // CPhoneTwoSingles::HandleConnectedConferenceL
   284 // -----------------------------------------------------------
   240 // -----------------------------------------------------------
   285 //
   241 //
   286 EXPORT_C void CPhoneTwoSingles::HandleConnectedConferenceL( TInt aCallId )
   242 EXPORT_C void CPhoneTwoSingles::HandleConnectedConferenceL( TInt aCallId )
   287     {
   243     {
   288     __LOGMETHODSTARTEND( EPhoneUIStates, 
   244     __LOGMETHODSTARTEND( EPhoneUIStates, 
   289         "CPhoneTwoSingles::HandleConnectedConferenceL()");
   245         "CPhoneTwoSingles::HandleConnectedConferenceL()");
   290     TPhoneCmdParamCallHeaderData callHeaderParam;
       
   291 
       
   292     TInt callLabelId;
       
   293     TBuf<KPhoneCallHeaderLabelMaxLength> conferenceText( KNullDesC );
       
   294     callLabelId = CPhoneMainResourceResolver::Instance()->
       
   295             ResolveResourceID( EPhoneCLIConferenceCall );
       
   296 
       
   297     StringLoader::Load( 
       
   298         conferenceText, 
       
   299         callLabelId, 
       
   300         CCoeEnv::Static() );
       
   301     callHeaderParam.SetCLIText( conferenceText, TPhoneCmdParamCallHeaderData::ERight );
       
   302     
       
   303     callHeaderParam.SetCallState(EPEStateConnectedConference);
       
   304     BeginUiUpdateLC();
   246     BeginUiUpdateLC();
   305     
   247     iViewCommandHandle->ExecuteCommandL( EPhoneViewCreateConference, aCallId );
   306     callHeaderParam.SetCiphering(
   248     UpdateUiCommands();
   307         iStateMachine->PhoneEngineInfo()->IsSecureCall( aCallId ) );
       
   308         
       
   309     callHeaderParam.SetCipheringIndicatorAllowed(
       
   310         iStateMachine->PhoneEngineInfo()->SecureSpecified() );
       
   311     
       
   312     // Service identifier must be given so that service specific settings
       
   313     // can be taken into account at phoneuiview.
       
   314     callHeaderParam.SetServiceId( 
       
   315         iStateMachine->PhoneEngineInfo()->ServiceId( aCallId ) );
       
   316     
       
   317     iViewCommandHandle->ExecuteCommandL( EPhoneViewCreateConference, aCallId,
       
   318         &callHeaderParam );
       
   319 
       
   320     TPhoneCmdParamBoolean holdFlag;
       
   321     holdFlag.SetBoolean( EFalse );
       
   322     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );
       
   323 
       
   324     SetTouchPaneButtons( EPhoneConferenceButtons );
       
   325     EndUiUpdate();
   249     EndUiUpdate();
   326     
       
   327     UpdateCbaL( EPhoneCallHandlingInCallCBA );
       
   328     iStateMachine->ChangeState( EPhoneStateConference );
   250     iStateMachine->ChangeState( EPhoneStateConference );
   329     }
   251     }
   330 
   252 
   331 // -----------------------------------------------------------
   253 // -----------------------------------------------------------
   332 // CPhoneTwoSingles::HandleIncomingL
   254 // CPhoneTwoSingles::HandleIncomingL
   333 // -----------------------------------------------------------
   255 // -----------------------------------------------------------
   334 //
   256 //
   335 void CPhoneTwoSingles::HandleIncomingL( TInt aCallId )
   257 void CPhoneTwoSingles::HandleIncomingL( TInt aCallId )
   336     {
   258     {
   337     __LOGMETHODSTARTEND( EPhoneUIStates, 
   259     __LOGMETHODSTARTEND( EPhoneUIStates, 
   338         "CPhoneTwoSingles::HandleIncomingL()");
   260             "CPhoneTwoSingles::HandleIncomingL()");
   339     BeginUiUpdateLC();
   261     DisplayCallHeaderL( aCallId, ECheckIfNEUsedBeforeSettingVisibilityFalse );
   340     
       
   341     // Get allow waiting call header param value.
       
   342     TPhoneCmdParamBoolean dialerParam;
       
   343     dialerParam.SetBoolean( ETrue );
       
   344     AllowShowingOfWaitingCallHeaderL( dialerParam );
       
   345     
       
   346     // Close fast swap window if it's displayed
       
   347     CEikonEnv::Static()->DismissTaskList();
       
   348     
       
   349     DisplayIncomingCallL( aCallId, dialerParam );
       
   350     CheckDisableHWKeysAndCallUIL();
       
   351     SetTouchPaneButtons( EPhoneWaitingCallButtons );
       
   352     EndUiUpdate();
       
   353     
       
   354     iCbaManager->SetCbaL( EPhoneCallHandlingIncomingRejectCBA );
       
   355     iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
   262     iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
   356     }
   263     }
   357 
   264 
   358 // -----------------------------------------------------------
       
   359 // CPhoneTwoSingles::DisplayIncomingCallL
       
   360 // -----------------------------------------------------------
       
   361 //
       
   362 void CPhoneTwoSingles::DisplayIncomingCallL( 
       
   363     TInt aCallId, 
       
   364     const TPhoneCmdParamBoolean aCommandParam )
       
   365     {
       
   366     __LOGMETHODSTARTEND( EPhoneUIStates,
       
   367          "CPhoneTwoSingles::DisplayIncomingCallL()"); 
       
   368     // Cannot delete active note, e.g. New call query, 
       
   369     // but show waiting note with or without caller name
       
   370     if ( IsAnyQueryActiveL() || !aCommandParam.Boolean() )
       
   371         {
       
   372         CallWaitingNoteL( aCallId );
       
   373         }
       
   374     else
       
   375         {
       
   376         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
       
   377         }
       
   378 
       
   379     // Indicate that the Phone needs to be sent to the background if
       
   380     // an application other than the top application is in the foreground
       
   381     TPhoneCmdParamBoolean booleanParam;
       
   382     booleanParam.SetBoolean( !TopAppIsDisplayedL() );
       
   383     iViewCommandHandle->ExecuteCommandL( 
       
   384         EPhoneViewSetNeedToSendToBackgroundStatus,
       
   385         &booleanParam );
       
   386 
       
   387     TPhoneCmdParamInteger uidParam;
       
   388     uidParam.SetInteger( KUidPhoneApplication.iUid );
       
   389     iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
       
   390         &uidParam );
       
   391     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication,
       
   392         &uidParam );
       
   393 
       
   394     CPhoneState::DisplayHeaderForCallComingInL( aCallId, ETrue ); //waiting call 
       
   395     }
       
   396     
       
   397 // -----------------------------------------------------------
       
   398 // CPhoneTwoSingles::UpdateInCallCbaL
       
   399 // -----------------------------------------------------------
       
   400 //
       
   401 EXPORT_C void CPhoneTwoSingles::UpdateInCallCbaL()
       
   402     {
       
   403     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneTwoSingles::UpdateInCallCbaL() ");
       
   404     UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
       
   405     }
       
   406 
       
   407 // End of File
   265 // End of File