81 { |
80 { |
82 __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(), |
81 __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(), |
83 Panic( EPhoneCtrlInvariant ) ); |
82 Panic( EPhoneCtrlInvariant ) ); |
84 |
83 |
85 CPhoneState::BaseConstructL(); |
84 CPhoneState::BaseConstructL(); |
86 |
85 |
87 // Enable the volume display |
|
88 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNaviPaneAudioVolume ); |
|
89 HandleAudioOutputChangedL(); |
86 HandleAudioOutputChangedL(); |
90 |
|
91 TPhoneCmdParamCallStateData callStateData; |
|
92 callStateData.SetCallState( EPEStateDialing ); |
|
93 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, &callStateData ); |
|
94 if ( callStateData.CallId() > KErrNotFound && IsVideoCall( callStateData.CallId() ) ) |
|
95 { |
|
96 CPhonePubSubProxy::Instance()->ChangePropertyValue( |
|
97 KPSUidScreenSaver, |
|
98 KScreenSaverAllowScreenSaver, |
|
99 EPhoneScreensaverNotAllowed ); |
|
100 } |
|
101 } |
87 } |
102 |
88 |
103 // ----------------------------------------------------------- |
89 // ----------------------------------------------------------- |
104 // CPhoneStateCallSetup::NewL() |
90 // CPhoneStateCallSetup::NewL() |
105 // Constructor |
91 // Constructor |
131 "CPhoneStateCallSetup::HandleCommandL()" ); |
117 "CPhoneStateCallSetup::HandleCommandL()" ); |
132 TBool commandStatus = ETrue; |
118 TBool commandStatus = ETrue; |
133 |
119 |
134 switch( aCommand ) |
120 switch( aCommand ) |
135 { |
121 { |
|
122 case EPhoneInCallCmdDialer: |
|
123 iViewCommandHandle->ExecuteCommandL( EPhoneViewOpenDialer ); |
|
124 break; |
|
125 |
136 case EPhoneNumberAcqCmdAddToContacts: |
126 case EPhoneNumberAcqCmdAddToContacts: |
137 { |
127 { |
138 // If call setup is ongoing then add to contacts query should |
128 // If call setup is ongoing then add to contacts query should |
139 // not be opened -> do nothing here. |
129 // not be opened -> do nothing here. |
140 } |
130 } |
163 iDtmfWaitCharTimer = CPhoneDtmfWaitCharTimer::NewL( |
153 iDtmfWaitCharTimer = CPhoneDtmfWaitCharTimer::NewL( |
164 iStateMachine ); |
154 iStateMachine ); |
165 } |
155 } |
166 iDtmfWaitCharTimer->ButtonPressedL(); |
156 iDtmfWaitCharTimer->ButtonPressedL(); |
167 break; |
157 break; |
168 |
158 |
169 case EPhoneDialerCmdHelpDtmf: |
|
170 { |
|
171 if ( FeatureManager::FeatureSupported( KFeatureIdHelp ) ) |
|
172 { |
|
173 TPtrC contextName( KDATA_DIALER_HLP_SEND_DTMF ); |
|
174 iViewCommandHandle->ExecuteCommandL( |
|
175 EPhoneViewLaunchHelpApplication, |
|
176 0, |
|
177 contextName ); |
|
178 } |
|
179 } |
|
180 break; |
|
181 |
159 |
182 case EPhoneCmdOptions: |
160 case EPhoneCmdOptions: |
183 OpenMenuBarL(); |
|
184 break; |
161 break; |
185 |
162 |
186 case EPhoneInCallCmdDtmfManualQuery: |
163 case EPhoneInCallCmdDtmfManualQuery: |
187 if ( iOnScreenDialer ) |
|
188 { |
|
189 ShowDtmfDialerL(); |
|
190 } |
|
191 break; |
164 break; |
192 |
165 |
193 case EPhoneDtmfDialerExit: // fall through |
166 case EPhoneDtmfDialerExit: // fall through |
194 case EPhoneDtmfDialerCancel: |
167 case EPhoneDtmfDialerCancel: |
195 CloseDTMFEditorL(); |
168 break; |
|
169 |
|
170 case EPhoneInCallCmdMute: // fall through |
|
171 case EPhoneInCallCmdUnmute: |
|
172 iStateMachine->PhoneEngineInfo()->SetAudioMuteCommand( |
|
173 ( aCommand == EPhoneInCallCmdMute ) ); |
|
174 iStateMachine->SendPhoneEngineMessage( |
|
175 MPEPhoneModel::EPEMessageSetAudioMute ); |
196 break; |
176 break; |
197 |
177 |
198 default: |
178 default: |
199 commandStatus = CPhoneState::HandleCommandL( aCommand ); |
179 commandStatus = CPhoneState::HandleCommandL( aCommand ); |
200 break; |
180 break; |
201 } |
181 } |
202 |
182 |
203 return commandStatus; |
183 return commandStatus; |
204 } |
184 } |
205 |
185 |
206 // ----------------------------------------------------------- |
|
207 // CPhoneStateCallSetup::OpenMenuBarL |
|
208 // ----------------------------------------------------------- |
|
209 // |
|
210 EXPORT_C void CPhoneStateCallSetup::OpenMenuBarL() |
|
211 { |
|
212 __LOGMETHODSTARTEND(EPhoneControl, |
|
213 "CPhoneStateCallSetup::OpenMenuBarL()" ); |
|
214 |
|
215 if ( iOnScreenDialer ) |
|
216 { |
|
217 if ( IsDTMFEditorVisibleL() && IsNumberEntryVisibleL() ) |
|
218 { |
|
219 TInt resourceId = EPhoneDtmfDialerMenubar; |
|
220 |
|
221 TPhoneCmdParamInteger integerParam; |
|
222 integerParam.SetInteger( |
|
223 CPhoneMainResourceResolver::Instance()-> |
|
224 ResolveResourceID( resourceId ) ); |
|
225 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, |
|
226 &integerParam ); |
|
227 } |
|
228 } |
|
229 } |
|
230 |
186 |
231 // ----------------------------------------------------------- |
187 // ----------------------------------------------------------- |
232 // CPhoneStateCallSetup::HandleNumberEntryClearedL() |
188 // CPhoneStateCallSetup::HandleNumberEntryClearedL() |
233 // ----------------------------------------------------------- |
189 // ----------------------------------------------------------- |
234 // |
190 // |
240 // Update call setup CBA when number entry is cleared |
196 // Update call setup CBA when number entry is cleared |
241 UpdateInCallCbaL(); |
197 UpdateInCallCbaL(); |
242 } |
198 } |
243 |
199 |
244 // ----------------------------------------------------------- |
200 // ----------------------------------------------------------- |
245 // CPhoneStateCallSetup::HandleCreateNumberEntryL |
|
246 // ----------------------------------------------------------- |
|
247 // |
|
248 EXPORT_C void CPhoneStateCallSetup::HandleCreateNumberEntryL( |
|
249 const TKeyEvent& /*aKeyEvent*/, |
|
250 TEventCode /*aEventCode*/) |
|
251 { |
|
252 __LOGMETHODSTARTEND(EPhoneControl, |
|
253 "CPhoneStateCallSetup::HandleCreateNumberEntryL()" ); |
|
254 } |
|
255 |
|
256 // ----------------------------------------------------------- |
|
257 // CPhoneStateCallSetup::UpdateInCallCbaL |
201 // CPhoneStateCallSetup::UpdateInCallCbaL |
258 // ----------------------------------------------------------- |
202 // ----------------------------------------------------------- |
259 // |
203 // |
260 EXPORT_C void CPhoneStateCallSetup::UpdateInCallCbaL() |
204 EXPORT_C void CPhoneStateCallSetup::UpdateInCallCbaL() |
261 { |
205 { |
268 // ----------------------------------------------------------- |
212 // ----------------------------------------------------------- |
269 // |
213 // |
270 EXPORT_C void CPhoneStateCallSetup::UpdateCbaL( TInt aResource ) |
214 EXPORT_C void CPhoneStateCallSetup::UpdateCbaL( TInt aResource ) |
271 { |
215 { |
272 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::UpdateCbaL() "); |
216 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::UpdateCbaL() "); |
273 if ( iOnScreenDialer && IsDTMFEditorVisibleL() ) |
217 iCbaManager->UpdateCbaL( aResource ); |
274 { |
|
275 iCbaManager->SetCbaL( EPhoneDtmfDialerCBA ); |
|
276 } |
|
277 else |
|
278 { |
|
279 iCbaManager->UpdateCbaL( aResource ); |
|
280 } |
|
281 } |
218 } |
282 |
219 |
283 // ----------------------------------------------------------- |
220 // ----------------------------------------------------------- |
284 // CPhoneStateCallSetup::HandleKeyEventL |
221 // CPhoneStateCallSetup::HandleKeyEventL |
285 // ----------------------------------------------------------- |
222 // ----------------------------------------------------------- |
371 MPEPhoneModel::EPEMessageTerminateAllConnections ); |
308 MPEPhoneModel::EPEMessageTerminateAllConnections ); |
372 |
309 |
373 // Remove number entry if long press |
310 // Remove number entry if long press |
374 if ( IsNumberEntryUsedL() ) |
311 if ( IsNumberEntryUsedL() ) |
375 { |
312 { |
376 if ( iOnScreenDialer && IsDTMFEditorVisibleL() ) |
313 iViewCommandHandle->ExecuteCommandL( |
377 { |
314 EPhoneViewRemoveNumberEntry ); |
378 CloseDTMFEditorL(); |
|
379 } |
|
380 else |
|
381 { |
|
382 iViewCommandHandle->ExecuteCommandL( |
|
383 EPhoneViewRemoveNumberEntry ); |
|
384 } |
|
385 } |
315 } |
386 } |
316 } |
387 else |
317 else |
388 { |
318 { |
389 // handle end key |
319 // handle end key |
568 // CPhoneStateCallSetup::HandleConnectedL |
498 // CPhoneStateCallSetup::HandleConnectedL |
569 // ----------------------------------------------------------- |
499 // ----------------------------------------------------------- |
570 // |
500 // |
571 void CPhoneStateCallSetup::HandleConnectedL( TInt aCallId ) |
501 void CPhoneStateCallSetup::HandleConnectedL( TInt aCallId ) |
572 { |
502 { |
573 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleConnectedL()"); |
503 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleConnectedL()"); |
574 |
504 // Keep Phone in the foreground |
575 // Close menu bar, if it is displayed |
505 TPhoneCmdParamBoolean booleanParam; |
576 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
506 booleanParam.SetBoolean( EFalse ); |
|
507 iViewCommandHandle->ExecuteCommandL( |
|
508 EPhoneViewSetNeedToSendToBackgroundStatus, &booleanParam ); |
577 |
509 |
578 BeginUiUpdateLC(); |
510 BeginUiUpdateLC(); |
579 |
511 |
580 // Remove the number entry if it isn't DTMF dialer |
|
581 if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() ) |
|
582 { |
|
583 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
|
584 } |
|
585 |
|
586 // Update the single call |
512 // Update the single call |
587 CPhoneState::UpdateSingleActiveCallL( aCallId ); |
513 CPhoneState::UpdateSingleActiveCallL( aCallId ); |
588 |
514 |
589 // Complete sat request |
|
590 if ( iStateMachine->PhoneEngineInfo()->CallOrigin( aCallId ) == EPECallOriginSAT ) |
|
591 { |
|
592 CompleteSatRequestL( aCallId ); |
|
593 } |
|
594 |
|
595 // Update touch buttons |
515 // Update touch buttons |
596 SetTouchPaneButtons( EPhoneIncallButtons ); |
516 SetTouchPaneButtons( EPhoneIncallButtons ); |
597 |
517 |
598 SetToolbarDimming( EFalse ); |
|
599 |
|
600 EndUiUpdate(); |
518 EndUiUpdate(); |
601 |
519 |
602 // Go to single state |
520 // Go to single state |
603 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
521 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
604 |
522 |
610 // ----------------------------------------------------------- |
528 // ----------------------------------------------------------- |
611 // |
529 // |
612 void CPhoneStateCallSetup::HandleIdleL( TInt aCallId ) |
530 void CPhoneStateCallSetup::HandleIdleL( TInt aCallId ) |
613 { |
531 { |
614 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleIdleL()"); |
532 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleIdleL()"); |
615 if ( !NeedToReturnToForegroundAppL() && |
533 |
616 IsNumberEntryUsedL() ) |
534 BeginUiUpdateLC (); |
617 { |
|
618 BeginTransEffectLC( ECallUiDisappear ); |
|
619 } |
|
620 else |
|
621 { |
|
622 BeginTransEffectLC( ENumberEntryOpen ); |
|
623 } |
|
624 BeginUiUpdateLC(); |
|
625 |
535 |
626 // Disable the volume display |
536 // Disable the volume display |
627 iViewCommandHandle->ExecuteCommandL( EPhoneViewHideNaviPaneAudioVolume ); |
537 iViewCommandHandle->ExecuteCommandL( EPhoneViewHideNaviPaneAudioVolume ); |
628 |
538 |
629 // Remove call |
539 // Remove call |
632 |
542 |
633 CheckIfRestoreNEContentAfterDtmfDialer(); |
543 CheckIfRestoreNEContentAfterDtmfDialer(); |
634 |
544 |
635 if ( IsNumberEntryUsedL() ) |
545 if ( IsNumberEntryUsedL() ) |
636 { |
546 { |
637 if ( NeedToReturnToForegroundAppL() ) |
547 // Show the number entry if it exists |
638 { |
548 SetNumberEntryVisibilityL(ETrue); |
639 // Return phone to the background if send to background is needed. |
|
640 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground ); |
|
641 |
|
642 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility ); |
|
643 |
|
644 // Set Number Entry CBA |
|
645 iCbaManager->SetCbaL( EPhoneNumberAcqCBA ); |
|
646 } |
|
647 else |
|
648 { |
|
649 // Show the number entry if it exists |
|
650 SetNumberEntryVisibilityL(ETrue); |
|
651 } |
|
652 } |
549 } |
653 else if ( NeedToReturnToForegroundAppL() ) |
550 else if ( NeedToSendToBackgroundL() ) |
654 { |
551 { |
655 __PHONELOG( EBasic,EPhoneControl,"CPhoneStateCallSetup::elseif1"); |
552 __PHONELOG( EBasic,EPhoneControl,"CPhoneStateCallSetup::elseif1"); |
656 // Continue displaying current app but set up the |
553 // Continue displaying current app but set up the |
657 // idle screen in the background |
554 // idle screen in the background |
658 SetupIdleScreenInBackgroundL(); |
555 SetupIdleScreenInBackgroundL(); |
663 // Display idle screen |
560 // Display idle screen |
664 DisplayIdleScreenL(); |
561 DisplayIdleScreenL(); |
665 } |
562 } |
666 |
563 |
667 EndUiUpdate(); |
564 EndUiUpdate(); |
668 EndTransEffect(); |
565 // Go to idle state |
669 // No need update cba |
566 // No need update cba |
670 iStateMachine->ChangeState( EPhoneStateIdle ); |
567 iStateMachine->ChangeState( EPhoneStateIdle ); |
671 } |
568 } |
672 |
569 |
673 // ----------------------------------------------------------------------------- |
570 // ----------------------------------------------------------------------------- |
674 // CPhoneStateCallSetup::HandleRemoteTerminatedL |
571 // CPhoneStateCallSetup::HandleRemoteTerminatedL |
675 // ----------------------------------------------------------------------------- |
572 // ----------------------------------------------------------------------------- |
676 // |
573 // |
677 void CPhoneStateCallSetup::HandleRemoteTerminatedL( TInt aCallId ) |
574 void CPhoneStateCallSetup::HandleRemoteTerminatedL( TInt /*aCallId*/ ) |
678 { |
575 { |
679 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleRemoteTerminatedL( ) "); |
576 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleRemoteTerminatedL( ) "); |
680 |
577 |
681 // Remove call header |
578 // Remove call header |
682 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
579 /*iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
683 |
580 |
684 TPhoneCmdParamBoolean globalNotifierParam; |
581 TPhoneCmdParamBoolean globalNotifierParam; |
685 globalNotifierParam.SetBoolean( EFalse ); |
582 globalNotifierParam.SetBoolean( EFalse ); |
686 iViewCommandHandle->ExecuteCommandL( |
583 iViewCommandHandle->ExecuteCommandL( |
687 EPhoneViewSetGlobalNotifiersDisabled, &globalNotifierParam ); |
584 EPhoneViewSetGlobalNotifiersDisabled, &globalNotifierParam );*/ |
688 |
585 |
689 // Video call not possible note is shown by |
586 // Video call not possible note is shown by |
690 // CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL method, |
587 // CPhoneErrorMessagesHandler::ShowErrorSpecificNoteL method, |
691 // if error ECCPErrorCCResourceNotAvailable occured. |
588 // if error ECCPErrorCCResourceNotAvailable occured. |
692 } |
589 } |
696 // ----------------------------------------------------------------------------- |
593 // ----------------------------------------------------------------------------- |
697 // |
594 // |
698 void CPhoneStateCallSetup::HandleAudioOutputChangedL() |
595 void CPhoneStateCallSetup::HandleAudioOutputChangedL() |
699 { |
596 { |
700 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleAudioOutputChangedL( ) "); |
597 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateCallSetup::HandleAudioOutputChangedL( ) "); |
701 |
598 |
|
599 CPhoneState::HandleAudioOutputChangedL(); |
702 // Update the call setup CBA |
600 // Update the call setup CBA |
703 UpdateInCallCbaL(); |
601 UpdateInCallCbaL(); |
704 |
602 SetTouchPaneButtons(0); |
705 CPhoneState::HandleAudioOutputChangedL(); |
|
706 } |
603 } |
707 |
604 |
708 // ----------------------------------------------------------- |
605 // ----------------------------------------------------------- |
709 // CPhoneStateCallSetup::SendDtmfL |
606 // CPhoneStateCallSetup::SendDtmfL |
710 // ----------------------------------------------------------- |
607 // ----------------------------------------------------------- |
720 TPhoneCmdParamString dtmfSequence; |
617 TPhoneCmdParamString dtmfSequence; |
721 HBufC *content = HBufC::NewLC( KPEDtmfMaxLength ); |
618 HBufC *content = HBufC::NewLC( KPEDtmfMaxLength ); |
722 TPtr ptr( content->Des() ); |
619 TPtr ptr( content->Des() ); |
723 dtmfSequence.SetString( &ptr ); |
620 dtmfSequence.SetString( &ptr ); |
724 |
621 |
725 if ( iOnScreenDialer && IsDTMFEditorVisibleL() ) |
622 if ( iOnScreenDialer ) |
726 { |
623 { |
727 iViewCommandHandle->ExecuteCommand( |
624 iViewCommandHandle->ExecuteCommand( |
728 EPhoneViewGetNumberFromEntry, |
625 EPhoneViewGetNumberFromEntry, |
729 &dtmfSequence ); |
626 &dtmfSequence ); |
730 |
627 } |
731 CloseDTMFEditorL(); |
|
732 } |
|
733 else |
|
734 { |
|
735 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetTextQueryContent, |
|
736 &dtmfSequence ); |
|
737 } |
|
738 |
628 |
739 // Send the DTMF |
629 // Send the DTMF |
740 if ( ptr.Length() ) |
630 if ( ptr.Length() ) |
741 { |
631 { |
742 iStateMachine->PhoneEngineInfo()->SetDtmfStringCommand( ptr ); |
632 iStateMachine->PhoneEngineInfo()->SetDtmfStringCommand( ptr ); |