124 { |
124 { |
125 __LOGMETHODSTARTEND(EPhoneControl, |
125 __LOGMETHODSTARTEND(EPhoneControl, |
126 "CPhoneStateInCall::HandleKeyMessageL()" ); |
126 "CPhoneStateInCall::HandleKeyMessageL()" ); |
127 switch ( aCode ) |
127 switch ( aCode ) |
128 { |
128 { |
129 // end-key |
129 case EKeyNo: // end-key |
130 case EKeyNo: |
|
131 HandleEndKeyPressL( aMessage ); |
130 HandleEndKeyPressL( aMessage ); |
132 break; |
131 break; |
133 |
132 |
134 // Voice key |
133 case EKeyDevice6: // Voice key |
135 case EKeyDevice6: |
|
136 HandleVoiceKeyPressL( aMessage ); |
134 HandleVoiceKeyPressL( aMessage ); |
137 break; |
135 break; |
138 |
136 |
139 #ifdef RD_INTELLIGENT_TEXT_INPUT |
137 #ifdef RD_INTELLIGENT_TEXT_INPUT |
140 case EKeyEnter: |
138 case EKeyEnter: |
204 HandleAudioVolumeChangedL(); |
201 HandleAudioVolumeChangedL(); |
205 break; |
202 break; |
206 |
203 |
207 case MEngineMonitor::EPEMessageDisconnecting: |
204 case MEngineMonitor::EPEMessageDisconnecting: |
208 CancelDTMFSendingL(); |
205 CancelDTMFSendingL(); |
209 if ( !CPhoneState::IsAnyConnectedCalls() ) |
|
210 { |
|
211 CloseDtmfQueryL(); |
|
212 } |
|
213 CPhoneState::HandlePhoneEngineMessageL( aMessage, aCallId ); |
206 CPhoneState::HandlePhoneEngineMessageL( aMessage, aCallId ); |
214 break; |
207 break; |
215 |
208 |
216 case MEngineMonitor::EPEMessageInValidEmergencyNumber: |
209 case MEngineMonitor::EPEMessageInValidEmergencyNumber: |
217 SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue ); |
210 SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue ); |
218 break; |
211 break; |
219 |
212 |
220 case MEngineMonitor::EPEMessageValidEmergencyNumber: |
213 case MEngineMonitor::EPEMessageValidEmergencyNumber: |
221 DialVoiceCallL(); |
214 DialVoiceCallL(); |
222 break; |
215 break; |
223 |
216 |
224 case MEngineMonitor::EPEMessageRemotePartyInfoChanged: |
217 case MEngineMonitor::EPEMessageRemotePartyInfoChanged: |
225 // If there is a waiting call then update header and label |
218 // If there is a waiting call then update header and label |
226 // else forward message to CPhoneState. |
219 // else forward message to CPhoneState. |
227 if ( IsWaitingCallL( aCallId ) ) |
220 if ( IsWaitingCallL( aCallId ) ) |
249 TInt aCallId, |
242 TInt aCallId, |
250 TPhoneCmdParamCallHeaderData aCallHeaderParam ) |
243 TPhoneCmdParamCallHeaderData aCallHeaderParam ) |
251 { |
244 { |
252 __LOGMETHODSTARTEND(EPhoneControl, |
245 __LOGMETHODSTARTEND(EPhoneControl, |
253 "CPhoneStateInCall::UpdateRemoteInfoDataAndLabelL ()" ); |
246 "CPhoneStateInCall::UpdateRemoteInfoDataAndLabelL ()" ); |
254 // Update the remote info data in the call header |
|
255 iViewCommandHandle->ExecuteCommandL( |
247 iViewCommandHandle->ExecuteCommandL( |
256 EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel, |
248 EPhoneViewUpdateCallHeaderRemoteInfoDataAndLabel, |
257 aCallId, |
249 aCallId, |
258 &aCallHeaderParam ); |
250 &aCallHeaderParam ); |
259 } |
251 } |
262 // CPhoneStateInCall::HandleIdleL |
254 // CPhoneStateInCall::HandleIdleL |
263 // ----------------------------------------------------------- |
255 // ----------------------------------------------------------- |
264 // |
256 // |
265 EXPORT_C void CPhoneStateInCall::HandleIdleL( TInt aCallId ) |
257 EXPORT_C void CPhoneStateInCall::HandleIdleL( TInt aCallId ) |
266 { |
258 { |
267 __LOGMETHODSTARTEND(EPhoneControl, |
259 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateInCall::HandleIdleL()" ); |
268 "CPhoneStateInCall::HandleIdleL()" ); |
|
269 __ASSERT_DEBUG( aCallId >= 0, Panic( EPhoneCtrlParameterNotInitialized ) ); |
260 __ASSERT_DEBUG( aCallId >= 0, Panic( EPhoneCtrlParameterNotInitialized ) ); |
270 |
|
271 TBool showDialer( EFalse ); |
261 TBool showDialer( EFalse ); |
272 HBufC *phoneNumber = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
262 HBufC *phoneNumber = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
273 TPtr ptr( phoneNumber->Des() ); |
263 TPtr ptr( phoneNumber->Des() ); |
274 TPhoneCmdParamString stringParam; |
264 TPhoneCmdParamString stringParam; |
275 stringParam.SetString( &ptr ); |
265 stringParam.SetString( &ptr ); |
276 |
266 |
277 // Remove call |
|
278 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
267 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
279 |
|
280 //Make sure that toolbar is not shown |
|
281 iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar ); |
268 iViewCommandHandle->ExecuteCommandL( EPhoneViewHideToolbar ); |
|
269 |
282 BeginUiUpdateLC(); |
270 BeginUiUpdateLC(); |
283 SetDefaultFlagsL(); |
271 SetDefaultFlagsL(); |
284 if ( IsNumberEntryUsedL() ) |
272 if ( IsNumberEntryUsedL() ) |
285 { |
273 { |
286 iViewCommandHandle->ExecuteCommand( |
274 iViewCommandHandle->ExecuteCommand( |
289 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
277 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
290 showDialer = ETrue; |
278 showDialer = ETrue; |
291 } |
279 } |
292 |
280 |
293 if ( !TopAppIsDisplayedL() || IsAutoLockOn() ) |
281 if ( !TopAppIsDisplayedL() || IsAutoLockOn() ) |
294 { |
282 { |
295 // Continue displaying current app but set up the |
283 // Continue displaying current app but set up the |
296 // idle screen in the background |
284 // idle screen in the background |
297 SetupIdleScreenInBackgroundL(); |
285 SetupIdleScreenInBackgroundL(); |
298 } |
286 } |
299 else if ( showDialer ) |
287 else if ( showDialer ) |
300 { |
288 { |
301 // Open dialer |
|
302 iViewCommandHandle->ExecuteCommandL( EPhoneViewLaunchLogs, &stringParam ); |
289 iViewCommandHandle->ExecuteCommandL( EPhoneViewLaunchLogs, &stringParam ); |
303 } |
290 } |
304 else |
291 else |
305 { |
292 { |
306 // Display idle screen and update CBAs |
|
307 DisplayIdleScreenL(); |
293 DisplayIdleScreenL(); |
308 } |
294 } |
309 |
295 |
310 DeleteTouchPaneButtons(); |
296 DeleteTouchPaneButtons(); |
311 EndUiUpdate(); |
297 EndUiUpdate(); |
312 // Display call termination note, if necessary |
|
313 DisplayCallTerminationNoteL(); |
298 DisplayCallTerminationNoteL(); |
314 |
299 |
315 TPhoneCmdParamKeyCapture captureParam; |
300 TPhoneCmdParamKeyCapture captureParam; |
316 captureParam.SetKeyCode( EKeyNo ); |
301 captureParam.SetKeyCode( EKeyNo ); |
317 iViewCommandHandle->ExecuteCommand( EPhoneViewStopCapturingKey, &captureParam ); |
302 iViewCommandHandle->ExecuteCommand( EPhoneViewStopCapturingKey, &captureParam ); |
318 |
|
319 CleanupStack::PopAndDestroy( phoneNumber ); |
303 CleanupStack::PopAndDestroy( phoneNumber ); |
320 // Go to idle state |
|
321 iStateMachine->ChangeState( EPhoneStateIdle ); |
304 iStateMachine->ChangeState( EPhoneStateIdle ); |
322 } |
305 } |
323 |
306 |
324 // ----------------------------------------------------------- |
307 // ----------------------------------------------------------- |
325 // CPhoneStateInCall::UpdateInCallCbaL |
308 // CPhoneStateInCall::UpdateInCallCbaL |
336 // ----------------------------------------------------------- |
319 // ----------------------------------------------------------- |
337 // |
320 // |
338 EXPORT_C void CPhoneStateInCall::UpdateCbaL( TInt aResource ) |
321 EXPORT_C void CPhoneStateInCall::UpdateCbaL( TInt aResource ) |
339 { |
322 { |
340 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateInCall::UpdateCbaL() "); |
323 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateInCall::UpdateCbaL() "); |
341 iCbaManager->UpdateCbaL( aResource ); |
324 iCbaManager->UpdateCbaL( aResource ); |
342 } |
325 } |
343 |
326 |
344 // ----------------------------------------------------------- |
327 // ----------------------------------------------------------- |
345 // CPhoneStateInCall::HandleAudioMuteChangedL |
328 // CPhoneStateInCall::HandleAudioMuteChangedL |
346 // ----------------------------------------------------------- |
329 // ----------------------------------------------------------- |
348 void CPhoneStateInCall::HandleAudioMuteChangedL() |
331 void CPhoneStateInCall::HandleAudioMuteChangedL() |
349 { |
332 { |
350 __LOGMETHODSTARTEND(EPhoneControl, |
333 __LOGMETHODSTARTEND(EPhoneControl, |
351 "CPhoneStateInCall::HandleAudioMuteChangedL()" ); |
334 "CPhoneStateInCall::HandleAudioMuteChangedL()" ); |
352 CPhoneState::HandleAudioMuteChangedL(); |
335 CPhoneState::HandleAudioMuteChangedL(); |
353 |
|
354 // Update the single call CBA only if the number entry is not |
336 // Update the single call CBA only if the number entry is not |
355 // used |
337 // used |
356 if ( !IsNumberEntryUsedL() ) |
338 if ( !IsNumberEntryUsedL() ) |
357 { |
339 { |
358 // Go to current state implementation |
340 // Go to current state implementation |
366 // |
348 // |
367 void CPhoneStateInCall::HandleAudioOutputChangedL() |
349 void CPhoneStateInCall::HandleAudioOutputChangedL() |
368 { |
350 { |
369 __LOGMETHODSTARTEND(EPhoneControl, |
351 __LOGMETHODSTARTEND(EPhoneControl, |
370 "CPhoneStateInCall::HandleAudioOutputChangedL()" ); |
352 "CPhoneStateInCall::HandleAudioOutputChangedL()" ); |
371 // Handle the handsfree mode change |
|
372 CPhoneState::HandleAudioOutputChangedL(); |
353 CPhoneState::HandleAudioOutputChangedL(); |
373 |
354 |
374 // Update the single call CBA only if the number entry is not |
355 UpdateInCallCbaL(); |
375 // used |
|
376 if ( !IsNumberEntryVisibleL() ) |
|
377 { |
|
378 // Go to current state implementation |
|
379 UpdateInCallCbaL(); |
|
380 } |
|
381 |
356 |
382 SetTouchPaneButtons(0); |
357 SetTouchPaneButtons(0); |
383 } |
358 } |
384 |
359 |
385 // ----------------------------------------------------------- |
360 // ----------------------------------------------------------- |
388 // |
363 // |
389 void CPhoneStateInCall::HandleAudioVolumeChangedL() |
364 void CPhoneStateInCall::HandleAudioVolumeChangedL() |
390 { |
365 { |
391 __LOGMETHODSTARTEND(EPhoneControl, |
366 __LOGMETHODSTARTEND(EPhoneControl, |
392 "CPhoneStateInCall::HandleAudioVolumeChangedL()" ); |
367 "CPhoneStateInCall::HandleAudioVolumeChangedL()" ); |
393 // Update the volume display |
|
394 TInt audioVolume = iStateMachine->PhoneEngineInfo()->AudioVolume(); |
368 TInt audioVolume = iStateMachine->PhoneEngineInfo()->AudioVolume(); |
395 TPhoneCmdParamInteger volumeParam; |
369 TPhoneCmdParamInteger volumeParam; |
396 volumeParam.SetInteger( audioVolume ); |
370 volumeParam.SetInteger( audioVolume ); |
397 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetNaviPaneAudioVolume, |
371 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetNaviPaneAudioVolume, |
398 &volumeParam ); |
372 &volumeParam ); |
408 "CPhoneStateInCall::HandleSendingDTMFL()" ); |
382 "CPhoneStateInCall::HandleSendingDTMFL()" ); |
409 TPhoneCmdParamNote noteParam; |
383 TPhoneCmdParamNote noteParam; |
410 noteParam.SetType( EPhoneNoteDtmfSending ); |
384 noteParam.SetType( EPhoneNoteDtmfSending ); |
411 noteParam.SetResourceId( CPhoneMainResourceResolver::Instance()-> |
385 noteParam.SetResourceId( CPhoneMainResourceResolver::Instance()-> |
412 ResolveResourceID( EPhoneSendingDtmfWaitNote ) ); |
386 ResolveResourceID( EPhoneSendingDtmfWaitNote ) ); |
413 |
387 |
414 // Show the "Sending..." Wait Note, and pre-populate it |
388 // Show the "Sending..." Wait Note, and pre-populate it |
415 // with the PhoneEngine's current DTMF String. |
389 // with the PhoneEngine's current DTMF String. |
416 // Set the text for the wait-note. |
390 // Set the text for the wait-note. |
417 TPEDtmfString dtmfString = iStateMachine->PhoneEngineInfo()->DtmfString(); |
391 TPEDtmfString dtmfString = iStateMachine->PhoneEngineInfo()->DtmfString(); |
418 HBufC* noteText = StringLoader::LoadLC( |
392 HBufC* noteText = StringLoader::LoadLC( |
419 CPhoneMainResourceResolver::Instance()-> |
393 CPhoneMainResourceResolver::Instance()-> |
420 ResolveResourceID( EPhoneSendingDtmfWaitNoteText ), |
394 ResolveResourceID( EPhoneSendingDtmfWaitNoteText ), |
421 dtmfString ); |
395 dtmfString ); |
422 noteParam.SetText( *noteText ); |
396 noteParam.SetText( *noteText ); |
423 |
|
424 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, ¬eParam ); |
397 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowNote, ¬eParam ); |
425 |
|
426 CleanupStack::PopAndDestroy( noteText ); |
398 CleanupStack::PopAndDestroy( noteText ); |
427 } |
399 } |
428 |
400 |
429 // ----------------------------------------------------------- |
401 // ----------------------------------------------------------- |
430 // CPhoneStateInCall::HandleStoppedDTMFL |
402 // CPhoneStateInCall::HandleStoppedDTMFL |
432 // |
404 // |
433 void CPhoneStateInCall::HandleStoppedDTMFL() |
405 void CPhoneStateInCall::HandleStoppedDTMFL() |
434 { |
406 { |
435 __LOGMETHODSTARTEND(EPhoneControl, |
407 __LOGMETHODSTARTEND(EPhoneControl, |
436 "CPhoneStateInCall::HandleStoppedDTMFL()" ); |
408 "CPhoneStateInCall::HandleStoppedDTMFL()" ); |
437 // Remove the Sending... note |
|
438 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNote ); |
409 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNote ); |
439 |
|
440 // Fetch the remaining (unparsed) portion of the DTMF String |
410 // Fetch the remaining (unparsed) portion of the DTMF String |
441 // from PhoneEngine |
411 // from PhoneEngine |
442 TPEDtmfString dtmfString = iStateMachine->PhoneEngineInfo()->DtmfString(); |
412 TPEDtmfString dtmfString = iStateMachine->PhoneEngineInfo()->DtmfString(); |
443 |
413 |
444 if ( dtmfString.Length() ) |
414 if ( dtmfString.Length() ) |
454 HBufC* queryPrompt = StringLoader::LoadLC( |
424 HBufC* queryPrompt = StringLoader::LoadLC( |
455 CPhoneMainResourceResolver::Instance()->ResolveResourceID( |
425 CPhoneMainResourceResolver::Instance()->ResolveResourceID( |
456 EPhoneDtmfWaitCharacterConfirmationQueryText ), |
426 EPhoneDtmfWaitCharacterConfirmationQueryText ), |
457 dtmfString ); |
427 dtmfString ); |
458 queryParam.SetQueryPrompt( *queryPrompt ); |
428 queryParam.SetQueryPrompt( *queryPrompt ); |
459 |
|
460 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowQuery, |
429 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowQuery, |
461 &queryParam ); |
430 &queryParam ); |
462 |
|
463 CleanupStack::PopAndDestroy( queryPrompt ); |
431 CleanupStack::PopAndDestroy( queryPrompt ); |
464 } |
432 } |
465 else |
433 else |
466 { |
434 { |
467 // Stop the asynchronous sending operation the |
435 // Stop the asynchronous sending operation the |
470 MPEPhoneModel::EPEMessageStopDTMFSending ); |
438 MPEPhoneModel::EPEMessageStopDTMFSending ); |
471 |
439 |
472 // Prompt for more characters by showing DTMF query with empty string |
440 // Prompt for more characters by showing DTMF query with empty string |
473 HBufC* emptyString = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
441 HBufC* emptyString = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
474 TPtr ptr( emptyString->Des() ); |
442 TPtr ptr( emptyString->Des() ); |
475 |
|
476 ShowDtmfTextQueryL( |
443 ShowDtmfTextQueryL( |
477 CPhoneMainResourceResolver::Instance()-> |
444 CPhoneMainResourceResolver::Instance()-> |
478 ResolveResourceID( EPhoneDtmfNumberQuery ), |
445 ResolveResourceID( EPhoneDtmfNumberQuery ), |
479 CPhoneMainResourceResolver::Instance()-> |
446 CPhoneMainResourceResolver::Instance()-> |
480 ResolveResourceID( EPhoneSendDtmfEmptyEditBoxCBA ), |
447 ResolveResourceID( EPhoneSendDtmfEmptyEditBoxCBA ), |
481 CPhoneMainResourceResolver::Instance()-> |
448 CPhoneMainResourceResolver::Instance()-> |
482 ResolveResourceID( EPhoneSendDtmfNormalEditBoxCBA ), |
449 ResolveResourceID( EPhoneSendDtmfNormalEditBoxCBA ), |
483 &ptr ); |
450 &ptr ); |
484 |
|
485 CleanupStack::PopAndDestroy( emptyString ); |
451 CleanupStack::PopAndDestroy( emptyString ); |
486 } |
452 } |
487 } |
453 } |
488 |
454 |
489 // ----------------------------------------------------------- |
455 // ----------------------------------------------------------- |
492 // |
458 // |
493 void CPhoneStateInCall::CancelDTMFSendingL() |
459 void CPhoneStateInCall::CancelDTMFSendingL() |
494 { |
460 { |
495 __LOGMETHODSTARTEND(EPhoneControl, |
461 __LOGMETHODSTARTEND(EPhoneControl, |
496 "CPhoneStateInCall::CancelDTMFSendingL()" ); |
462 "CPhoneStateInCall::CancelDTMFSendingL()" ); |
497 // Remove the Sending... note |
|
498 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveDtmfNote ); |
463 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveDtmfNote ); |
499 } |
464 } |
500 |
465 |
501 // ----------------------------------------------------------- |
466 // ----------------------------------------------------------- |
502 // CPhoneStateInCall::HandleCommandL |
467 // CPhoneStateInCall::HandleCommandL |
503 // ----------------------------------------------------------- |
468 // ----------------------------------------------------------- |
504 // |
469 // |
505 EXPORT_C TBool CPhoneStateInCall::HandleCommandL( TInt aCommand ) |
470 EXPORT_C TBool CPhoneStateInCall::HandleCommandL( TInt aCommand ) |
506 { |
471 { |
507 __LOGMETHODSTARTEND( EPhoneControl, |
472 __LOGMETHODSTARTEND( EPhoneControl, "CPhoneStateInCall::HandleCommandL()" ); |
508 "CPhoneStateInCall::HandleCommandL()" ); |
|
509 __PHONELOG1 ( EBasic, EPhoneControl, |
473 __PHONELOG1 ( EBasic, EPhoneControl, |
510 "CPhoneStateInCall::HandleCommandL() - aCommand = %d ", aCommand ); |
474 "CPhoneStateInCall::HandleCommandL() - aCommand = %d ", aCommand ); |
511 TBool commandStatus = ETrue; |
475 TBool commandStatus = ETrue; |
512 |
|
513 switch( aCommand ) |
476 switch( aCommand ) |
514 { |
477 { |
515 case EPhoneInCallCmdDialer: |
478 case EPhoneInCallCmdDialer: |
516 iViewCommandHandle->ExecuteCommandL( EPhoneViewOpenDialer ); |
479 iViewCommandHandle->ExecuteCommandL( EPhoneViewOpenDialer ); |
517 break; |
|
518 case EPhoneCmdOptions: |
|
519 break; |
480 break; |
520 |
481 |
521 case EPhoneDtmfDialerCancel: |
482 case EPhoneDtmfDialerCancel: |
522 { |
483 { |
523 // Activate DTMF list query when cancel is pressed. |
484 // Activate DTMF list query when cancel is pressed. |
524 // Forwards command to the framework |
485 // Forwards command to the framework |
525 HandleCommandL( EPhoneInCallCmdDtmfListQuery ); |
486 HandleCommandL( EPhoneInCallCmdDtmfListQuery ); |
526 } |
|
527 break; |
|
528 case EPhoneDtmfDialerExit: |
|
529 { |
|
530 } |
487 } |
531 break; |
488 break; |
532 |
489 |
533 case EPhoneInCallCmdEndThisActiveCall: |
490 case EPhoneInCallCmdEndThisActiveCall: |
534 CPhoneState::DisconnectCallL(); |
491 CPhoneState::DisconnectCallL(); |
545 iStateMachine->PhoneEngineInfo()->SetAudioMuteCommand( |
502 iStateMachine->PhoneEngineInfo()->SetAudioMuteCommand( |
546 ( aCommand == EPhoneInCallCmdMute ) ); |
503 ( aCommand == EPhoneInCallCmdMute ) ); |
547 iStateMachine->SendPhoneEngineMessage( |
504 iStateMachine->SendPhoneEngineMessage( |
548 MPEPhoneModel::EPEMessageSetAudioMute ); |
505 MPEPhoneModel::EPEMessageSetAudioMute ); |
549 break; |
506 break; |
|
507 |
550 //DTMF list query - dialog |
508 //DTMF list query - dialog |
551 case EPhoneInCallCmdDtmfListQuery: |
509 case EPhoneInCallCmdDtmfListQuery: |
552 LaunchDtmfListQueryL(); |
510 LaunchDtmfListQueryL(); |
553 break; |
|
554 |
|
555 //DTMF list query - Search |
|
556 case EPhoneInCallCmdDtmfListViewSearch: |
|
557 break; |
|
558 |
|
559 //DTMF manual entry |
|
560 case EPhoneInCallCmdDtmfManualQuery: |
|
561 break; |
|
562 |
|
563 // DTMF manual entry - Search |
|
564 case EPhoneCmdDtmfSearch: |
|
565 break; |
511 break; |
566 |
512 |
567 // DTMF entry - Ok |
513 // DTMF entry - Ok |
568 case EPhoneCmdDtmfOk: |
514 case EPhoneCmdDtmfOk: |
569 SendDtmfL(); |
515 SendDtmfL(); |
622 else |
560 else |
623 { |
561 { |
624 iStateMachine->SendPhoneEngineMessage( |
562 iStateMachine->SendPhoneEngineMessage( |
625 MPEPhoneModel::EPEMessageCheckEmergencyNumber ); |
563 MPEPhoneModel::EPEMessageCheckEmergencyNumber ); |
626 } |
564 } |
627 CleanupStack::PopAndDestroy( phoneNumber ); |
565 CleanupStack::PopAndDestroy( phoneNumber ); |
628 } |
566 } |
629 else |
567 else |
630 { |
568 { |
631 // Provide number information with dial command |
|
632 CallFromNumberEntryL(); |
569 CallFromNumberEntryL(); |
633 } |
570 } |
634 break; |
571 break; |
635 |
572 |
636 case EPhoneCmdEnd: |
573 case EPhoneCmdEnd: |
637 CloseDtmfQueryL(); |
|
638 CPhoneState::DisconnectCallL(); |
574 CPhoneState::DisconnectCallL(); |
639 break; |
575 break; |
640 |
576 |
641 // 'End all calls' from menu |
577 // 'End all calls' from menu |
642 case EPhoneInCallCmdEndAllCalls: |
578 case EPhoneInCallCmdEndAllCalls: |
647 case EPhoneInCallCmdEndThisOutgoingCall: |
583 case EPhoneInCallCmdEndThisOutgoingCall: |
648 DisconnectOutgoingCallL(); |
584 DisconnectOutgoingCallL(); |
649 break; |
585 break; |
650 |
586 |
651 case EPhoneInCallCmdGoToIdle: |
587 case EPhoneInCallCmdGoToIdle: |
652 { |
588 iViewCommandHandle->ExecuteCommandL( EPhoneViewBringIdleToForeground ); |
653 // Bring Idle app to foreground |
589 break; |
654 iViewCommandHandle->ExecuteCommandL( EPhoneViewBringIdleToForeground ); |
|
655 break; |
|
656 } |
|
657 |
590 |
658 case EPhoneNumberAcqCmdVideoCall: |
591 case EPhoneNumberAcqCmdVideoCall: |
659 {// Create normal voice call, if number is emergency number. |
592 {// Create normal voice call, if number is emergency number. |
660 // Get the number entry contents |
593 // Get the number entry contents |
661 HBufC* phoneNumber = PhoneNumberFromEntryLC(); |
594 HBufC* phoneNumber = PhoneNumberFromEntryLC(); |
665 CleanupStack::PopAndDestroy( phoneNumber );} |
598 CleanupStack::PopAndDestroy( phoneNumber );} |
666 break; |
599 break; |
667 |
600 |
668 case EPhoneInCallCmdLockKeypad: |
601 case EPhoneInCallCmdLockKeypad: |
669 case EPhoneInCallCmdLockScreen: |
602 case EPhoneInCallCmdLockScreen: |
670 LockKeypadL(); |
603 LockKeypadL(); |
671 break; |
604 break; |
672 |
605 |
673 case EPhoneViewOpenCallHandling: |
606 case EPhoneViewOpenCallHandling: |
674 if ( iOnScreenDialer && IsNumberEntryUsedL() ) |
607 if ( IsNumberEntryUsedL() ) |
675 { |
608 { |
676 // Remove number entry from screen |
|
677 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
609 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
678 HandleNumberEntryClearedL(); |
610 HandleNumberEntryClearedL(); |
679 } |
611 } |
680 commandStatus = CPhoneState::HandleCommandL( aCommand ); |
612 commandStatus = CPhoneState::HandleCommandL( aCommand ); |
681 break; |
613 break; |
|
614 |
|
615 case EPhoneInCallCmdNewCallFind: |
|
616 case EPhoneInCallCmdNewCall: |
|
617 case EPhoneInCallCmdDtmfListViewSearch: |
|
618 case EPhoneInCallCmdDtmfManualQuery: |
|
619 case EPhoneCmdDtmfSearch: |
|
620 case EPhoneDtmfDialerExit: |
|
621 case EPhoneCmdOptions: |
|
622 break; |
682 |
623 |
683 default: |
624 default: |
684 commandStatus = CPhoneState::HandleCommandL( aCommand ); |
625 commandStatus = CPhoneState::HandleCommandL( aCommand ); |
685 break; |
626 break; |
686 } |
627 } |
687 |
|
688 return commandStatus; |
628 return commandStatus; |
689 } |
629 } |
690 |
630 |
691 // ----------------------------------------------------------- |
631 // ----------------------------------------------------------- |
692 // CPhoneStateInCall::CallFetchedNumberL |
632 // CPhoneStateInCall::CallFetchedNumberL |
696 const TDesC& aFetchedNumber ) |
636 const TDesC& aFetchedNumber ) |
697 { |
637 { |
698 __LOGMETHODSTARTEND(EPhoneControl, |
638 __LOGMETHODSTARTEND(EPhoneControl, |
699 "CPhoneStateInCall::CallFetchedNumberL()" ); |
639 "CPhoneStateInCall::CallFetchedNumberL()" ); |
700 __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(), |
640 __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(), |
701 Panic( EPhoneCtrlInvariant ) ); |
641 Panic( EPhoneCtrlInvariant ) ); |
702 |
|
703 // Store the phone number |
642 // Store the phone number |
704 iStateMachine->PhoneEngineInfo()->SetPhoneNumber( aFetchedNumber ); |
643 iStateMachine->PhoneEngineInfo()->SetPhoneNumber( aFetchedNumber ); |
705 |
|
706 DialVoiceCallL(); |
644 DialVoiceCallL(); |
707 } |
645 } |
708 |
646 |
709 // ----------------------------------------------------------- |
647 // ----------------------------------------------------------- |
710 // CPhoneStateInCall::SendDtmfL |
648 // CPhoneStateInCall::SendDtmfL |
714 { |
652 { |
715 __LOGMETHODSTARTEND(EPhoneControl, |
653 __LOGMETHODSTARTEND(EPhoneControl, |
716 "CPhoneStateInCall::SendDtmfL()" ); |
654 "CPhoneStateInCall::SendDtmfL()" ); |
717 __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(), |
655 __ASSERT_DEBUG( iStateMachine->PhoneEngineInfo(), |
718 Panic( EPhoneCtrlInvariant ) ); |
656 Panic( EPhoneCtrlInvariant ) ); |
719 |
|
720 // First get the DTMF sequence from dialog |
657 // First get the DTMF sequence from dialog |
721 TPhoneCmdParamString dtmfSequence; |
658 TPhoneCmdParamString dtmfSequence; |
722 HBufC *content = HBufC::NewLC( KPEDtmfMaxLength ); |
659 HBufC *content = HBufC::NewLC( KPEDtmfMaxLength ); |
723 TPtr ptr( content->Des() ); |
660 TPtr ptr( content->Des() ); |
724 dtmfSequence.SetString( &ptr ); |
661 dtmfSequence.SetString( &ptr ); |
725 |
662 iViewCommandHandle->ExecuteCommand( |
726 if ( iOnScreenDialer ) |
663 EPhoneViewGetNumberFromEntry, |
727 { |
664 &dtmfSequence ); |
728 iViewCommandHandle->ExecuteCommand( |
|
729 EPhoneViewGetNumberFromEntry, |
|
730 &dtmfSequence ); |
|
731 |
|
732 } |
|
733 |
665 |
734 // Send the DTMF |
666 // Send the DTMF |
735 if ( ptr.Length() ) |
667 if ( ptr.Length() ) |
736 { |
668 { |
737 iStateMachine->PhoneEngineInfo()->SetDtmfStringCommand( ptr ); |
669 iStateMachine->PhoneEngineInfo()->SetDtmfStringCommand( ptr ); |
738 iStateMachine->SendPhoneEngineMessage( |
670 iStateMachine->SendPhoneEngineMessage( |
739 MPEPhoneModel::EPEMessageSendDTMF ); |
671 MPEPhoneModel::EPEMessageSendDTMF ); |
740 } |
672 } |
741 |
|
742 CleanupStack::PopAndDestroy( content ); |
673 CleanupStack::PopAndDestroy( content ); |
743 } |
674 } |
744 |
675 |
745 // ----------------------------------------------------------- |
676 // ----------------------------------------------------------- |
746 // CPhoneStateInCall::LaunchDtmfListQueryL |
677 // CPhoneStateInCall::LaunchDtmfListQueryL |
747 // ----------------------------------------------------------- |
678 // ----------------------------------------------------------- |
748 // |
679 // |
749 void CPhoneStateInCall::LaunchDtmfListQueryL() |
680 void CPhoneStateInCall::LaunchDtmfListQueryL() |
750 { |
681 { |
751 __LOGMETHODSTARTEND(EPhoneControl, |
682 __LOGMETHODSTARTEND(EPhoneControl, |
752 "CPhoneStateInCall::LaunchDtmfListQueryL()" ); |
683 "CPhoneStateInCall::LaunchDtmfListQueryL()" ); |
753 |
684 |
754 // Fetch active call's id from view |
|
755 TPhoneCmdParamCallStateData callStateData; |
685 TPhoneCmdParamCallStateData callStateData; |
756 callStateData.SetCallState( EPEStateConnected ); |
686 callStateData.SetCallState( EPEStateConnected ); |
757 iViewCommandHandle->HandleCommandL( |
687 iViewCommandHandle->HandleCommandL( |
758 EPhoneViewGetCallIdByState, &callStateData ); |
688 EPhoneViewGetCallIdByState, &callStateData ); |
759 |
689 |
764 EPhoneViewGetCallIdByState, &callStateData ); |
694 EPhoneViewGetCallIdByState, &callStateData ); |
765 } |
695 } |
766 |
696 |
767 if ( callStateData.CallId() > KErrNotFound ) |
697 if ( callStateData.CallId() > KErrNotFound ) |
768 { |
698 { |
769 //Get Array of DTMF strings from PhoneEngine |
699 //Get Array of DTMF strings from PhoneEngine |
770 const CDesCArray& dtmfArray = |
700 const CDesCArray& dtmfArray = |
771 iStateMachine->PhoneEngineInfo()-> |
701 iStateMachine->PhoneEngineInfo()-> |
772 RemotePredefinedDtmfStrings( callStateData.CallId() ); |
702 RemotePredefinedDtmfStrings( callStateData.CallId() ); |
773 |
|
774 TInt itemCount = dtmfArray.Count(); |
703 TInt itemCount = dtmfArray.Count(); |
775 if ( itemCount ) |
704 if ( itemCount ) |
776 { |
705 { |
777 |
706 TPhoneCmdParamString stringParam; |
778 TPhoneCmdParamString stringParam; |
|
779 //Go through the array and send each dtmf string |
707 //Go through the array and send each dtmf string |
780 //to view. |
708 //to view. |
781 for ( TInt i=0; i<itemCount; i++ ) |
709 for ( TInt i=0; i<itemCount; i++ ) |
782 { |
710 { |
783 TPtrC16 ptrC16 = dtmfArray.MdcaPoint( i ); |
711 TPtrC16 ptrC16 = dtmfArray.MdcaPoint( i ); |
786 TPtr ptr( string->Des() ); |
714 TPtr ptr( string->Des() ); |
787 |
715 |
788 stringParam.SetString( &ptr ); |
716 stringParam.SetString( &ptr ); |
789 iViewCommandHandle->ExecuteCommandL( |
717 iViewCommandHandle->ExecuteCommandL( |
790 EPhoneViewSetListQueryString, |
718 EPhoneViewSetListQueryString, |
791 &stringParam ); |
719 &stringParam ); |
792 CleanupStack::PopAndDestroy( string ); |
720 CleanupStack::PopAndDestroy( string ); |
793 string = NULL; |
721 string = NULL; |
794 } |
722 } |
795 } |
723 } |
796 } |
724 } |
797 else |
725 else |
798 { |
726 { |
799 __PHONELOG( EOnlyFatal, EPhoneControl, |
727 __PHONELOG( EOnlyFatal, EPhoneControl, |
800 "CPhoneStateInCall::LaunchDtmfListQueryL() No found valid call id" ); |
728 "CPhoneStateInCall::LaunchDtmfListQueryL() No found valid call id" ); |
801 } |
729 } |
802 |
|
803 // if there is a connected call only then open DtmfListQuery. |
730 // if there is a connected call only then open DtmfListQuery. |
804 if ( IsAnyConnectedCalls() ) |
731 if ( IsAnyConnectedCalls() ) |
805 { |
732 { |
806 TPhoneCmdParamQuery queryDialogParam; |
733 TPhoneCmdParamQuery queryDialogParam; |
807 queryDialogParam.SetQueryType( EPhoneDtmfListQueryDialog ); |
734 queryDialogParam.SetQueryType( EPhoneDtmfListQueryDialog ); |
808 queryDialogParam.SetQueryResourceId( |
735 queryDialogParam.SetQueryResourceId( |
809 CPhoneMainResourceResolver::Instance()-> |
736 CPhoneMainResourceResolver::Instance()-> |
810 ResolveResourceID( EPhoneDtmfNumberListQuery ) ); |
737 ResolveResourceID( EPhoneDtmfNumberListQuery ) ); |
811 |
|
812 // Display dialog |
|
813 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowQuery, |
738 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowQuery, |
814 &queryDialogParam ); |
739 &queryDialogParam ); |
815 } |
740 } |
816 } |
741 } |
817 |
742 |
822 EXPORT_C TBool CPhoneStateInCall::IsVideoCallActiveL() |
747 EXPORT_C TBool CPhoneStateInCall::IsVideoCallActiveL() |
823 { |
748 { |
824 __LOGMETHODSTARTEND(EPhoneControl, |
749 __LOGMETHODSTARTEND(EPhoneControl, |
825 "CPhoneStateInCall::IsVideoCallActive()" ); |
750 "CPhoneStateInCall::IsVideoCallActive()" ); |
826 TBool retVal = EFalse; |
751 TBool retVal = EFalse; |
827 // Fetch active call's id from view |
|
828 TPhoneCmdParamCallStateData callStateData; |
752 TPhoneCmdParamCallStateData callStateData; |
829 callStateData.SetCallState( EPEStateConnected ); |
753 callStateData.SetCallState( EPEStateConnected ); |
830 iViewCommandHandle->HandleCommandL( |
754 iViewCommandHandle->HandleCommandL( |
831 EPhoneViewGetCallIdByState, &callStateData ); |
755 EPhoneViewGetCallIdByState, &callStateData ); |
832 |
|
833 if ( callStateData.CallId() > KErrNotFound ) |
756 if ( callStateData.CallId() > KErrNotFound ) |
834 { |
757 { |
835 retVal = IsVideoCall( callStateData.CallId() ); |
758 retVal = IsVideoCall( callStateData.CallId() ); |
836 } |
759 } |
837 |
|
838 return retVal; |
760 return retVal; |
839 } |
761 } |
840 |
762 |
841 // --------------------------------------------------------- |
763 // --------------------------------------------------------- |
842 // CPhoneStateInCall::IsVideoCallRingingL |
764 // CPhoneStateInCall::IsVideoCallRingingL |
846 EXPORT_C TBool CPhoneStateInCall::IsVideoCallRingingL() |
768 EXPORT_C TBool CPhoneStateInCall::IsVideoCallRingingL() |
847 { |
769 { |
848 __LOGMETHODSTARTEND(EPhoneControl, |
770 __LOGMETHODSTARTEND(EPhoneControl, |
849 "CPhoneStateInCall::IsVideoCallRingingL()" ); |
771 "CPhoneStateInCall::IsVideoCallRingingL()" ); |
850 TBool retVal = EFalse; |
772 TBool retVal = EFalse; |
851 // Fetch ringing call id from view |
|
852 TPhoneCmdParamCallStateData callStateData; |
773 TPhoneCmdParamCallStateData callStateData; |
853 callStateData.SetCallState( EPEStateRinging ); |
774 callStateData.SetCallState( EPEStateRinging ); |
854 iViewCommandHandle->HandleCommandL( |
775 iViewCommandHandle->HandleCommandL( |
855 EPhoneViewGetCallIdByState, &callStateData ); |
776 EPhoneViewGetCallIdByState, &callStateData ); |
856 |
|
857 if ( callStateData.CallId() > KErrNotFound ) |
777 if ( callStateData.CallId() > KErrNotFound ) |
858 { |
778 { |
859 retVal = IsVideoCall( callStateData.CallId() ); |
779 retVal = IsVideoCall( callStateData.CallId() ); |
860 } |
780 } |
861 |
|
862 return retVal; |
781 return retVal; |
863 } |
782 } |
864 |
783 |
865 // --------------------------------------------------------- |
784 // --------------------------------------------------------- |
866 // CPhoneStateInCall::GetRingingCallL |
785 // CPhoneStateInCall::GetRingingCallL |
869 |
788 |
870 EXPORT_C TInt CPhoneStateInCall::GetRingingCallL() |
789 EXPORT_C TInt CPhoneStateInCall::GetRingingCallL() |
871 { |
790 { |
872 __LOGMETHODSTARTEND(EPhoneControl, |
791 __LOGMETHODSTARTEND(EPhoneControl, |
873 "CPhoneStateInCall::GetRingingCallL()" ); |
792 "CPhoneStateInCall::GetRingingCallL()" ); |
874 |
|
875 // Fetch ringing call id from view |
|
876 TPhoneCmdParamCallStateData callStateData; |
793 TPhoneCmdParamCallStateData callStateData; |
877 callStateData.SetCallState( EPEStateRinging ); |
794 callStateData.SetCallState( EPEStateRinging ); |
878 iViewCommandHandle->HandleCommandL( |
795 iViewCommandHandle->HandleCommandL( |
879 EPhoneViewGetCallIdByState, &callStateData ); |
796 EPhoneViewGetCallIdByState, &callStateData ); |
880 |
|
881 return callStateData.CallId(); |
797 return callStateData.CallId(); |
882 } |
798 } |
883 |
799 |
884 // ----------------------------------------------------------- |
800 // ----------------------------------------------------------- |
885 // CPhoneStateInCall::DisconnectOutgoingCallL |
801 // CPhoneStateInCall::DisconnectOutgoingCallL |
887 // |
803 // |
888 EXPORT_C void CPhoneStateInCall::DisconnectOutgoingCallL() |
804 EXPORT_C void CPhoneStateInCall::DisconnectOutgoingCallL() |
889 { |
805 { |
890 __LOGMETHODSTARTEND(EPhoneControl, |
806 __LOGMETHODSTARTEND(EPhoneControl, |
891 "CPhoneStateInCall::DisconnectOutgoingCallL()"); |
807 "CPhoneStateInCall::DisconnectOutgoingCallL()"); |
892 // Fetch alerting call's id from view |
|
893 TPhoneCmdParamCallStateData callStateData; |
808 TPhoneCmdParamCallStateData callStateData; |
894 callStateData.SetCallState( EPEStateConnecting ); |
809 callStateData.SetCallState( EPEStateConnecting ); |
895 iViewCommandHandle->HandleCommandL( |
810 iViewCommandHandle->HandleCommandL( |
896 EPhoneViewGetCallIdByState, &callStateData ); |
811 EPhoneViewGetCallIdByState, &callStateData ); |
897 |
|
898 if( callStateData.CallId() == KErrNotFound ) |
812 if( callStateData.CallId() == KErrNotFound ) |
899 { |
813 { |
900 // No connecting call, find the dialing call |
814 // No connecting call, find the dialing call |
901 callStateData.SetCallState( EPEStateDialing ); |
815 callStateData.SetCallState( EPEStateDialing ); |
902 iViewCommandHandle->HandleCommandL( |
816 iViewCommandHandle->HandleCommandL( |
937 // CPhoneStateInCall::LockKeysL |
850 // CPhoneStateInCall::LockKeysL |
938 // ----------------------------------------------------------------------------- |
851 // ----------------------------------------------------------------------------- |
939 // |
852 // |
940 void CPhoneStateInCall::LockKeypadL() |
853 void CPhoneStateInCall::LockKeypadL() |
941 { |
854 { |
942 __LOGMETHODSTARTEND(EPhoneControl, |
855 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateInCall::LockKeypadL()"); |
943 "CPhoneStateInCall::LockKeypadL()"); |
856 TInt state = EPSHWRMGripStatusUninitialized; |
944 |
|
945 if ( !FeatureManager::FeatureSupported( KFeatureIdKeypadNoSlider ) ) |
857 if ( !FeatureManager::FeatureSupported( KFeatureIdKeypadNoSlider ) ) |
946 { |
858 { |
947 TInt state = KErrNone; |
859 TInt err = RProperty::Get( KPSUidHWRM, KHWRMGripStatus, state ); |
948 TInt err = RProperty::Get( |
|
949 KPSUidHWRM, |
|
950 KHWRMGripStatus, |
|
951 state ); |
|
952 if ( state == EPSHWRMGripOpen ) |
860 if ( state == EPSHWRMGripOpen ) |
953 { |
861 { |
954 SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue ); |
862 SendGlobalErrorNoteL( EPhoneNoteTextNotAllowed, ETrue ); |
955 } |
863 } |
956 else |
864 } |
957 { |
865 |
958 iViewCommandHandle->ExecuteCommandL( |
866 if ( state != EPSHWRMGripOpen ) |
959 EPhoneViewEnableKeyLock ); |
867 { |
960 } |
868 iViewCommandHandle->ExecuteCommandL( EPhoneViewEnableKeyLock ); |
961 } |
869 } |
962 else |
870 } |
963 { |
|
964 iViewCommandHandle->ExecuteCommandL( |
|
965 EPhoneViewEnableKeyLock ); |
|
966 } |
|
967 } |
|
968 |
|
969 // ----------------------------------------------------------------------------- |
|
970 // CPhoneStateInCall::CloseDtmfQueryL |
|
971 // ----------------------------------------------------------------------------- |
|
972 // |
|
973 EXPORT_C void CPhoneStateInCall::CloseDtmfQueryL() |
|
974 { |
|
975 } |
|
976 |
|
977 |
871 |
978 // ----------------------------------------------------------------------------- |
872 // ----------------------------------------------------------------------------- |
979 // CPhoneStateInCall::HandleEndKeyPressL |
873 // CPhoneStateInCall::HandleEndKeyPressL |
980 // ----------------------------------------------------------------------------- |
874 // ----------------------------------------------------------------------------- |
981 // |
875 // |
982 void CPhoneStateInCall::HandleEndKeyPressL( TPhoneKeyEventMessages aMessage ) |
876 void CPhoneStateInCall::HandleEndKeyPressL( TPhoneKeyEventMessages aMessage ) |
983 { |
877 { |
984 __LOGMETHODSTARTEND(EPhoneControl, |
878 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneStateInCall::HandleEndKeyPressL()"); |
985 "CPhoneStateInCall::HandleEndKeyPressL()"); |
|
986 // handle long press of end key |
|
987 if ( aMessage == EPhoneKeyLongPress ) |
879 if ( aMessage == EPhoneKeyLongPress ) |
988 { |
880 { |
989 // Fetch active call's id from view |
|
990 TPhoneCmdParamCallStateData callStateData; |
881 TPhoneCmdParamCallStateData callStateData; |
991 callStateData.SetCallState( EPEStateConnected ); |
882 callStateData.SetCallState( EPEStateConnected ); |
992 iViewCommandHandle->HandleCommandL( |
883 iViewCommandHandle->HandleCommandL( |
993 EPhoneViewGetCallIdByState, &callStateData ); |
884 EPhoneViewGetCallIdByState, &callStateData ); |
994 |
885 |
1005 KNullDesC8, |
896 KNullDesC8, |
1006 CPhoneTerminateAllConnectionsCommand::NewL( *iStateMachine ) ); |
897 CPhoneTerminateAllConnectionsCommand::NewL( *iStateMachine ) ); |
1007 } |
898 } |
1008 else |
899 else |
1009 { |
900 { |
1010 // Close all connections |
|
1011 iStateMachine->SendPhoneEngineMessage( |
901 iStateMachine->SendPhoneEngineMessage( |
1012 MPEPhoneModel::EPEMessageTerminateAllConnections ); |
902 MPEPhoneModel::EPEMessageTerminateAllConnections ); |
1013 |
|
1014 if ( IsNumberEntryContentStored() ) |
903 if ( IsNumberEntryContentStored() ) |
1015 { |
904 { |
1016 ClearNumberEntryContentCache(); |
905 ClearNumberEntryContentCache(); |
1017 } |
906 } |
1018 } |
907 } |
1019 |
908 |
1020 if ( IsNumberEntryUsedL() ) |
909 if ( IsNumberEntryUsedL() ) |
1021 { |
910 { |
1022 // Remove number entry from screen |
|
1023 iViewCommandHandle->ExecuteCommandL( |
911 iViewCommandHandle->ExecuteCommandL( |
1024 EPhoneViewRemoveNumberEntry ); |
912 EPhoneViewRemoveNumberEntry ); |
1025 // Do state-specific operation when number entry is cleared |
913 // Do state-specific operation when number entry is cleared |
1026 HandleNumberEntryClearedL(); |
914 HandleNumberEntryClearedL(); |
1027 } |
915 } |
1028 |
916 |
1029 if ( !TopAppIsDisplayedL() ) |
917 if ( !TopAppIsDisplayedL() ) |
1030 { |
918 { |
1031 // Bring app to foreground |
|
1032 TPhoneCmdParamInteger uidParam; |
919 TPhoneCmdParamInteger uidParam; |
1033 uidParam.SetInteger( KUidPhoneApplication.iUid ); |
920 uidParam.SetInteger( KUidPhoneApplication.iUid ); |
1034 iViewCommandHandle->ExecuteCommandL( |
921 iViewCommandHandle->ExecuteCommandL( |
1035 EPhoneViewBringAppToForeground, &uidParam ); |
922 EPhoneViewBringAppToForeground, &uidParam ); |
1036 } |
923 } |
1037 } |
924 } |
1038 else |
925 else |
1039 { |
926 { |
1040 // handle short end key |
927 // handle short end key |
1041 CPhoneState::DisconnectCallL(); |
928 CPhoneState::DisconnectCallL(); |
1042 } |
929 } |
1043 } |
930 } |
1044 |
931 |
1045 // ----------------------------------------------------------------------------- |
932 // ----------------------------------------------------------------------------- |
1046 // CPhoneStateInCall::HandleVoiceKeyPressL |
933 // CPhoneStateInCall::HandleVoiceKeyPressL |
1050 { |
937 { |
1051 __LOGMETHODSTARTEND(EPhoneControl, |
938 __LOGMETHODSTARTEND(EPhoneControl, |
1052 "CPhoneStateInCall::HandleVoiceKeyPressL()"); |
939 "CPhoneStateInCall::HandleVoiceKeyPressL()"); |
1053 if ( aMessage == EPhoneKeyShortPress ) |
940 if ( aMessage == EPhoneKeyShortPress ) |
1054 { |
941 { |
1055 // Toggle the handsfree mode |
942 const TBool handsfreeMode = iStateMachine-> |
1056 const TBool handsfreeMode = |
943 PhoneEngineInfo()->AudioOutput() == EPELoudspeaker; |
1057 iStateMachine->PhoneEngineInfo()->AudioOutput() == |
|
1058 EPELoudspeaker; |
|
1059 SetHandsfreeModeL( !handsfreeMode ); |
944 SetHandsfreeModeL( !handsfreeMode ); |
1060 } |
945 } |
1061 else // aMessage == EPhoneKeyLongPress |
946 else // aMessage == EPhoneKeyLongPress |
1062 { |
947 { |
1063 // Display call in progress information note |
|
1064 SendGlobalInfoNoteL( EPhoneCallInProgress, ETrue ); |
948 SendGlobalInfoNoteL( EPhoneCallInProgress, ETrue ); |
1065 } |
949 } |
1066 } |
950 } |
1067 |
951 |
1068 // ----------------------------------------------------------- |
952 // ----------------------------------------------------------- |
1069 // CPhoneStateInCall::ShowDtmfTextQueryL |
953 // CPhoneStateInCall::ShowDtmfTextQueryL |
1070 // ----------------------------------------------------------- |
954 // ----------------------------------------------------------- |
1076 TDes* aDataText, |
960 TDes* aDataText, |
1077 TBool aSendKeyEnabled ) |
961 TBool aSendKeyEnabled ) |
1078 { |
962 { |
1079 __LOGMETHODSTARTEND(EPhoneControl, |
963 __LOGMETHODSTARTEND(EPhoneControl, |
1080 "CPhoneStateInCall::ShowDtmfTextQueryL()"); |
964 "CPhoneStateInCall::ShowDtmfTextQueryL()"); |
1081 |
|
1082 __ASSERT_DEBUG( aDialogResourceId && |
965 __ASSERT_DEBUG( aDialogResourceId && |
1083 aDefaultCbaResourceId && |
966 aDefaultCbaResourceId && |
1084 aContentCbaResourceId && |
967 aContentCbaResourceId && |
1085 aDataText, |
968 aDataText, |
1086 Panic( EPhoneCtrlParameterNotInitialized ) ); |
969 Panic( EPhoneCtrlParameterNotInitialized ) ); |
1090 queryDialogParam.SetDefaultCba( aDefaultCbaResourceId ); |
973 queryDialogParam.SetDefaultCba( aDefaultCbaResourceId ); |
1091 queryDialogParam.SetContentCba( aContentCbaResourceId ); |
974 queryDialogParam.SetContentCba( aContentCbaResourceId ); |
1092 queryDialogParam.SetDataText( aDataText ); |
975 queryDialogParam.SetDataText( aDataText ); |
1093 queryDialogParam.SetSendKeyEnabled( aSendKeyEnabled ); |
976 queryDialogParam.SetSendKeyEnabled( aSendKeyEnabled ); |
1094 |
977 |
1095 // Display dialog |
|
1096 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowQuery, |
978 iViewCommandHandle->ExecuteCommandL( EPhoneViewShowQuery, |
1097 &queryDialogParam ); |
979 &queryDialogParam ); |
1098 } |
980 } |
1099 |
981 |
1100 // End of File |
982 // End of File |