phoneapp/phoneuistates/src/cphoneconference.cpp
branchRCL_3
changeset 58 40a3f856b14d
parent 39 b8d67d6176f5
child 61 41a7f70b3818
equal deleted inserted replaced
57:94dc1107e8b2 58:40a3f856b14d
   166                 &callHeaderParam );
   166                 &callHeaderParam );
   167             }
   167             }
   168             break;
   168             break;
   169             
   169             
   170         case MEngineMonitor::EPEMessageDialing:
   170         case MEngineMonitor::EPEMessageDialing:
   171             HandleDiallingL( aCallId );
   171             HandleDialingL( aCallId );
   172             break;
   172             break;
   173             
   173             
   174         case MEngineMonitor::EPEMessageIncoming:
   174         case MEngineMonitor::EPEMessageIncoming:
   175             HandleIncomingL( aCallId );
   175             HandleIncomingL( aCallId );
   176             break;
   176             break;
   441 //
   441 //
   442 void CPhoneConference::HandleConferenceIdleL()
   442 void CPhoneConference::HandleConferenceIdleL()
   443     {
   443     {
   444     __LOGMETHODSTARTEND( EPhoneUIStates, 
   444     __LOGMETHODSTARTEND( EPhoneUIStates, 
   445         "CPhoneConference::HandleConferenceIdleL()");
   445         "CPhoneConference::HandleConferenceIdleL()");
   446     
   446     BeginTransEffectLC( ENumberEntryClose );
   447     BeginUiUpdateLC();
   447     BeginUiUpdateLC();
   448     
   448     
   449     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   449     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble );
   450 
   450 
   451     TPhoneCmdParamInteger activeCallCount;
   451     TPhoneCmdParamInteger activeCallCount;
   454 
   454 
   455     switch( activeCallCount.Integer() )
   455     switch( activeCallCount.Integer() )
   456         {
   456         {
   457         case ENoActiveCalls:
   457         case ENoActiveCalls:
   458             MakeStateTransitionToIdleL();
   458             MakeStateTransitionToIdleL();
   459             break;
   459             break; 
   460             
   460             
   461         case EOneActiveCall:
   461         case EOneActiveCall:
   462             {
   462             {
   463             // Fetch ringing call's id from view
   463             // Fetch ringing call's id from view
   464             TPhoneCmdParamCallStateData callStateData;
   464             TPhoneCmdParamCallStateData callStateData;
   470                 {            
   470                 {            
   471                 CPhonePubSubProxy::Instance()->ChangePropertyValue(
   471                 CPhonePubSubProxy::Instance()->ChangePropertyValue(
   472                                 KPSUidScreenSaver,
   472                                 KPSUidScreenSaver,
   473                                 KScreenSaverAllowScreenSaver,
   473                                 KScreenSaverAllowScreenSaver,
   474                                 EPhoneScreensaverNotAllowed );
   474                                 EPhoneScreensaverNotAllowed );
   475             
       
   476                 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   475                 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   477                 iStateMachine->ChangeState( EPhoneStateWaitingInSingle );    
   476                 iStateMachine->ChangeState( EPhoneStateWaitingInSingle );    
   478                 }
   477                 }
   479             else
   478             else
   480                 {
   479                 {
   481                 MakeStateTransitionToSingleL();                    
   480                 MakeStateTransitionToSingleL();
   482                 }
   481                 }
   483             }
   482             }
   484             break;
   483             break;
   485             
   484             
   486         case ETwoActiveCalls:
   485         case ETwoActiveCalls:
   489             
   488             
   490         default:
   489         default:
   491             MakeStateTransitionToTwoSinglesL();
   490             MakeStateTransitionToTwoSinglesL();
   492             break;
   491             break;
   493         }
   492         }
   494     
   493     EndUiUpdate();
   495     EndUiUpdate();  
   494     EndTransEffect();     
   496     }
   495     }
   497 
   496 
   498 // -----------------------------------------------------------
   497 // -----------------------------------------------------------
   499 // CPhoneConference::HandleHeldConferenceL
   498 // CPhoneConference::HandleHeldConferenceL
   500 // -----------------------------------------------------------
   499 // -----------------------------------------------------------
   840             CPEPhoneModelIF::EPEMessageHoldConference );
   839             CPEPhoneModelIF::EPEMessageHoldConference );
   841         }
   840         }
   842     }
   841     }
   843 
   842 
   844 // -----------------------------------------------------------
   843 // -----------------------------------------------------------
   845 // CPhoneConference::HandleDiallingL
   844 // CPhoneConference::HandleDialingL
   846 // -----------------------------------------------------------
   845 // -----------------------------------------------------------
   847 //
   846 //
   848 void CPhoneConference::HandleDiallingL( TInt aCallId )
   847 void CPhoneConference::HandleDialingL( TInt aCallId )
   849     {
   848     {
   850     __LOGMETHODSTARTEND( EPhoneUIStates, 
   849     __LOGMETHODSTARTEND( EPhoneUIStates, 
   851         "CPhoneConference::HandleDiallingL()");
   850         "CPhoneConference::HandleDialingL()");
   852     
       
   853     CPhonePubSubProxy::Instance()->ChangePropertyValue(
   851     CPhonePubSubProxy::Instance()->ChangePropertyValue(
   854                     KPSUidScreenSaver,
   852                     KPSUidScreenSaver,
   855                     KScreenSaverAllowScreenSaver,
   853                     KScreenSaverAllowScreenSaver,
   856                     EPhoneScreensaverNotAllowed );
   854                     EPhoneScreensaverNotAllowed );
   857     
   855     CloseSelectionListL();
   858     BeginUiUpdateLC(); 
       
   859     
       
   860     CloseSelectionListL(); 
       
   861     
       
   862     SetNumberEntryVisibilityL(EFalse);
       
   863     
   856     
   864     // Display call setup 
   857     // Display call setup 
   865     DisplayCallSetupL( aCallId );
   858     DisplayCallSetupL( aCallId );
   866     
   859           
   867     // Conference is understood as single call in buttons enumerations.
       
   868     SetTouchPaneButtons(EPhoneCallSetupAndSingleButtons); 
       
   869 
       
   870     EndUiUpdate();
       
   871     
       
   872     // Set Call Setup CBA 
       
   873     UpdateCbaL( EPhoneCallHandlingCallSetupCBA );
       
   874       
       
   875     // Go to conference and call setup state
   860     // Go to conference and call setup state
   876     iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
   861     iStateMachine->ChangeState( EPhoneStateConferenceAndCallSetup );
   877     }
   862     }
   878 
   863 
   879 // -----------------------------------------------------------
   864 // -----------------------------------------------------------
   880 // CPhoneConference::DisplayCallSetupL
   865 // CPhoneConference::DoStateSpecificCallSetUpDefinitionsL
   881 // -----------------------------------------------------------
   866 // -----------------------------------------------------------
   882 //
   867 //
   883 void CPhoneConference::DisplayCallSetupL( TInt aCallId )
   868 EXPORT_C void CPhoneConference::DoStateSpecificCallSetUpDefinitionsL()
   884     {
   869     {
   885     __LOGMETHODSTARTEND( EPhoneUIStates, 
   870     // Show incoming call buttons
   886         "CPhoneConference::DisplayCallSetupL()");
   871     SetTouchPaneButtons( EPhoneCallSetupAndSingleButtons );
   887     // Close menu bar, if it is displayed
       
   888     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
       
   889 
       
   890     // Remove dialogs if necessary
       
   891     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
       
   892 
       
   893     // Capture keys when the phone is dialling
       
   894     CaptureKeysDuringCallNotificationL( ETrue );
       
   895 
       
   896     // Bring Phone app in the foreground
       
   897     TPhoneCmdParamInteger uidParam;
       
   898     uidParam.SetInteger( KUidPhoneApplication.iUid );
       
   899     iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
       
   900         &uidParam );
       
   901 
       
   902     // Display call setup header
       
   903     DisplayHeaderForOutgoingCallL( aCallId );
       
   904     }
   872     }
   905 
   873 
   906 // ---------------------------------------------------------
   874 // ---------------------------------------------------------
   907 // CPhoneConference::CallFromNewCallQueryL
   875 // CPhoneConference::CallFromNewCallQueryL
   908 // ---------------------------------------------------------
   876 // ---------------------------------------------------------
   941     CPhonePubSubProxy::Instance()->ChangePropertyValue(
   909     CPhonePubSubProxy::Instance()->ChangePropertyValue(
   942                     KPSUidScreenSaver,
   910                     KPSUidScreenSaver,
   943                     KScreenSaverAllowScreenSaver,
   911                     KScreenSaverAllowScreenSaver,
   944                     EPhoneScreensaverNotAllowed );
   912                     EPhoneScreensaverNotAllowed );
   945     
   913     
       
   914     IsNumberEntryUsedL() ? 
       
   915         BeginTransEffectLC( ECallUiAppear ) :
       
   916         BeginTransEffectLC( ENumberEntryOpen );
   946     BeginUiUpdateLC();
   917     BeginUiUpdateLC();
   947     
   918     
   948     // Hide the number entry if it exists
   919     // Hide the number entry if it exists
   949     if ( IsNumberEntryUsedL() )
   920     if ( IsNumberEntryUsedL() )
   950         {
   921         {
   951         SetNumberEntryVisibilityL( EFalse );    
   922         SetNumberEntryVisibilityL( EFalse );    
   952         }
   923         }
   953     
   924     
   954     // Indicate that the menu application on foreground needs to be sent back to the foreground 
   925     // Indicate that the menu application on foreground needs to be sent back to the foreground 
   955     // after call is ended.
   926     // after call is ended.
   956     TPhoneCmdParamBoolean booleanParam;
   927     SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
   957     booleanParam.SetBoolean( !TopAppIsDisplayedL() );
   928     
   958     iViewCommandHandle->ExecuteCommandL( 
       
   959         EPhoneViewSetNeedToReturnToForegroundAppStatus,
       
   960         &booleanParam );
       
   961  
       
   962     TPhoneCmdParamBoolean dialerParam;
   929     TPhoneCmdParamBoolean dialerParam;
   963     dialerParam.SetBoolean( ETrue );
   930     dialerParam.SetBoolean( ETrue );
   964     
   931     
   965     // Get allow waiting call header param value.
   932     // Get allow waiting call header param value.
   966     AllowShowingOfWaitingCallHeaderL( dialerParam );
   933     AllowShowingOfWaitingCallHeaderL( dialerParam );
   967             
   934             
   968     CloseSelectionListL();
   935     CloseSelectionListL();
   969 
   936 
   970     // Close fast swap window if it's displayed
   937     // Close fast swap window if it's displayed
   971     CEikonEnv::Static()->DismissTaskList();
   938     EikonEnv()->DismissTaskList();
   972 
   939 
   973     SetTouchPaneButtons( EPhoneWaitingCallButtons );
   940     SetTouchPaneButtons( EPhoneWaitingCallButtons );
   974     
   941     
   975     // Display incoming call
   942     // Display incoming call
   976     DisplayIncomingCallL( aCallId, dialerParam );
   943     DisplayIncomingCallL( aCallId, dialerParam );
   977 
   944 
   978     EndUiUpdate();
   945     EndUiUpdate();
       
   946     EndTransEffect();
   979 
   947 
   980     // Go to incoming state
   948     // Go to incoming state
   981     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   949     UpdateCbaL( EPhoneCallHandlingCallWaitingCBA );
   982     iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting );        
   950     iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting );        
   983     }
   951     }
   986 // CPhoneConference::DisplayIncomingCallL
   954 // CPhoneConference::DisplayIncomingCallL
   987 // -----------------------------------------------------------
   955 // -----------------------------------------------------------
   988 //
   956 //
   989 void CPhoneConference::DisplayIncomingCallL( 
   957 void CPhoneConference::DisplayIncomingCallL( 
   990     TInt aCallId, 
   958     TInt aCallId, 
   991     const TPhoneCmdParamBoolean aCommandParam )
   959     const TPhoneCmdParamBoolean /*aCommandParam*/ )
   992     {
   960     {
   993     __LOGMETHODSTARTEND( EPhoneUIStates, 
   961     __LOGMETHODSTARTEND( EPhoneUIStates, 
   994         "CPhoneConference::DisplayIncomingCallL()");
   962         "CPhoneConference::DisplayIncomingCallL()");
   995     // Close menu bar, if it is displayed
   963     // Close menu bar, if it is displayed
   996     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
   964     iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose );
   998     // Remove any phone dialogs if they are displayed
   966     // Remove any phone dialogs if they are displayed
   999     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
   967     iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs );
  1000 
   968 
  1001     // Indicate that the Phone needs to be sent to the background if
   969     // Indicate that the Phone needs to be sent to the background if
  1002     // an application other than the top application is in the foreground
   970     // an application other than the top application is in the foreground
  1003     TPhoneCmdParamBoolean booleanParam;
   971     SetNeedToReturnToForegroundAppStatusL( !TopAppIsDisplayedL() );
  1004     booleanParam.SetBoolean( !TopAppIsDisplayedL() );
       
  1005     iViewCommandHandle->ExecuteCommandL( 
       
  1006         EPhoneViewSetNeedToReturnToForegroundAppStatus,
       
  1007         &booleanParam );
       
  1008 
   972 
  1009     // Bring Phone app in the foreground
   973     // Bring Phone app in the foreground
  1010     TPhoneCmdParamInteger uidParam;
   974     TPhoneCmdParamInteger uidParam;
  1011     uidParam.SetInteger( KUidPhoneApplication.iUid );
   975     uidParam.SetInteger( KUidPhoneApplication.iUid );
  1012     iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,
   976     iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground,