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