phoneapp/phoneuistates/src/cphoneconferenceandwaiting.cpp
branchRCL_3
changeset 61 41a7f70b3818
parent 58 40a3f856b14d
child 62 5266b1f337bd
equal deleted inserted replaced
58:40a3f856b14d 61:41a7f70b3818
    17 
    17 
    18 
    18 
    19 // INCLUDES
    19 // INCLUDES
    20 #include <StringLoader.h>
    20 #include <StringLoader.h>
    21 #include <cpephonemodelif.h>
    21 #include <cpephonemodelif.h>
       
    22 #include <featmgr.h>
       
    23 #include <telephonyvariant.hrh>
    22 #include "cphoneconferenceandwaiting.h"
    24 #include "cphoneconferenceandwaiting.h"
    23 #include "mphonestatemachine.h"
    25 #include "mphonestatemachine.h"
    24 #include "phoneviewcommanddefinitions.h"
    26 #include "phoneviewcommanddefinitions.h"
    25 #include "tphonecmdparamcallheaderdata.h"
    27 #include "tphonecmdparamcallheaderdata.h"
    26 #include "phonestatedefinitionsgsm.h"
    28 #include "phonestatedefinitionsgsm.h"
    30 #include "tphonecmdparamcallstatedata.h"
    32 #include "tphonecmdparamcallstatedata.h"
    31 #include "cphonemainresourceresolver.h"
    33 #include "cphonemainresourceresolver.h"
    32 #include "phonerssbase.h"
    34 #include "phonerssbase.h"
    33 #include "tphonecmdparamglobalnote.h"
    35 #include "tphonecmdparamglobalnote.h"
    34 #include "phoneui.hrh"
    36 #include "phoneui.hrh"
       
    37 #include "cphonecenrepproxy.h"
       
    38 #include "mphonestorage.h"
    35 
    39 
    36 // ================= MEMBER FUNCTIONS =======================
    40 // ================= MEMBER FUNCTIONS =======================
    37 
    41 
    38 // C++ default constructor can NOT contain any code, that
    42 // C++ default constructor can NOT contain any code, that
    39 // might leave.
    43 // might leave.
   113         case MEngineMonitor::EPEMessageConnected:
   117         case MEngineMonitor::EPEMessageConnected:
   114             HandleConnectedL( aCallId );
   118             HandleConnectedL( aCallId );
   115             break;
   119             break;
   116             
   120             
   117         case MEngineMonitor::EPEMessageDialing:
   121         case MEngineMonitor::EPEMessageDialing:
   118             HandleDialingL( aCallId );
   122             HandleDiallingL( aCallId );
   119             break;
   123             break;
   120             
   124             
   121         case MEngineMonitor::EPEMessageConferenceIdle:
   125         case MEngineMonitor::EPEMessageConferenceIdle:
   122             HandleConferenceIdleL();
   126             HandleConferenceIdleL();
   123             break;
   127             break;
   124             
   128             
   125         case MEngineMonitor::EPEMessageWentOneToOne:
   129         case MEngineMonitor::EPEMessageWentOneToOne:
   126             HandleWentOneToOneL( aCallId );
   130             HandleWentOneToOneL( aCallId );
   127             break;
   131             break;
   128 
   132 
       
   133         case MEngineMonitor::EPEMessageHeldConference:            
       
   134         case MEngineMonitor::EPEMessageConnectedConference:
       
   135             {
       
   136             TPhoneCmdParamInteger callIdParam;
       
   137             iViewCommandHandle->ExecuteCommandL( 
       
   138                         EPhoneViewGetExpandedBubbleCallId, &callIdParam );
       
   139             
       
   140             CPhoneConference::HandlePhoneEngineMessageL( aMessage, 
       
   141                             aCallId );
       
   142             
       
   143             if ( KConferenceCallId == callIdParam.Integer() )
       
   144                 {
       
   145                 iViewCommandHandle->ExecuteCommand(EPhoneSetConferenceExpanded);
       
   146                 }
       
   147             }
       
   148             break;
       
   149             
   129         default:
   150         default:
   130             CPhoneConference::HandlePhoneEngineMessageL( aMessage, 
   151             CPhoneConference::HandlePhoneEngineMessageL( aMessage, 
   131                 aCallId );
   152                 aCallId );
   132             break;
   153             break;
   133         }
   154         }
   165             break;
   186             break;
   166         }
   187         }
   167     }
   188     }
   168 
   189 
   169 // -----------------------------------------------------------
   190 // -----------------------------------------------------------
   170 // CPhoneConferenceAndWaiting::HandleErrorL
   191 // CPhoneConferenceAndWaiting::HandleKeyEventL
   171 // -----------------------------------------------------------
   192 // -----------------------------------------------------------
   172 //
   193 //
   173 EXPORT_C void CPhoneConferenceAndWaiting::HandleErrorL( 
   194 void CPhoneConferenceAndWaiting::HandleKeyEventL(
   174         const TPEErrorInfo& aErrorInfo )
   195     const TKeyEvent& aKeyEvent,
   175     {
   196     TEventCode /*aEventCode*/ )
   176     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::HandleErrorL()");
   197     {
   177     
   198     if( EKeyDeviceF == aKeyEvent.iCode )
   178     if( aErrorInfo.iErrorCode == ECCPErrorCCUserAlertingNoAnswer )
   199         {
   179         {
   200         __PHONELOG( EBasic, EPhoneUIStates,
   180         // Should not shown "No Answer" note
   201             "CPhoneConferenceAndWaiting::HandleKeyMessageL-deviceF" );
   181         __PHONELOG1( EBasic, EPhoneUIStates,
   202         HandleHoldSwitchL();
   182        "PhoneUIStates: CPhoneConferenceAndWaiting::HandleErrorL - aErrorInfo.iErrorCode =%d ",
   203         }
   183             aErrorInfo.iErrorCode);
       
   184         }
       
   185     else
       
   186         {
       
   187         CPhoneState::HandleErrorL( aErrorInfo );
       
   188         }
       
   189     }
       
   190 
       
   191 // -----------------------------------------------------------
       
   192 // CPhoneConferenceAndWaiting::OpenMenuBarL
       
   193 // -----------------------------------------------------------
       
   194 //
       
   195 void CPhoneConferenceAndWaiting::OpenMenuBarL()
       
   196     {
       
   197     __LOGMETHODSTARTEND(EPhoneUIStates, 
       
   198         "CPhoneConferenceAndWaiting::OpenMenuBarL()");
       
   199         
       
   200     TInt resourceId( EPhoneConfAndCallWaitingMenubar );
       
   201     
       
   202     if( IsNumberEntryVisibleL() )
       
   203         {
       
   204         resourceId = EPhoneConfAndCallWaitingMenubarWithNumberEntry;
       
   205         }
       
   206     else if ( IsConferenceBubbleInSelectionMode() )
       
   207         {
       
   208         resourceId = EPhoneConfCallParticipantsMenubar;    
       
   209         }        
       
   210     
       
   211     TPhoneCmdParamBoolean booleanParam;
       
   212     const TBool videoWaiting = IsVideoCallRingingL();
       
   213     booleanParam.SetBoolean( videoWaiting );
       
   214     iViewCommandHandle->ExecuteCommandL( EPhoneViewSetConferenceAndWaitingVideo,
       
   215         &booleanParam );
       
   216     
       
   217     
       
   218     TPhoneCmdParamInteger integerParam;
       
   219     integerParam.SetInteger( 
       
   220                 CPhoneMainResourceResolver::Instance()->
       
   221                 ResolveResourceID( resourceId ) );
       
   222                 
       
   223     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, 
       
   224         &integerParam );
       
   225     }
   204     }
   226 
   205 
   227 // -----------------------------------------------------------
   206 // -----------------------------------------------------------
   228 // CPhoneConferenceAndWaiting::HandleConnectedL
   207 // CPhoneConferenceAndWaiting::HandleConnectedL
   229 // -----------------------------------------------------------
   208 // -----------------------------------------------------------
   263 // -----------------------------------------------------------
   242 // -----------------------------------------------------------
   264 //
   243 //
   265 void CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL( TInt aCallId )
   244 void CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL( TInt aCallId )
   266     {
   245     {
   267     __LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL()");
   246     __LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL()");
   268     BeginUiUpdateLC();
   247     
   269     
   248     if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke )
       
   249         && iStateMachine->PhoneStorage()->IsScreenLocked() )
       
   250         {
       
   251         EnableCallUIL();
       
   252         }
       
   253     
       
   254     // Reset blocked keys list
       
   255     iStateMachine->PhoneStorage()->ResetBlockedKeysList();
       
   256         
       
   257     BeginUiUpdateLC();    
       
   258          
   270     UpdateRemoteInfoDataL ( aCallId );
   259     UpdateRemoteInfoDataL ( aCallId );
   271     if ( IsConferenceBubbleInSelectionMode() )
   260     
   272         {
   261     // Show bubble
   273         CloseSelectionListL();
       
   274         }
       
   275     TPhoneCmdParamCallHeaderData callHeaderParam;
   262     TPhoneCmdParamCallHeaderData callHeaderParam;
   276     callHeaderParam.SetCallState( EPEStateConnected );
   263     callHeaderParam.SetCallState( EPEStateConnected );
   277     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, 
   264     iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, 
   278             aCallId, &callHeaderParam );
   265         &callHeaderParam );
       
   266     
       
   267     
   279     if ( IsNumberEntryUsedL() )
   268     if ( IsNumberEntryUsedL() )
   280         {
   269         {
   281         if ( NeedToReturnToForegroundAppL() )
   270         if ( NeedToSendToBackgroundL() )
   282             {
   271             {           
   283             iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
       
   284             UpdateCbaL( EPhoneCallHandlingInCallCBA );
   272             UpdateCbaL( EPhoneCallHandlingInCallCBA );
   285             }
   273             }
       
   274         else
       
   275             {
       
   276             // Show the number entry if it exists.
       
   277             SetNumberEntryVisibilityL(ETrue);
       
   278             }
   286         }
   279         }
   287     else
   280     else
   288         {
   281         {
   289         UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
   282         UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA );
       
   283         // If numberentry is not open just check NeedToSendToBackgroundL and 
       
   284         // sendbackround if needed.
   290         }
   285         }
   291     SetTouchPaneButtons( EPhoneConferenceAndSingleButtons );
   286     SetTouchPaneButtons( EPhoneConferenceAndSingleButtons );
   292     SetTouchPaneButtonDisabled( EPhoneInCallCmdPrivate );
       
   293     
   287     
   294     EndUiUpdate();
   288     EndUiUpdate();
       
   289 
   295     // CBA updates in above if-else conditions
   290     // CBA updates in above if-else conditions
   296     iStateMachine->ChangeState( EPhoneStateConferenceAndSingle );
   291     iStateMachine->ChangeState( EPhoneStateConferenceAndSingle );                     
   297     }
   292     }
   298 
   293 
   299 // -----------------------------------------------------------
   294 // -----------------------------------------------------------
   300 // CPhoneConferenceAndWaiting::HandleIdleL
   295 // CPhoneConferenceAndWaiting::HandleIdleL
   301 // -----------------------------------------------------------
   296 // -----------------------------------------------------------
   314         iRingingCallId = callStateData.CallId();   
   309         iRingingCallId = callStateData.CallId();   
   315         }
   310         }
   316     
   311     
   317     if( iRingingCallId == aCallId )
   312     if( iRingingCallId == aCallId )
   318         {
   313         {
   319         BeginUiUpdateLC();
   314         
   320         iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
   315         BeginUiUpdateLC();    
       
   316 
       
   317         // Remove call 
   321         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
   318         iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId );
   322             
   319             
   323         if ( IsNumberEntryUsedL() )
   320         if ( IsNumberEntryUsedL() )
   324             {
   321             {
   325             if ( NeedToReturnToForegroundAppL() ) 
   322             if ( NeedToSendToBackgroundL() )
   326                 {
   323                 {
   327                 // Return phone to the background if menu application is needed to foreground.
   324                 // Return phone to the background if send to background is needed.
   328                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
   325                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
   329                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility );
   326 
   330                 UpdateCbaL( EPhoneCallHandlingInCallCBA );
   327                 UpdateCbaL( EPhoneCallHandlingInCallCBA );
       
   328                 }
       
   329             else
       
   330                 {
       
   331                 // Show the number entry if it exists.
       
   332                 SetNumberEntryVisibilityL(ETrue);
   331                 }
   333                 }
   332             }
   334             }
   333         else
   335         else
   334             {
   336             {
   335             UpdateCbaL( EPhoneCallHandlingInCallCBA );
   337             UpdateCbaL( EPhoneCallHandlingInCallCBA );
   336             // If numberentry is not open just check NeedToReturnToForegroundAppL and 
   338             // If numberentry is not open just check NeedToSendToBackgroundL and 
   337             // sendbackround if needed.
   339             // sendbackround if needed.
   338             if ( NeedToReturnToForegroundAppL() )
   340             if ( NeedToSendToBackgroundL() )
   339                 {
   341                 {
   340                 // Return phone to the background if send to background is needed.
   342                 // Return phone to the background if send to background is needed.
   341                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
   343                 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground );
   342                 }
   344                 }
   343             }
   345             }
   344         
   346         
   345         if ( iViewCommandHandle->HandleCommandL( EPhoneViewIsConferenceInExpandedMode ) 
   347         if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke ) 
   346                 == EPhoneViewResponseSuccess )
   348             && iStateMachine->PhoneStorage()->IsScreenLocked() )
   347             {
   349             {
   348             SetTouchPaneButtons( EPhoneParticipantListButtons );
   350             EnableCallUIL();
   349             }
   351             }
   350         else
   352         
   351             {
   353         // Reset blocked keys list
   352             SetTouchPaneButtons( EPhoneConferenceButtons );    
   354         iStateMachine->PhoneStorage()->ResetBlockedKeysList();
   353             }
   355 
       
   356         SetTouchPaneButtons( EPhoneConferenceButtons );    
       
   357         
   354         EndUiUpdate();
   358         EndUiUpdate();
       
   359          
       
   360         // Go to conference state
   355         // CBA updates in above if-else conditions
   361         // CBA updates in above if-else conditions
   356         iStateMachine->ChangeState( EPhoneStateConference );
   362         iStateMachine->ChangeState( EPhoneStateConference );                    
   357         }
   363         }
   358     else
   364     else
   359         {
   365         {
   360         // Idle message came for conference member
   366         // Idle message came for conference member
   361         CPhoneConference::HandleIdleL( aCallId );
   367         CPhoneConference::HandleIdleL( aCallId );           
       
   368         
   362         TPhoneCmdParamBoolean conferenceBubbleExists;
   369         TPhoneCmdParamBoolean conferenceBubbleExists;
   363         iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference,
   370         iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference,
   364                                              &conferenceBubbleExists );
   371                                              &conferenceBubbleExists );                            
       
   372                 
   365         if( !conferenceBubbleExists.Boolean() )
   373         if( !conferenceBubbleExists.Boolean() )
   366             {
   374             {
   367             HandleConferenceIdleL();
   375             HandleConferenceIdleL();
   368             }     
   376             }     
   369         }
   377         }
   374 // -----------------------------------------------------------
   382 // -----------------------------------------------------------
   375 //
   383 //
   376 void CPhoneConferenceAndWaiting::HandleConferenceIdleL()
   384 void CPhoneConferenceAndWaiting::HandleConferenceIdleL()
   377     {
   385     {
   378     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::HandleConferenceIdleL()");
   386     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::HandleConferenceIdleL()");
       
   387  
   379     BeginUiUpdateLC();
   388     BeginUiUpdateLC();
       
   389     
   380     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   390     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   381     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
   391     
   382     TPhoneCmdParamInteger activeCallCount;
   392     TPhoneCmdParamInteger activeCallCount;
   383     iViewCommandHandle->ExecuteCommandL(
   393     iViewCommandHandle->ExecuteCommandL(
   384             EPhoneViewGetCountOfActiveCalls, &activeCallCount );
   394         EPhoneViewGetCountOfActiveCalls, &activeCallCount );
       
   395         
   385     switch( activeCallCount.Integer() )
   396     switch( activeCallCount.Integer() )
   386         {
   397         {
   387         case ENoActiveCalls:
   398         case ENoActiveCalls:
   388             // Go to incoming state
   399             // Go to incoming state
   389             {
   400             {
   398               
   409               
   399             // Bring up callhandling view
   410             // Bring up callhandling view
   400             BringIncomingToForegroundL(); 
   411             BringIncomingToForegroundL(); 
   401            
   412            
   402             SetCallHeaderTextsForCallComingInL( iRingingCallId, EFalse, &callHeaderParam );
   413             SetCallHeaderTextsForCallComingInL( iRingingCallId, EFalse, &callHeaderParam );
   403             
   414           
   404             iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, 
   415             iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, 
   405                 iRingingCallId ,&callHeaderParam );
   416                 iRingingCallId ,&callHeaderParam );
   406             iCbaManager->UpdateIncomingCbaL( iRingingCallId );
   417             iCbaManager->UpdateIncomingCbaL( iRingingCallId );
   407             UpdateSilenceButtonDimming();
       
   408             
   418             
   409             // Hide number entry if visible
   419             // Hide number entry if visible
   410             if ( IsNumberEntryVisibleL() )
   420             if ( IsNumberEntryVisibleL() )
   411                 {
   421                 {
   412                 SetNumberEntryVisibilityL(EFalse);
   422                 SetNumberEntryVisibilityL(EFalse);   
   413                 }
   423                 }
       
   424             
       
   425             // Check if HW Keys or Call UI should be disabled
       
   426             CheckDisableHWKeysAndCallUIL();
       
   427             
   414             SetTouchPaneButtons( EPhoneIncomingCallButtons );
   428             SetTouchPaneButtons( EPhoneIncomingCallButtons );
   415             SetTouchPaneButtonEnabled( EPhoneCallComingCmdSilent );
   429             SetRingingTonePlaybackL( iRingingCallId );          
   416             SetRingingTonePlaybackL( iRingingCallId );
   430             SetBackButtonActive(EFalse);
   417             SetToolbarDimming( ETrue );
       
   418             iStateMachine->ChangeState( EPhoneStateIncoming );
   431             iStateMachine->ChangeState( EPhoneStateIncoming );
   419             }
   432             break;   
   420             break;
   433             }   
   421             
   434             
   422         case EOneActiveCall:
   435         case EOneActiveCall:
   423             if ( IsNumberEntryUsedL() )
   436             if ( IsNumberEntryUsedL() )
   424                 {
   437                 {
   425                 // Show the number entry if it exists
   438                 // Show the number entry if it exists
   426                 SetNumberEntryVisibilityL(ETrue);
   439                 SetNumberEntryVisibilityL(ETrue);
   427                 }
   440                 }
   428             // Go to waiting in single state
   441             // Go to waiting in single state
   429             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   442             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   430             SetTouchPaneButtons( EPhoneWaitingCallButtons );
   443             
       
   444             // Check if HW Keys or Call UI should be disabled
       
   445             CheckDisableHWKeysAndCallUIL();
       
   446             
       
   447             SetTouchPaneButtons( EPhoneWaitingCallButtons );             
   431             iStateMachine->ChangeState( EPhoneStateWaitingInSingle );
   448             iStateMachine->ChangeState( EPhoneStateWaitingInSingle );
   432             break;
   449             break;
   433             
   450             
   434         case ETwoActiveCalls:
   451         case ETwoActiveCalls:
   435             if ( IsNumberEntryUsedL() )
   452             if ( IsNumberEntryUsedL() )
   437                 // Show the number entry if it exists
   454                 // Show the number entry if it exists
   438                 SetNumberEntryVisibilityL(ETrue);
   455                 SetNumberEntryVisibilityL(ETrue);
   439                 }
   456                 }
   440             // Go to two singles and waiting state
   457             // Go to two singles and waiting state
   441             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   458             UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   442             SetTouchPaneButtons( EPhoneWaitingCallButtons ); 
   459             
       
   460             // Check if HW Keys or Call UI should be disabled
       
   461             CheckDisableHWKeysAndCallUIL();
       
   462             
       
   463             SetTouchPaneButtons( EPhoneWaitingCallButtons );               
       
   464 
   443             iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
   465             iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting );
   444             break; 
   466             break; 
   445         default:
   467         default:
   446           // Too many active calls to handle reliable state change now.
   468           // Too many active calls to handle reliable state change now.
   447           // Waiting for all conference member idles
   469           // Waiting for all conference member idles
   448           // This case may happen when 'End all calls' because conferenceIdle may 
   470           // This case may happen when 'End all calls' because conferenceIdle may 
   449           // come earlier than idle for conference member
   471           // come earlier than idle for conference member
   450            break;
   472            break;            
   451         }
   473         }
   452     EndUiUpdate();
   474     EndUiUpdate();
   453     }
   475     }
   454 
   476 
   455 // -----------------------------------------------------------
   477 // -----------------------------------------------------------
   461     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::UpdateInCallCbaL() ");
   483     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::UpdateInCallCbaL() ");
   462     UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA );
   484     UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA );
   463     }
   485     }
   464 
   486 
   465 // -----------------------------------------------------------
   487 // -----------------------------------------------------------
   466 // CPhoneConferenceAndWaiting::HandleDialingL
   488 // CPhoneConferenceAndWaiting::HandleDiallingL
   467 // -----------------------------------------------------------
   489 // -----------------------------------------------------------
   468 //
   490 //
   469 void CPhoneConferenceAndWaiting::HandleDialingL( TInt aCallId )
   491 void CPhoneConferenceAndWaiting::HandleDiallingL( TInt aCallId )
   470     {
   492     {
   471     __LOGMETHODSTARTEND( EPhoneUIStates, 
   493     __LOGMETHODSTARTEND( EPhoneUIStates, 
   472         "CPhoneConferenceAndWaiting::HandleDialingL()");
   494         "CPhoneConferenceAndWaiting::HandleDiallingL()");
       
   495 
       
   496     BeginUiUpdateLC();
       
   497     // Hide number entry if it exists
       
   498     SetNumberEntryVisibilityL(EFalse);        
       
   499 
   473     // Display call setup 
   500     // Display call setup 
   474     DisplayCallSetupL( aCallId );
   501     DisplayCallSetupL( aCallId );
       
   502 
       
   503     SetTouchPaneButtons( EPhoneCallSetupButtons ); 
       
   504 
       
   505     EndUiUpdate();
       
   506     
       
   507     // Update conference and waiting and call setup softkeys
       
   508     UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
       
   509     
   475     // Go to conference and waiting and call setup state
   510     // Go to conference and waiting and call setup state
   476     iStateMachine->ChangeState( EPhoneStateConferenceAndWaitingAndCallSetup );
   511     iStateMachine->ChangeState( EPhoneStateConferenceAndWaitingAndCallSetup );
   477     }
       
   478 
       
   479 // -----------------------------------------------------------
       
   480 // CPhoneConferenceAndWaiting::DoStateSpecificCallSetUpDefinitionsL
       
   481 // -----------------------------------------------------------
       
   482 //
       
   483 EXPORT_C void CPhoneConferenceAndWaiting::DoStateSpecificCallSetUpDefinitionsL()
       
   484     {
       
   485     SetTouchPaneButtons( EPhoneCallSetupButtons );
       
   486     }
   512     }
   487 
   513 
   488 // -----------------------------------------------------------
   514 // -----------------------------------------------------------
   489 // CPhoneConferenceAndWaiting::HandleWentOneToOneL
   515 // CPhoneConferenceAndWaiting::HandleWentOneToOneL
   490 // -----------------------------------------------------------
   516 // -----------------------------------------------------------
   514     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, 
   540     iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, 
   515         &conferenceBubbleExists );                            
   541         &conferenceBubbleExists );                            
   516     if( conferenceBubbleExists.Boolean() && 
   542     if( conferenceBubbleExists.Boolean() && 
   517         ( iRingingCallId != KErrNotFound ) )
   543         ( iRingingCallId != KErrNotFound ) )
   518         {
   544         {
   519         // Set touch controls
       
   520         SetTouchPaneButtonDisabled( EPhoneCallComingCmdAnswer );
       
   521         SetTouchPaneButtons( EPhoneWaitingCallButtons );
   545         SetTouchPaneButtons( EPhoneWaitingCallButtons );
   522         UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   546         UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   523         // Go to Conference And Single And Waiting state
   547         // Go to Conference And Single And Waiting state
   524         iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );  
   548         iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting );  
   525         }
   549         }
       
   550 
   526     EndUiUpdate();
   551     EndUiUpdate();
   527     }
   552     }
   528 
   553 
       
   554 // -----------------------------------------------------------
       
   555 // CPhoneConferenceAndWaiting::HandleCommandL
       
   556 // -----------------------------------------------------------
       
   557 //
       
   558 TBool CPhoneConferenceAndWaiting::HandleCommandL( TInt aCommand )
       
   559     {
       
   560     __LOGMETHODSTARTEND( EPhoneUIStates,
       
   561         "CPhoneConferenceAndWaiting::HandleCommandL() ");
       
   562     TBool commandStatus = ETrue;
       
   563 
       
   564     switch( aCommand )
       
   565         {
       
   566         case EPhoneCmdUpdateUiControls:
       
   567             UpdateUiControlsL();
       
   568             break;
       
   569 
       
   570         default:
       
   571             commandStatus = CPhoneConference::HandleCommandL( aCommand );
       
   572             break;
       
   573         }
       
   574 
       
   575     return commandStatus;
       
   576     }
       
   577 
       
   578 // -----------------------------------------------------------
       
   579 // CPhoneConferenceAndWaiting::UpdateUiControlsL
       
   580 // -----------------------------------------------------------
       
   581 //
       
   582 void CPhoneConferenceAndWaiting::UpdateUiControlsL()
       
   583     {
       
   584     __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::UpdateUiControlsL( ) ");
       
   585     iViewCommandHandle->ExecuteCommand(EPhoneSetConferenceExpanded);
       
   586     UpdateCbaL( EPhoneCallHandlingInCallCBA );
       
   587     }
       
   588 
   529 // End of File
   589 // End of File