phoneapp/phoneuistates/src/cphoneconferenceandwaitingandcallsetup.cpp
changeset 50 377c906a8701
parent 46 bc5a64e5bc3c
child 65 2a5d4ab426d3
equal deleted inserted replaced
46:bc5a64e5bc3c 50:377c906a8701
    52 // (other items were commented in a header).
    52 // (other items were commented in a header).
    53 // -----------------------------------------------------------
    53 // -----------------------------------------------------------
    54 //
    54 //
    55 CPhoneConferenceAndWaitingAndCallSetup::~CPhoneConferenceAndWaitingAndCallSetup()
    55 CPhoneConferenceAndWaitingAndCallSetup::~CPhoneConferenceAndWaitingAndCallSetup()
    56     {
    56     {
    57     // Reset flag
       
    58     if ( iViewCommandHandle )
       
    59         {
       
    60         TPhoneCmdParamBoolean dtmfSendFlag;
       
    61         dtmfSendFlag.SetBoolean( EFalse );
       
    62         iViewCommandHandle->ExecuteCommand( EPhoneViewSetDtmfOptionsFlag, 
       
    63             &dtmfSendFlag );
       
    64         }
       
    65     }
    57     }
    66 
    58 
    67 // -----------------------------------------------------------
    59 // -----------------------------------------------------------
    68 // CPhoneConferenceAndWaitingAndCallSetup::ConstructL()
    60 // CPhoneConferenceAndWaitingAndCallSetup::ConstructL()
    69 // Constructor
    61 // Constructor
   147     
   139     
   148     switch( aCommand )
   140     switch( aCommand )
   149         {   
   141         {   
   150         case EPhoneDtmfDialerCancel:
   142         case EPhoneDtmfDialerCancel:
   151             {
   143             {
   152             CloseDTMFEditorL();
       
   153             }
   144             }
   154             break;    
   145             break;    
   155     
   146     
   156         default:
   147         default:
   157             commandStatus = CPhoneConference::HandleCommandL( aCommand );
   148             commandStatus = CPhoneConference::HandleCommandL( aCommand );
   195             break;
   186             break;
   196         }
   187         }
   197     }
   188     }
   198 
   189 
   199 // -----------------------------------------------------------
   190 // -----------------------------------------------------------
   200 // CPhoneConferenceAndWaitingAndCallSetup::OpenMenuBarL
       
   201 // -----------------------------------------------------------
       
   202 //
       
   203 void CPhoneConferenceAndWaitingAndCallSetup::OpenMenuBarL()
       
   204     {
       
   205     __LOGMETHODSTARTEND( EPhoneUIStates, 
       
   206         "CPhoneConferenceAndWaitingAndCallSetup::OpenMenuBarL");
       
   207 
       
   208     // Set specific flag to view so that DTMF menu item available
       
   209     TPhoneCmdParamBoolean dtmfSendFlag;
       
   210     dtmfSendFlag.SetBoolean( ETrue );
       
   211     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfOptionsFlag, 
       
   212         &dtmfSendFlag );
       
   213    
       
   214     TInt resourceId ( EPhoneAlertingWaitingAndConfHeldCallMenuBar );
       
   215     if ( iOnScreenDialer && IsDTMFEditorVisibleL() )
       
   216         {
       
   217         resourceId = EPhoneDtmfDialerMenubar;
       
   218         }
       
   219     else if ( IsNumberEntryVisibleL() )
       
   220         {
       
   221         resourceId = 
       
   222             EPhoneAlertingWaitingAndConfHeldCallMenuBarWithNumberEntry;
       
   223         }
       
   224     else if ( IsConferenceBubbleInSelectionMode() )
       
   225         {
       
   226         resourceId = EPhoneConfCallParticipantsDropMenubar;    
       
   227         }         
       
   228 
       
   229     TPhoneCmdParamInteger integerParam;
       
   230     integerParam.SetInteger( 
       
   231                 CPhoneMainResourceResolver::Instance()->
       
   232                 ResolveResourceID( resourceId ) );    
       
   233 
       
   234     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, 
       
   235         &integerParam );
       
   236     }
       
   237 
       
   238 // -----------------------------------------------------------
       
   239 // CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL
   191 // CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL
   240 // -----------------------------------------------------------
   192 // -----------------------------------------------------------
   241 //
   193 //
   242 void CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL()
   194 void CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL()
   243     {
   195     {
   281     callHeaderParam.SetCallState( EPEStateConnecting );
   233     callHeaderParam.SetCallState( EPEStateConnecting );
   282     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   234     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   283         &callHeaderParam );
   235         &callHeaderParam );
   284         
   236         
   285     // Remove the number entry if it isn't DTMF dialer
   237     // Remove the number entry if it isn't DTMF dialer
   286     if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() )
   238     if ( !iOnScreenDialer || !IsNumberEntryVisibleL() )
   287         {
   239         {
   288         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
   240         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
   289         }
   241         }
   290     
   242     
   291     EndUiUpdate();
   243     EndUiUpdate();
   315     // Capturing keys and number entry must be removed because some
   267     // Capturing keys and number entry must be removed because some
   316     // networks jump over connecting state directly to connected state.
   268     // networks jump over connecting state directly to connected state.
   317     CaptureKeysDuringCallNotificationL( EFalse );
   269     CaptureKeysDuringCallNotificationL( EFalse );
   318     
   270     
   319     // Remove the number entry if it isn't DTMF dialer
   271     // Remove the number entry if it isn't DTMF dialer
   320     if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() )
   272     if ( !iOnScreenDialer || !IsNumberEntryVisibleL() )
   321         {
   273         {
   322         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
   274         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry );
   323         }
   275         }
   324     
   276     
   325     SetTouchPaneButtons( EPhoneWaitingCallButtons );    
   277     SetTouchPaneButtons( EPhoneWaitingCallButtons );    
   326     SetTouchPaneButtonDisabled( EPhoneCallComingCmdAnswer );
       
   327     EndUiUpdate();
   278     EndUiUpdate();
   328     
   279     
   329     // Go to Conference And Single And Waiting state
   280     // Go to Conference And Single And Waiting state
   330     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );  
   281     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );  
   331     iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );                
   282     iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );                
   350 void CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL()
   301 void CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL()
   351     {
   302     {
   352     __LOGMETHODSTARTEND( EPhoneUIStates, 
   303     __LOGMETHODSTARTEND( EPhoneUIStates, 
   353         "CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL");
   304         "CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL");
   354     
   305     
   355     BeginTransEffectLC( ENumberEntryOpen );
       
   356     BeginUiUpdateLC();
   306     BeginUiUpdateLC();
   357         
   307         
   358     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   308     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   359         
       
   360     // Close menu bar, if it is displayed
       
   361     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
       
   362 
   309 
   363     if ( IsNumberEntryUsedL() )
   310     if ( IsNumberEntryUsedL() )
   364         {
   311         {
   365         // Show the number entry if it exists
   312         // Show the number entry if it exists
   366         SetNumberEntryVisibilityL(ETrue);
   313         SetNumberEntryVisibilityL(ETrue);
   398             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );       
   345             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag );       
   399 
   346 
   400             // Go to Call Setup And Waiting state
   347             // Go to Call Setup And Waiting state
   401             SetTouchPaneButtons( EPhoneCallSetupButtons ); 
   348             SetTouchPaneButtons( EPhoneCallSetupButtons ); 
   402 
   349 
   403             SetToolbarDimming( ETrue );
       
   404 
       
   405             // No need update cbas            
   350             // No need update cbas            
   406             iStateMachine->ChangeState( EPhoneStateCallSetupAndWaiting );
   351             iStateMachine->ChangeState( EPhoneStateCallSetupAndWaiting );
   407             }
   352             }
   408         }
   353         }
   409     EndUiUpdate();
   354     EndUiUpdate();          
   410     EndTransEffect();               
       
   411     }
   355     }
   412 
   356 
   413 // -----------------------------------------------------------
   357 // -----------------------------------------------------------
   414 // CPhoneConferenceAndWaitingAndCallSetup::HandleIdleL
   358 // CPhoneConferenceAndWaitingAndCallSetup::HandleIdleL
   415 // -----------------------------------------------------------
   359 // -----------------------------------------------------------
   425     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
   369     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled,
   426         &globalNotifierParam );
   370         &globalNotifierParam );
   427 
   371 
   428     // Stop capturing keys
   372     // Stop capturing keys
   429     CaptureKeysDuringCallNotificationL( EFalse );
   373     CaptureKeysDuringCallNotificationL( EFalse );
   430 
       
   431     // Close menu bar, if it is displayed
       
   432     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
       
   433 
   374 
   434     TPhoneCmdParamBoolean conferenceExistsForCallId;
   375     TPhoneCmdParamBoolean conferenceExistsForCallId;
   435     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference,
   376     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference,
   436         aCallId, &conferenceExistsForCallId );
   377         aCallId, &conferenceExistsForCallId );
   437     
   378     
   455             // Idle message came for last conference member.
   396             // Idle message came for last conference member.
   456             // Don't do anything, wait for ConferenceIdle message
   397             // Don't do anything, wait for ConferenceIdle message
   457             }            
   398             }            
   458         else
   399         else
   459             {
   400             {
   460             BeginTransEffectLC( ENumberEntryOpen );
       
   461             BeginUiUpdateLC();
   401             BeginUiUpdateLC();
   462             TPhoneCmdParamCallStateData callStateData;
   402             TPhoneCmdParamCallStateData callStateData;
   463             callStateData.SetCallState( EPEStateRinging );
   403             callStateData.SetCallState( EPEStateRinging );
   464             iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   404             iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState,
   465                 &callStateData );
   405                 &callStateData );
   484                 // Go to Conference And Call Setup state
   424                 // Go to Conference And Call Setup state
   485                 SetTouchPaneButtons( EPhoneCallSetupButtons );
   425                 SetTouchPaneButtons( EPhoneCallSetupButtons );
   486                 UpdateCbaL( EPhoneCallHandlingInCallCBA );                  
   426                 UpdateCbaL( EPhoneCallHandlingInCallCBA );                  
   487                 iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
   427                 iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
   488                 }
   428                 }
   489             EndUiUpdate();
   429             EndUiUpdate();             
   490             EndTransEffect();                
       
   491             }
   430             }
   492         }
   431         }
   493     }
   432     }
   494     
   433     
   495 // End of File
   434 // End of File