114 } |
114 } |
115 } |
115 } |
116 |
116 |
117 iCallId = callStateData.CallId(); |
117 iCallId = callStateData.CallId(); |
118 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag ); |
118 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag ); |
119 |
|
120 |
|
121 // Update phone number availability for menu use |
|
122 PhoneNumberAvailableInPhoneEngineL( callStateData.CallId() ); |
|
123 |
119 |
124 } |
120 } |
125 |
121 |
126 // ----------------------------------------------------------- |
122 // ----------------------------------------------------------- |
127 // CPhoneSingleCall::NewL() |
123 // CPhoneSingleCall::NewL() |
292 break; |
286 break; |
293 |
287 |
294 /* Flow through */ |
288 /* Flow through */ |
295 case EPhoneCmdNoSwitchToVideo: |
289 case EPhoneCmdNoSwitchToVideo: |
296 case EPhoneCmdNoSwitchToVoice: |
290 case EPhoneCmdNoSwitchToVoice: |
297 // Sets touch buttons to correct status if 'No' command has occured. |
|
298 iViewCommandHandle->ExecuteCommand( EPhoneResetTouchButtons ); |
|
299 break; |
291 break; |
300 |
292 |
301 case EPhoneCmdYesSwitchToVoice: |
293 case EPhoneCmdYesSwitchToVoice: |
302 // Set current call id |
294 // Set current call id |
303 iStateMachine->SetCallId( iCallId ); |
295 iStateMachine->SetCallId( iCallId ); |
338 |
330 |
339 return commandStatus; |
331 return commandStatus; |
340 } |
332 } |
341 |
333 |
342 // ----------------------------------------------------------- |
334 // ----------------------------------------------------------- |
343 // CPhoneSingleCall::OpenMenuBarL |
|
344 // ----------------------------------------------------------- |
|
345 // |
|
346 EXPORT_C void CPhoneSingleCall::OpenMenuBarL() |
|
347 { |
|
348 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneSingleCall::OpenMenuBarL()"); |
|
349 |
|
350 if ( IsVideoCall ( iCallId )) |
|
351 { |
|
352 OpenVideoCallMenuBarL(); |
|
353 } |
|
354 else |
|
355 { |
|
356 CPhoneGsmInCall::OpenMenuBarL(); |
|
357 } |
|
358 } |
|
359 |
|
360 // ----------------------------------------------------------- |
|
361 // CPhoneSingleCall::CallId |
335 // CPhoneSingleCall::CallId |
362 // ----------------------------------------------------------- |
336 // ----------------------------------------------------------- |
363 // |
337 // |
364 EXPORT_C TInt CPhoneSingleCall::CallId() const |
338 EXPORT_C TInt CPhoneSingleCall::CallId() const |
365 { |
339 { |
371 // ----------------------------------------------------------- |
345 // ----------------------------------------------------------- |
372 // |
346 // |
373 void CPhoneSingleCall::OpenVideoCallMenuBarL() |
347 void CPhoneSingleCall::OpenVideoCallMenuBarL() |
374 { |
348 { |
375 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneSingleCall::OpenVideoCallMenuBarL()"); |
349 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneSingleCall::OpenVideoCallMenuBarL()"); |
376 if( FeatureManager::FeatureSupported( KFeatureIdCsVideoTelephony ) ) |
350 |
377 { |
|
378 TInt resourceId; |
|
379 |
|
380 if ( IsNumberEntryUsedL() ) |
|
381 { |
|
382 resourceId = EPhoneVideoCallMenubarWithNumberEntry; |
|
383 } |
|
384 else |
|
385 { |
|
386 resourceId = EPhoneVideoCallMenubar; |
|
387 } |
|
388 |
|
389 TPhoneCmdParamInteger integerParam; |
|
390 integerParam.SetInteger( |
|
391 CPhoneMainResourceResolver::Instance()-> |
|
392 ResolveResourceID( resourceId ) ); |
|
393 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, |
|
394 &integerParam ); |
|
395 } |
|
396 } |
351 } |
397 |
352 |
398 // ----------------------------------------------------------- |
353 // ----------------------------------------------------------- |
399 // CPhoneSingleCall::HandleHeldL |
354 // CPhoneSingleCall::HandleHeldL |
400 // ----------------------------------------------------------- |
355 // ----------------------------------------------------------- |
567 TInt aCallId, |
522 TInt aCallId, |
568 const TPhoneCmdParamBoolean aCommandParam ) |
523 const TPhoneCmdParamBoolean aCommandParam ) |
569 { |
524 { |
570 __LOGMETHODSTARTEND( EPhoneUIStates, |
525 __LOGMETHODSTARTEND( EPhoneUIStates, |
571 "CPhoneSingleCall::DisplayIncomingCallL()"); |
526 "CPhoneSingleCall::DisplayIncomingCallL()"); |
572 // Close menu bar, if it is displayed |
|
573 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
574 |
527 |
575 // Cannot delete active note, e.g. New call query, |
528 // Cannot delete active note, e.g. New call query, |
576 // but show waiting note with or without caller name |
529 // but show waiting note with or without caller name |
577 if ( IsAnyQueryActiveL() || |
530 if ( IsAnyQueryActiveL() || |
578 ( !aCommandParam.Boolean() && iOnScreenDialer ) ) |
531 ( !aCommandParam.Boolean() && iOnScreenDialer ) ) |
603 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication, |
556 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetTopApplication, |
604 &uidParam ); |
557 &uidParam ); |
605 |
558 |
606 DisplayHeaderForCallComingInL( aCallId, ETrue ); //waiting call |
559 DisplayHeaderForCallComingInL( aCallId, ETrue ); //waiting call |
607 } |
560 } |
608 |
|
609 // --------------------------------------------------------- |
|
610 // CPhoneSingleCall::CallFromNewCallQueryL |
|
611 // --------------------------------------------------------- |
|
612 // |
|
613 void CPhoneSingleCall::CallFromNewCallQueryL() |
|
614 { |
|
615 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
616 "CPhoneSingleCall::CallFromNewCallQueryL()"); |
|
617 // First get the phone number from the dialog |
|
618 TPhoneCmdParamString phoneNumberParam; |
|
619 HBufC *content = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
|
620 TPtr ptr( content->Des() ); |
|
621 phoneNumberParam.SetString( &ptr ); |
|
622 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetTextQueryContent, |
|
623 &phoneNumberParam ); |
|
624 |
|
625 // Store the phone number |
|
626 iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr ); |
|
627 |
|
628 // clean up stack |
|
629 CleanupStack::PopAndDestroy( content ); |
|
630 |
|
631 DialVoiceCallL(); |
|
632 } |
|
633 |
|
634 // ----------------------------------------------------------- |
561 // ----------------------------------------------------------- |
635 // CPhoneSingleCall::HandleDiallingL |
562 // CPhoneSingleCall::HandleDiallingL |
636 // ----------------------------------------------------------- |
563 // ----------------------------------------------------------- |
637 // |
564 // |
638 void CPhoneSingleCall::HandleDiallingL( TInt aCallId ) |
565 void CPhoneSingleCall::HandleDiallingL( TInt aCallId ) |
639 { |
566 { |
640 __LOGMETHODSTARTEND( EPhoneUIStates, |
567 __LOGMETHODSTARTEND( EPhoneUIStates, |
641 "CPhoneSingleCall::HandleDiallingL()"); |
568 "CPhoneSingleCall::HandleDiallingL()"); |
642 |
|
643 BeginTransEffectLC( ENumberEntryClose ); |
|
644 BeginUiUpdateLC(); |
569 BeginUiUpdateLC(); |
645 |
570 |
646 SetNumberEntryVisibilityL(EFalse); |
571 SetNumberEntryVisibilityL(EFalse); |
647 |
572 |
648 // Display call setup |
573 // Display call setup |
650 |
575 |
651 // Show incoming call buttons |
576 // Show incoming call buttons |
652 SetTouchPaneButtons( EPhoneCallSetupAndSingleButtons ); |
577 SetTouchPaneButtons( EPhoneCallSetupAndSingleButtons ); |
653 |
578 |
654 EndUiUpdate(); |
579 EndUiUpdate(); |
655 |
|
656 EndTransEffect(); |
|
657 |
580 |
658 // Go to call setup state |
581 // Go to call setup state |
659 UpdateCbaL( EPhoneCallHandlingCallSetupCBA ); |
582 UpdateCbaL( EPhoneCallHandlingCallSetupCBA ); |
660 iStateMachine->ChangeState( EPhoneStateCallSetupInSingle ); |
583 iStateMachine->ChangeState( EPhoneStateCallSetupInSingle ); |
661 } |
584 } |
666 // |
589 // |
667 void CPhoneSingleCall::DisplayCallSetupL( TInt aCallId ) |
590 void CPhoneSingleCall::DisplayCallSetupL( TInt aCallId ) |
668 { |
591 { |
669 __LOGMETHODSTARTEND( EPhoneUIStates, |
592 __LOGMETHODSTARTEND( EPhoneUIStates, |
670 "CPhoneSingleCall::DisplayCallSetupL()"); |
593 "CPhoneSingleCall::DisplayCallSetupL()"); |
671 // Close menu bar, if it is displayed |
|
672 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
673 |
594 |
674 // Remove dialogs if necessary |
595 // Remove dialogs if necessary |
675 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs ); |
596 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemovePhoneDialogs ); |
676 |
597 |
677 // Capture keys when the phone is dialling |
598 // Capture keys when the phone is dialling |
683 iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground, |
604 iViewCommandHandle->ExecuteCommandL( EPhoneViewBringAppToForeground, |
684 &uidParam ); |
605 &uidParam ); |
685 |
606 |
686 // Display call setup header |
607 // Display call setup header |
687 DisplayHeaderForOutgoingCallL( aCallId ); |
608 DisplayHeaderForOutgoingCallL( aCallId ); |
688 } |
|
689 |
|
690 // ----------------------------------------------------------- |
|
691 // CPhoneSingleCall::SetCallHoldL |
|
692 // ----------------------------------------------------------- |
|
693 // |
|
694 void CPhoneSingleCall::SetCallHoldL() |
|
695 { |
|
696 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
697 "CPhoneSingleCall::SetCallHold()"); |
|
698 |
|
699 TPhoneCmdParamCallStateData callStateData; |
|
700 callStateData.SetCallId( iCallId ); |
|
701 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallState, |
|
702 &callStateData ); |
|
703 |
|
704 if( callStateData.CallState() == EPEStateConnected && !IsVideoCallActiveL() ) |
|
705 { |
|
706 iStateMachine->SetCallId( iCallId ); |
|
707 iStateMachine->SendPhoneEngineMessage( |
|
708 CPEPhoneModelIF::EPEMessageHold ); |
|
709 } |
|
710 else |
|
711 { |
|
712 // Show not allowed note |
|
713 SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed, ETrue ); |
|
714 } |
|
715 } |
|
716 |
|
717 // ----------------------------------------------------------- |
|
718 // CPhoneSingleCall::SetCallResumeL |
|
719 // ----------------------------------------------------------- |
|
720 // |
|
721 void CPhoneSingleCall::SetCallResumeL() |
|
722 { |
|
723 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
724 "CPhoneSingleCall::SetCallHold()"); |
|
725 |
|
726 TPhoneCmdParamCallStateData callStateData; |
|
727 callStateData.SetCallId( iCallId ); |
|
728 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallState, |
|
729 &callStateData ); |
|
730 |
|
731 if( callStateData.CallState() == EPEStateHeld ) |
|
732 { |
|
733 iStateMachine->SetCallId( iCallId ); |
|
734 iStateMachine->SendPhoneEngineMessage( |
|
735 CPEPhoneModelIF::EPEMessageResume ); |
|
736 } |
|
737 else |
|
738 { |
|
739 // Show not allowed note |
|
740 SendGlobalInfoNoteL( EPhoneNoteTextNotAllowed, ETrue ); |
|
741 } |
|
742 } |
609 } |
743 |
610 |
744 // ----------------------------------------------------------- |
611 // ----------------------------------------------------------- |
745 // CPhoneSingleCall::SwitchToVideoL |
612 // CPhoneSingleCall::SwitchToVideoL |
746 // ----------------------------------------------------------- |
613 // ----------------------------------------------------------- |
754 { |
621 { |
755 TInt networkMode( CPhonePubSubProxy::Instance()->Value( KPSUidNetworkInfo, |
622 TInt networkMode( CPhonePubSubProxy::Instance()->Value( KPSUidNetworkInfo, |
756 KNWTelephonyNetworkMode ) ); |
623 KNWTelephonyNetworkMode ) ); |
757 TBool restoreOngoing( CPhonePubSubProxy::Instance()->Value( KUidSystemCategory, |
624 TBool restoreOngoing( CPhonePubSubProxy::Instance()->Value( KUidSystemCategory, |
758 conn::KUidBackupRestoreKey )); |
625 conn::KUidBackupRestoreKey )); |
759 |
|
760 TBool resetTouchButtons = EFalse; |
|
761 |
626 |
762 if ( networkMode != ENWNetworkModeWcdma ) |
627 if ( networkMode != ENWNetworkModeWcdma ) |
763 { |
628 { |
764 // We aren't in 3G, video call not possible |
629 // We aren't in 3G, video call not possible |
765 SendGlobalInfoNoteL( EPhoneInformationNoNetworkSupportForVideoCallNote ); |
630 SendGlobalInfoNoteL( EPhoneInformationNoNetworkSupportForVideoCallNote ); |
766 resetTouchButtons = ETrue; |
|
767 } |
631 } |
768 else if ( restoreOngoing & ( conn::EBURRestoreFull | conn::EBURRestorePartial )) |
632 else if ( restoreOngoing & ( conn::EBURRestoreFull | conn::EBURRestorePartial )) |
769 { |
633 { |
770 // MC restore ongoing |
634 // MC restore ongoing |
771 SendGlobalInfoNoteL( EPhoneInformationVideoCallNotAllowedDuringRestoreNote ); |
635 SendGlobalInfoNoteL( EPhoneInformationVideoCallNotAllowedDuringRestoreNote ); |
772 resetTouchButtons = ETrue; |
|
773 } |
636 } |
774 else |
637 else |
775 { |
638 { |
776 iSwitchToVideoQuery = ETrue; |
639 iSwitchToVideoQuery = ETrue; |
777 ShowQueryL( EPhoneSwitchToVideoQuery ); |
640 //ShowQueryL( EPhoneSwitchToVideoQuery ); |
778 iSwitchToVideoQuery = EFalse; |
641 iSwitchToVideoQuery = EFalse; |
779 } |
642 } |
780 |
|
781 if( resetTouchButtons ) |
|
782 { |
|
783 // Sets touch buttons to correct status if error has occured. |
|
784 iViewCommandHandle->ExecuteCommand( EPhoneResetTouchButtons ); |
|
785 } |
|
786 } |
643 } |
787 } |
644 } |
788 |
645 |
789 // ----------------------------------------------------------- |
646 // ----------------------------------------------------------- |
790 // CPhoneSingleCall::SwitchToVoiceL |
647 // CPhoneSingleCall::SwitchToVoiceL |