79 TPhoneCmdParamBoolean globalNotifierParam; |
79 TPhoneCmdParamBoolean globalNotifierParam; |
80 globalNotifierParam.SetBoolean( EFalse ); |
80 globalNotifierParam.SetBoolean( EFalse ); |
81 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled, |
81 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled, |
82 &globalNotifierParam ); |
82 &globalNotifierParam ); |
83 |
83 |
84 |
|
85 DefineAndSetHoldFlagL(); |
|
86 |
|
87 } |
84 } |
88 |
85 |
89 // ----------------------------------------------------------- |
86 // ----------------------------------------------------------- |
90 // CPhoneConference::NewL() |
87 // CPhoneConference::NewL() |
91 // Constructor |
88 // Constructor |
213 CPEPhoneModelIF::EPEMessageResumeConference ); |
209 CPEPhoneModelIF::EPEMessageResumeConference ); |
214 break; |
210 break; |
215 |
211 |
216 // Conference -> Drop participant |
212 // Conference -> Drop participant |
217 case EPhoneInCallCmdDropSelection: |
213 case EPhoneInCallCmdDropSelection: |
218 OpenDropParticipantSelectionL(); |
|
219 break; |
214 break; |
220 |
215 |
221 // Drop CBA |
216 // Drop CBA |
222 case EPhoneInCallCmdDrop: |
217 case EPhoneInCallCmdDrop: |
223 DropSelectedParticipantL(); |
218 DropSelectedParticipantL(); |
224 break; |
219 break; |
225 |
220 |
226 case EPhoneInCallCmdPrivateSelection: |
221 case EPhoneInCallCmdPrivateSelection: |
227 OpenPrivateSelectionL(); |
|
228 break; |
222 break; |
229 |
223 |
230 case EPhoneInCallCmdPrivate: |
224 case EPhoneInCallCmdPrivate: |
231 PrivateSelectedParticipantL(); |
225 PrivateSelectedParticipantL(); |
232 break; |
226 break; |
233 |
227 |
234 case EPhoneInCallCmdNewCall: |
228 case EPhoneInCallCmdNewCall: |
235 LaunchNewCallQueryL(); |
|
236 break; |
229 break; |
237 |
230 |
238 case EPhoneInCallCmdNewCallCall: |
231 case EPhoneInCallCmdNewCallCall: |
239 CallFromNewCallQueryL(); |
|
240 break; |
232 break; |
241 |
233 |
242 case EPhoneInCallCmdParticipants: |
234 case EPhoneInCallCmdParticipants: |
243 OpenParticipantsListL(); |
235 break; |
244 break; |
|
245 |
|
246 case EPhoneViewOpenNumberEntry: |
|
247 if ( IsConferenceBubbleInSelectionMode() ) |
|
248 { |
|
249 CloseSelectionListL(); |
|
250 SetTouchPaneButtons( EPhoneConferenceButtons ); |
|
251 } |
|
252 commandStatus = CPhoneGsmInCall::HandleCommandL( aCommand ); |
|
253 break; |
|
254 |
236 |
255 default: |
237 default: |
256 commandStatus = CPhoneGsmInCall::HandleCommandL( aCommand ); |
238 commandStatus = CPhoneGsmInCall::HandleCommandL( aCommand ); |
257 break; |
239 break; |
258 } |
240 } |
265 // ----------------------------------------------------------- |
247 // ----------------------------------------------------------- |
266 // |
248 // |
267 void CPhoneConference::UpdateInCallCbaL() |
249 void CPhoneConference::UpdateInCallCbaL() |
268 { |
250 { |
269 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
251 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
270 } |
|
271 |
|
272 // ----------------------------------------------------------- |
|
273 // CPhoneConference::OpenMenuBarL |
|
274 // ----------------------------------------------------------- |
|
275 // |
|
276 void CPhoneConference::OpenMenuBarL() |
|
277 { |
|
278 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
279 "CPhoneConference::OpenMenuBarL()"); |
|
280 TInt resourceId; |
|
281 |
|
282 if ( iOnScreenDialer && IsDTMFEditorVisibleL() ) |
|
283 { |
|
284 resourceId = EPhoneDtmfDialerMenubar; |
|
285 } |
|
286 else if ( IsNumberEntryVisibleL() ) |
|
287 { |
|
288 resourceId = EPhoneConfCallMenubarWithNumberEntry; |
|
289 } |
|
290 else if ( FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) |
|
291 && IsConferenceBubbleInSelectionMode() ) |
|
292 { |
|
293 resourceId = EPhoneConfCallParticipantsMenubar; |
|
294 } |
|
295 else |
|
296 { |
|
297 resourceId = EPhoneConfCallMenubar; |
|
298 } |
|
299 |
|
300 TPhoneCmdParamInteger integerParam; |
|
301 integerParam.SetInteger( |
|
302 CPhoneMainResourceResolver::Instance()-> |
|
303 ResolveResourceID( resourceId ) ); |
|
304 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, |
|
305 &integerParam ); |
|
306 } |
252 } |
307 |
253 |
308 // ----------------------------------------------------------- |
254 // ----------------------------------------------------------- |
309 // CPhoneConference::HandleKeyEventL |
255 // CPhoneConference::HandleKeyEventL |
310 // ----------------------------------------------------------- |
256 // ----------------------------------------------------------- |
313 const TKeyEvent& aKeyEvent, |
259 const TKeyEvent& aKeyEvent, |
314 TEventCode aEventCode ) |
260 TEventCode aEventCode ) |
315 { |
261 { |
316 __LOGMETHODSTARTEND( EPhoneUIStates, |
262 __LOGMETHODSTARTEND( EPhoneUIStates, |
317 "CPhoneConference::HandleKeyEventL()"); |
263 "CPhoneConference::HandleKeyEventL()"); |
318 if ( IsConferenceBubbleInSelectionMode() ) |
264 |
319 { |
265 if ( CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) ) |
320 if ( aKeyEvent.iCode == EKeyUpArrow || |
266 { |
321 aKeyEvent.iCode == EKeyDownArrow ) |
267 // Handle numeric keys when key events are received |
322 { |
268 // in conference state. |
323 TPhoneCmdParamKeyEvent keyEventParam; |
269 CPhoneGsmInCall::HandleNumericKeyEventL( aKeyEvent, aEventCode ); |
324 keyEventParam.SetKeyEvent( aKeyEvent ); |
|
325 keyEventParam.SetEventCode( aEventCode ); |
|
326 |
|
327 iViewCommandHandle->ExecuteCommandL( |
|
328 EPhoneViewMoveHighLightInList, &keyEventParam ); |
|
329 } |
|
330 } |
270 } |
331 else |
271 else |
332 { |
272 { |
333 if ( CPhoneKeys::IsNumericKey( aKeyEvent, aEventCode ) ) |
273 // Handle other key events. |
334 { |
274 CPhoneState::HandleKeyEventL( aKeyEvent, aEventCode ); |
335 // Handle numeric keys when key events are received |
275 } |
336 // in conference state. |
276 |
337 CPhoneGsmInCall::HandleNumericKeyEventL( aKeyEvent, aEventCode ); |
|
338 } |
|
339 else |
|
340 { |
|
341 // Handle other key events. |
|
342 CPhoneState::HandleKeyEventL( aKeyEvent, aEventCode ); |
|
343 } |
|
344 } |
|
345 } |
277 } |
346 |
278 |
347 // -------------------------------------------------------------- |
279 // -------------------------------------------------------------- |
348 // CPhoneConference::HandleKeyMessageL |
280 // CPhoneConference::HandleKeyMessageL |
349 // -------------------------------------------------------------- |
281 // -------------------------------------------------------------- |
402 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled, |
334 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled, |
403 &globalNotifierParam ); |
335 &globalNotifierParam ); |
404 |
336 |
405 // Stop capturing keys |
337 // Stop capturing keys |
406 CaptureKeysDuringCallNotificationL( EFalse ); |
338 CaptureKeysDuringCallNotificationL( EFalse ); |
407 |
|
408 // If dialler is not open then close menu bar. |
|
409 if ( !IsNumberEntryUsedL() ) |
|
410 { |
|
411 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
412 } |
|
413 |
339 |
414 // If conference bubble still exists then we have conference and |
340 // If conference bubble still exists then we have conference and |
415 // single call |
341 // single call |
416 TPhoneCmdParamBoolean conferenceBubbleExists; |
342 TPhoneCmdParamBoolean conferenceBubbleExists; |
417 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, |
343 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, |
437 // |
363 // |
438 void CPhoneConference::HandleConferenceIdleL() |
364 void CPhoneConference::HandleConferenceIdleL() |
439 { |
365 { |
440 __LOGMETHODSTARTEND( EPhoneUIStates, |
366 __LOGMETHODSTARTEND( EPhoneUIStates, |
441 "CPhoneConference::HandleConferenceIdleL()"); |
367 "CPhoneConference::HandleConferenceIdleL()"); |
442 |
|
443 BeginTransEffectLC( ENumberEntryOpen ); |
|
444 BeginUiUpdateLC(); |
368 BeginUiUpdateLC(); |
445 |
369 |
446 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
370 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
447 |
371 |
448 TPhoneCmdParamInteger activeCallCount; |
372 TPhoneCmdParamInteger activeCallCount; |
510 CCoeEnv::Static() ); |
433 CCoeEnv::Static() ); |
511 callHeaderParam.SetLabelText( labelText ); |
434 callHeaderParam.SetLabelText( labelText ); |
512 |
435 |
513 iViewCommandHandle->ExecuteCommandL( |
436 iViewCommandHandle->ExecuteCommandL( |
514 EPhoneViewUpdateBubble, aCallId, &callHeaderParam ); |
437 EPhoneViewUpdateBubble, aCallId, &callHeaderParam ); |
515 |
438 |
516 // Set Hold flag to view |
|
517 SetHoldFlagL(); |
|
518 |
|
519 if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) ) |
439 if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) ) |
520 { |
440 { |
521 SendGlobalInfoNoteL( EPhoneInformationConferenceOnHold, ETrue ); |
441 SendGlobalInfoNoteL( EPhoneInformationConferenceOnHold, ETrue ); |
522 } |
442 } |
523 |
443 |
524 SetTouchPaneButtonDisabled( EPhoneInCallCmdPrivate ); |
|
525 SetTouchPaneButtons( EPhoneConferenceButtons ); |
444 SetTouchPaneButtons( EPhoneConferenceButtons ); |
526 UpdateInCallCbaL(); |
445 UpdateInCallCbaL(); |
527 } |
|
528 |
|
529 |
|
530 // ----------------------------------------------------------- |
|
531 // CPhoneConference::DefineAndSetHoldFlagL |
|
532 // ----------------------------------------------------------- |
|
533 // |
|
534 void CPhoneConference::DefineAndSetHoldFlagL() |
|
535 { |
|
536 // Find out is conference held or not |
|
537 TPhoneCmdParamCallStateData callStateData; |
|
538 callStateData.SetCallId( KConferenceCallId ); |
|
539 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallState, |
|
540 &callStateData ); |
|
541 |
|
542 // Set Hold flag to view |
|
543 TPhoneCmdParamBoolean holdFlag; |
|
544 |
|
545 if( callStateData.CallState() == EPEStateHeld ) |
|
546 { |
|
547 holdFlag.SetBoolean( ETrue ); |
|
548 } |
|
549 else |
|
550 { |
|
551 holdFlag.SetBoolean( EFalse ); |
|
552 } |
|
553 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag ); |
|
554 |
|
555 } |
|
556 |
|
557 // ----------------------------------------------------------- |
|
558 // CPhoneConference::SetHoldFlagL |
|
559 // ----------------------------------------------------------- |
|
560 // |
|
561 void CPhoneConference::SetHoldFlagL() |
|
562 { |
|
563 // Set Hold flag to view |
|
564 TPhoneCmdParamBoolean holdFlag; |
|
565 holdFlag.SetBoolean( ETrue ); |
|
566 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag ); |
|
567 |
|
568 } |
446 } |
569 |
447 |
570 // ----------------------------------------------------------- |
448 // ----------------------------------------------------------- |
571 // CPhoneConference::HandleConnectedConferenceL |
449 // CPhoneConference::HandleConnectedConferenceL |
572 // ----------------------------------------------------------- |
450 // ----------------------------------------------------------- |
600 if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) ) |
478 if ( !FeatureManager::FeatureSupported( KFeatureIdTouchCallHandling ) ) |
601 { |
479 { |
602 SendGlobalInfoNoteL( EPhoneInformationConferenceActiveted, ETrue ); |
480 SendGlobalInfoNoteL( EPhoneInformationConferenceActiveted, ETrue ); |
603 } |
481 } |
604 |
482 |
605 SetTouchPaneButtonEnabled( EPhoneInCallCmdPrivate ); |
|
606 SetTouchPaneButtons( EPhoneConferenceButtons ); |
483 SetTouchPaneButtons( EPhoneConferenceButtons ); |
607 |
484 |
608 UpdateInCallCbaL(); |
485 UpdateInCallCbaL(); |
609 } |
|
610 |
|
611 // ----------------------------------------------------------- |
|
612 // CPhoneConference::OpenDropParticipantSelectionL |
|
613 // ----------------------------------------------------------- |
|
614 // |
|
615 void CPhoneConference::OpenDropParticipantSelectionL() |
|
616 { |
|
617 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
618 "CPhoneConference::OpenDropParticipantSelectionL()"); |
|
619 TPhoneCmdParamBoolean booleanParam; |
|
620 booleanParam.SetBoolean( ETrue ); |
|
621 iViewCommandHandle->ExecuteCommandL( |
|
622 EPhoneViewOpenConferenceList, &booleanParam ); |
|
623 |
|
624 iCbaManager->SetCbaL( EPhoneDropParticipantCBA ); |
|
625 } |
486 } |
626 |
487 |
627 // ----------------------------------------------------------- |
488 // ----------------------------------------------------------- |
628 // CPhoneConference::DropSelectedParticipantL |
489 // CPhoneConference::DropSelectedParticipantL |
629 // ----------------------------------------------------------- |
490 // ----------------------------------------------------------- |
646 CPEPhoneModelIF::EPEMessageDropConferenceMember ); |
507 CPEPhoneModelIF::EPEMessageDropConferenceMember ); |
647 } |
508 } |
648 } |
509 } |
649 |
510 |
650 // ----------------------------------------------------------- |
511 // ----------------------------------------------------------- |
651 // CPhoneConference::OpenPrivateSelectionL |
|
652 // ----------------------------------------------------------- |
|
653 // |
|
654 void CPhoneConference::OpenPrivateSelectionL() |
|
655 { |
|
656 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
657 "CPhoneConference::OpenPrivateSelectionL()"); |
|
658 TPhoneCmdParamBoolean booleanParam; |
|
659 booleanParam.SetBoolean( ETrue ); |
|
660 iViewCommandHandle->ExecuteCommandL( |
|
661 EPhoneViewOpenConferenceList, &booleanParam ); |
|
662 |
|
663 iCbaManager->SetCbaL( EPhonePrivateParticipantCBA ); |
|
664 } |
|
665 |
|
666 // ----------------------------------------------------------- |
|
667 // CPhoneConference::PrivateSelectedParticipantL |
512 // CPhoneConference::PrivateSelectedParticipantL |
668 // ----------------------------------------------------------- |
513 // ----------------------------------------------------------- |
669 // |
514 // |
670 void CPhoneConference::PrivateSelectedParticipantL() |
515 void CPhoneConference::PrivateSelectedParticipantL() |
671 { |
516 { |
706 SetDefaultFlagsL(); |
550 SetDefaultFlagsL(); |
707 |
551 |
708 if ( IsNumberEntryUsedL() ) |
552 if ( IsNumberEntryUsedL() ) |
709 { |
553 { |
710 // Show the number entry if it exists |
554 // Show the number entry if it exists |
711 SetNumberEntryVisibilityL(ETrue); |
555 SetNumberEntryVisibilityL(ETrue); |
712 |
|
713 // Close dtmf dialer when call is disconnected. |
|
714 if ( iOnScreenDialer && IsDTMFEditorVisibleL() ) |
|
715 { |
|
716 CloseDTMFEditorL(); |
|
717 // Display idle screen and update CBAs |
|
718 DisplayIdleScreenL(); |
|
719 } |
|
720 } |
556 } |
721 else if ( !TopAppIsDisplayedL() ) |
557 else if ( !TopAppIsDisplayedL() ) |
722 { |
558 { |
723 // Close menu bar, if it is displayed |
|
724 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
725 |
559 |
726 // Continue displaying current app but set up the |
560 // Continue displaying current app but set up the |
727 // idle screen in the background |
561 // idle screen in the background |
728 SetupIdleScreenInBackgroundL(); |
562 SetupIdleScreenInBackgroundL(); |
729 } |
563 } |
730 else |
564 else |
731 { |
565 { |
732 // Close menu bar, if it is displayed |
|
733 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
734 |
|
735 // Display idle screen |
566 // Display idle screen |
736 DisplayIdleScreenL(); |
567 DisplayIdleScreenL(); |
737 } |
568 } |
738 |
569 |
739 // Display call termination note, if necessary |
570 // Display call termination note, if necessary |
750 // |
581 // |
751 void CPhoneConference::MakeStateTransitionToSingleL() |
582 void CPhoneConference::MakeStateTransitionToSingleL() |
752 { |
583 { |
753 __LOGMETHODSTARTEND( EPhoneUIStates, |
584 __LOGMETHODSTARTEND( EPhoneUIStates, |
754 "CPhoneConference::MakeStateTransitionToSingleL()"); |
585 "CPhoneConference::MakeStateTransitionToSingleL()"); |
755 // Close menu bar, if it is displayed |
|
756 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
757 |
586 |
758 if ( IsNumberEntryUsedL() ) |
587 if ( IsNumberEntryUsedL() ) |
759 { |
588 { |
760 // Show the number entry if it exists |
589 // Show the number entry if it exists |
761 SetNumberEntryVisibilityL(ETrue); |
590 SetNumberEntryVisibilityL(ETrue); |
773 // |
602 // |
774 void CPhoneConference::MakeStateTransitionToTwoSinglesL() |
603 void CPhoneConference::MakeStateTransitionToTwoSinglesL() |
775 { |
604 { |
776 __LOGMETHODSTARTEND( EPhoneUIStates, |
605 __LOGMETHODSTARTEND( EPhoneUIStates, |
777 "CPhoneConference::MakeStateTransitionToTwoSinglesL()"); |
606 "CPhoneConference::MakeStateTransitionToTwoSinglesL()"); |
778 // Close menu bar, if it is displayed |
|
779 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
780 |
607 |
781 if ( IsNumberEntryUsedL() ) |
608 if ( IsNumberEntryUsedL() ) |
782 { |
609 { |
783 // Show the number entry if it exists |
610 // Show the number entry if it exists |
784 SetNumberEntryVisibilityL(ETrue); |
611 SetNumberEntryVisibilityL(ETrue); |
792 // Go to two singles state |
619 // Go to two singles state |
793 iStateMachine->ChangeState( EPhoneStateTwoSingles ); |
620 iStateMachine->ChangeState( EPhoneStateTwoSingles ); |
794 } |
621 } |
795 |
622 |
796 // ----------------------------------------------------------- |
623 // ----------------------------------------------------------- |
797 // CPhoneConference::CloseSelectionListL |
|
798 // ----------------------------------------------------------- |
|
799 // |
|
800 void CPhoneConference::CloseSelectionListL() |
|
801 { |
|
802 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
803 "CPhoneConference::CloseSelectionListL()"); |
|
804 // Close conference list |
|
805 TPhoneCmdParamBoolean booleanParam; |
|
806 booleanParam.SetBoolean( EFalse ); |
|
807 iViewCommandHandle->ExecuteCommandL( |
|
808 EPhoneViewOpenConferenceList, &booleanParam ); |
|
809 } |
|
810 |
|
811 // ----------------------------------------------------------- |
|
812 // CPhoneConference::ToggleHold |
624 // CPhoneConference::ToggleHold |
813 // ----------------------------------------------------------- |
625 // ----------------------------------------------------------- |
814 // |
626 // |
815 void CPhoneConference::ToggleHoldL() |
627 void CPhoneConference::ToggleHoldL() |
816 { |
628 { |
817 __LOGMETHODSTARTEND( EPhoneUIStates, |
629 __LOGMETHODSTARTEND( EPhoneUIStates, |
818 "CPhoneConference::ToggleHoldL()"); |
630 "CPhoneConference::ToggleHoldL()"); |
819 TPhoneCmdParamBoolean hold; |
631 |
820 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetHoldFlag, &hold ); |
632 TPECallControlCaps callControlCaps = |
821 |
633 iStateMachine->PhoneEngineInfo()->CallControlCaps( KConferenceCallId ); |
822 if( hold.Boolean() ) |
634 |
823 { |
635 if ( callControlCaps & MCCECallObserver::ECCECapsHold ) |
|
636 { |
|
637 iStateMachine->SetCallId( KConferenceCallId ); |
824 iStateMachine->SendPhoneEngineMessage( |
638 iStateMachine->SendPhoneEngineMessage( |
825 CPEPhoneModelIF::EPEMessageResumeConference ); |
639 CPEPhoneModelIF::EPEMessageHold ); |
|
640 } |
|
641 else if ( callControlCaps & MCCECallObserver::ECCECapsResume ) |
|
642 { |
|
643 iStateMachine->SetCallId( KConferenceCallId ); |
|
644 iStateMachine->SendPhoneEngineMessage( |
|
645 CPEPhoneModelIF::EPEMessageResume ); |
826 } |
646 } |
827 else |
647 else |
828 { |
648 { |
829 iStateMachine->SendPhoneEngineMessage( |
649 SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed, ETrue ); |
830 CPEPhoneModelIF::EPEMessageHoldConference ); |
|
831 } |
650 } |
832 } |
651 } |
833 |
652 |
834 // ----------------------------------------------------------- |
653 // ----------------------------------------------------------- |
835 // CPhoneConference::HandleDiallingL |
654 // CPhoneConference::HandleDiallingL |
837 // |
656 // |
838 void CPhoneConference::HandleDiallingL( TInt aCallId ) |
657 void CPhoneConference::HandleDiallingL( TInt aCallId ) |
839 { |
658 { |
840 __LOGMETHODSTARTEND( EPhoneUIStates, |
659 __LOGMETHODSTARTEND( EPhoneUIStates, |
841 "CPhoneConference::HandleDiallingL()"); |
660 "CPhoneConference::HandleDiallingL()"); |
842 |
|
843 BeginTransEffectLC( ENumberEntryClose ); |
|
844 BeginUiUpdateLC(); |
661 BeginUiUpdateLC(); |
845 |
|
846 CloseSelectionListL(); |
|
847 |
662 |
848 SetNumberEntryVisibilityL(EFalse); |
663 SetNumberEntryVisibilityL(EFalse); |
849 |
664 |
850 // Display call setup |
665 // Display call setup |
851 DisplayCallSetupL( aCallId ); |
666 DisplayCallSetupL( aCallId ); |
852 |
667 |
853 // Conference is understood as single call in buttons enumerations. |
668 // Conference is understood as single call in buttons enumerations. |
854 SetTouchPaneButtons(EPhoneCallSetupAndSingleButtons); |
669 SetTouchPaneButtons(EPhoneCallSetupAndSingleButtons); |
855 |
670 |
856 EndUiUpdate(); |
671 EndUiUpdate(); |
857 |
|
858 EndTransEffect(); |
|
859 |
672 |
860 // Set Call Setup CBA |
673 // Set Call Setup CBA |
861 UpdateCbaL( EPhoneCallHandlingCallSetupCBA ); |
674 UpdateCbaL( EPhoneCallHandlingCallSetupCBA ); |
862 |
675 |
863 // Go to conference and call setup state |
676 // Go to conference and call setup state |
870 // |
683 // |
871 void CPhoneConference::DisplayCallSetupL( TInt aCallId ) |
684 void CPhoneConference::DisplayCallSetupL( TInt aCallId ) |
872 { |
685 { |
873 __LOGMETHODSTARTEND( EPhoneUIStates, |
686 __LOGMETHODSTARTEND( EPhoneUIStates, |
874 "CPhoneConference::DisplayCallSetupL()"); |
687 "CPhoneConference::DisplayCallSetupL()"); |
875 // Close menu bar, if it is displayed |
|
876 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
877 |
688 |
878 // Remove dialogs if necessary |
689 // Remove dialogs if necessary |
879 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs ); |
690 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs ); |
880 |
691 |
881 // Capture keys when the phone is dialling |
692 // Capture keys when the phone is dialling |
889 |
700 |
890 // Display call setup header |
701 // Display call setup header |
891 DisplayHeaderForOutgoingCallL( aCallId ); |
702 DisplayHeaderForOutgoingCallL( aCallId ); |
892 } |
703 } |
893 |
704 |
894 // --------------------------------------------------------- |
|
895 // CPhoneConference::CallFromNewCallQueryL |
|
896 // --------------------------------------------------------- |
|
897 // |
|
898 void CPhoneConference::CallFromNewCallQueryL() |
|
899 { |
|
900 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
901 "CPhoneConference::CallFromNewCallQueryL()"); |
|
902 // First get the phone number from the dialog |
|
903 TPhoneCmdParamString phoneNumberParam; |
|
904 HBufC *content = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
|
905 TPtr ptr( content->Des() ); |
|
906 phoneNumberParam.SetString( &ptr ); |
|
907 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetTextQueryContent, |
|
908 &phoneNumberParam ); |
|
909 |
|
910 // Store the phone number |
|
911 iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr ); |
|
912 |
|
913 // clean up stack |
|
914 CleanupStack::PopAndDestroy( content ); |
|
915 |
|
916 // Dial number |
|
917 DialVoiceCallL(); |
|
918 } |
|
919 |
|
920 // ----------------------------------------------------------- |
705 // ----------------------------------------------------------- |
921 // CPhoneConference::HandleIncomingL |
706 // CPhoneConference::HandleIncomingL |
922 // ----------------------------------------------------------- |
707 // ----------------------------------------------------------- |
923 // |
708 // |
924 void CPhoneConference::HandleIncomingL( TInt aCallId ) |
709 void CPhoneConference::HandleIncomingL( TInt aCallId ) |
931 TPhoneCmdParamBoolean dialerParam; |
716 TPhoneCmdParamBoolean dialerParam; |
932 dialerParam.SetBoolean( ETrue ); |
717 dialerParam.SetBoolean( ETrue ); |
933 |
718 |
934 // Get allow waiting call header param value. |
719 // Get allow waiting call header param value. |
935 AllowShowingOfWaitingCallHeaderL( dialerParam ); |
720 AllowShowingOfWaitingCallHeaderL( dialerParam ); |
936 |
|
937 CloseSelectionListL(); |
|
938 |
|
939 // Close fast swap window if it's displayed |
721 // Close fast swap window if it's displayed |
940 CEikonEnv::Static()->DismissTaskList(); |
722 CEikonEnv::Static()->DismissTaskList(); |
941 |
723 |
942 // Check if HW Keys or Call UI should be disabled |
724 // Check if HW Keys or Call UI should be disabled |
943 CheckDisableHWKeysAndCallUIL(); |
725 CheckDisableHWKeysAndCallUIL(); |
962 TInt aCallId, |
744 TInt aCallId, |
963 const TPhoneCmdParamBoolean aCommandParam ) |
745 const TPhoneCmdParamBoolean aCommandParam ) |
964 { |
746 { |
965 __LOGMETHODSTARTEND( EPhoneUIStates, |
747 __LOGMETHODSTARTEND( EPhoneUIStates, |
966 "CPhoneConference::DisplayIncomingCallL()"); |
748 "CPhoneConference::DisplayIncomingCallL()"); |
967 // Close menu bar, if it is displayed |
|
968 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
969 |
749 |
970 // Cannot delete active note, e.g. New call query, |
750 // Cannot delete active note, e.g. New call query, |
971 // but show waiting note with or without caller name |
751 // but show waiting note with or without caller name |
972 if ( IsAnyQueryActiveL() || |
752 if ( IsAnyQueryActiveL() || |
973 ( !aCommandParam.Boolean() && iOnScreenDialer ) ) |
753 ( !aCommandParam.Boolean() && iOnScreenDialer ) ) |
1026 // Go to Conference And Single state |
806 // Go to Conference And Single state |
1027 |
807 |
1028 UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA ); |
808 UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA ); |
1029 iStateMachine->ChangeState( EPhoneStateConferenceAndSingle ); |
809 iStateMachine->ChangeState( EPhoneStateConferenceAndSingle ); |
1030 SetTouchPaneButtons( EPhoneConferenceAndSingleButtons ); |
810 SetTouchPaneButtons( EPhoneConferenceAndSingleButtons ); |
1031 SetTouchPaneButtonDisabled( EPhoneInCallCmdPrivate ); |
|
1032 } |
811 } |
1033 else |
812 else |
1034 { |
813 { |
1035 SetTouchPaneButtons( EPhoneTwoSinglesButtons ); |
814 SetTouchPaneButtons( EPhoneTwoSinglesButtons ); |
1036 } |
815 } |
1037 EndUiUpdate(); |
816 EndUiUpdate(); |
1038 } |
817 } |
1039 |
|
1040 // ----------------------------------------------------------- |
|
1041 // CPhoneConference::OpenParticipantsListL |
|
1042 // ----------------------------------------------------------- |
|
1043 // |
|
1044 void CPhoneConference::OpenParticipantsListL() |
|
1045 { |
|
1046 BeginUiUpdateLC(); |
|
1047 |
|
1048 TPhoneCmdParamBoolean booleanParam; |
|
1049 booleanParam.SetBoolean( ETrue ); |
|
1050 |
|
1051 iViewCommandHandle->ExecuteCommandL( EPhoneViewOpenConferenceList, |
|
1052 &booleanParam ); |
|
1053 |
|
1054 SetTouchPaneButtons( EPhoneParticipantListButtons ); |
|
1055 |
|
1056 EndUiUpdate(); |
|
1057 |
|
1058 iCbaManager->SetCbaL( EPhoneParticipantListCBA ); |
|
1059 |
|
1060 // Find out is conference held or not |
|
1061 TPhoneCmdParamCallStateData callStateData; |
|
1062 callStateData.SetCallId( KConferenceCallId ); |
|
1063 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallState, |
|
1064 &callStateData ); |
|
1065 |
|
1066 if( callStateData.CallState() == EPEStateHeld ) |
|
1067 { |
|
1068 //set Private button to Dimmed. |
|
1069 SetTouchPaneButtonDisabled( EPhoneInCallCmdPrivate ); |
|
1070 } |
|
1071 else |
|
1072 { |
|
1073 //set Private button to UnDimmed. |
|
1074 SetTouchPaneButtonEnabled( EPhoneInCallCmdPrivate ); |
|
1075 } |
|
1076 |
|
1077 } |
|
1078 |
|
1079 // ----------------------------------------------------------- |
|
1080 // CPhoneConference::IsConferenceBubbleInSelectionMode |
|
1081 // ----------------------------------------------------------- |
|
1082 // |
|
1083 TBool CPhoneConference::IsConferenceBubbleInSelectionMode() const |
|
1084 { |
|
1085 TPhoneCmdParamBoolean booleanParam; |
|
1086 |
|
1087 iViewCommandHandle->ExecuteCommand( |
|
1088 EPhoneViewGetIsConferenceInSelectionMode, &booleanParam ); |
|
1089 |
|
1090 return booleanParam.Boolean(); |
|
1091 } |
|
1092 |
|
1093 // --------------------------------------------------------- |
|
1094 // CPhoneState::HandleCreateNumberEntryL |
|
1095 // --------------------------------------------------------- |
|
1096 // |
|
1097 void CPhoneConference::HandleCreateNumberEntryL( const TKeyEvent& aKeyEvent, |
|
1098 TEventCode aEventCode ) |
|
1099 { |
|
1100 __LOGMETHODSTARTEND( EPhoneControl, "CPhoneConference::HandleCreateNumberEntryL() "); |
|
1101 if ( !IsConferenceBubbleInSelectionMode() ) |
|
1102 { |
|
1103 CPhoneGsmInCall::HandleCreateNumberEntryL( aKeyEvent,aEventCode ); |
|
1104 } |
|
1105 } |
|
1106 |
818 |
1107 // ----------------------------------------------------------- |
819 // ----------------------------------------------------------- |
1108 // CPhoneConference::UpdateConferenceSecurityStatusL |
820 // CPhoneConference::UpdateConferenceSecurityStatusL |
1109 // ----------------------------------------------------------- |
821 // ----------------------------------------------------------- |
1110 // |
822 // |