17 |
17 |
18 |
18 |
19 // INCLUDES |
19 // INCLUDES |
20 #include <StringLoader.h> |
20 #include <StringLoader.h> |
21 #include <cpephonemodelif.h> |
21 #include <cpephonemodelif.h> |
|
22 #include <featmgr.h> |
|
23 #include <telephonyvariant.hrh> |
22 #include "cphoneconferenceandwaiting.h" |
24 #include "cphoneconferenceandwaiting.h" |
23 #include "mphonestatemachine.h" |
25 #include "mphonestatemachine.h" |
24 #include "phoneviewcommanddefinitions.h" |
26 #include "phoneviewcommanddefinitions.h" |
25 #include "tphonecmdparamcallheaderdata.h" |
27 #include "tphonecmdparamcallheaderdata.h" |
26 #include "phonestatedefinitionsgsm.h" |
28 #include "phonestatedefinitionsgsm.h" |
30 #include "tphonecmdparamcallstatedata.h" |
32 #include "tphonecmdparamcallstatedata.h" |
31 #include "cphonemainresourceresolver.h" |
33 #include "cphonemainresourceresolver.h" |
32 #include "phonerssbase.h" |
34 #include "phonerssbase.h" |
33 #include "tphonecmdparamglobalnote.h" |
35 #include "tphonecmdparamglobalnote.h" |
34 #include "phoneui.hrh" |
36 #include "phoneui.hrh" |
|
37 #include "cphonecenrepproxy.h" |
|
38 #include "mphonestorage.h" |
35 |
39 |
36 // ================= MEMBER FUNCTIONS ======================= |
40 // ================= MEMBER FUNCTIONS ======================= |
37 |
41 |
38 // C++ default constructor can NOT contain any code, that |
42 // C++ default constructor can NOT contain any code, that |
39 // might leave. |
43 // might leave. |
113 case MEngineMonitor::EPEMessageConnected: |
117 case MEngineMonitor::EPEMessageConnected: |
114 HandleConnectedL( aCallId ); |
118 HandleConnectedL( aCallId ); |
115 break; |
119 break; |
116 |
120 |
117 case MEngineMonitor::EPEMessageDialing: |
121 case MEngineMonitor::EPEMessageDialing: |
118 HandleDialingL( aCallId ); |
122 HandleDiallingL( aCallId ); |
119 break; |
123 break; |
120 |
124 |
121 case MEngineMonitor::EPEMessageConferenceIdle: |
125 case MEngineMonitor::EPEMessageConferenceIdle: |
122 HandleConferenceIdleL(); |
126 HandleConferenceIdleL(); |
123 break; |
127 break; |
124 |
128 |
125 case MEngineMonitor::EPEMessageWentOneToOne: |
129 case MEngineMonitor::EPEMessageWentOneToOne: |
126 HandleWentOneToOneL( aCallId ); |
130 HandleWentOneToOneL( aCallId ); |
127 break; |
131 break; |
128 |
132 |
|
133 case MEngineMonitor::EPEMessageHeldConference: |
|
134 case MEngineMonitor::EPEMessageConnectedConference: |
|
135 { |
|
136 TPhoneCmdParamInteger callIdParam; |
|
137 iViewCommandHandle->ExecuteCommandL( |
|
138 EPhoneViewGetExpandedBubbleCallId, &callIdParam ); |
|
139 |
|
140 CPhoneConference::HandlePhoneEngineMessageL( aMessage, |
|
141 aCallId ); |
|
142 |
|
143 if ( KConferenceCallId == callIdParam.Integer() ) |
|
144 { |
|
145 iViewCommandHandle->ExecuteCommand(EPhoneSetConferenceExpanded); |
|
146 } |
|
147 } |
|
148 break; |
|
149 |
129 default: |
150 default: |
130 CPhoneConference::HandlePhoneEngineMessageL( aMessage, |
151 CPhoneConference::HandlePhoneEngineMessageL( aMessage, |
131 aCallId ); |
152 aCallId ); |
132 break; |
153 break; |
133 } |
154 } |
165 break; |
186 break; |
166 } |
187 } |
167 } |
188 } |
168 |
189 |
169 // ----------------------------------------------------------- |
190 // ----------------------------------------------------------- |
170 // CPhoneConferenceAndWaiting::HandleErrorL |
191 // CPhoneConferenceAndWaiting::HandleKeyEventL |
171 // ----------------------------------------------------------- |
192 // ----------------------------------------------------------- |
172 // |
193 // |
173 EXPORT_C void CPhoneConferenceAndWaiting::HandleErrorL( |
194 void CPhoneConferenceAndWaiting::HandleKeyEventL( |
174 const TPEErrorInfo& aErrorInfo ) |
195 const TKeyEvent& aKeyEvent, |
175 { |
196 TEventCode /*aEventCode*/ ) |
176 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::HandleErrorL()"); |
197 { |
177 |
198 if( EKeyDeviceF == aKeyEvent.iCode ) |
178 if( aErrorInfo.iErrorCode == ECCPErrorCCUserAlertingNoAnswer ) |
199 { |
179 { |
200 __PHONELOG( EBasic, EPhoneUIStates, |
180 // Should not shown "No Answer" note |
201 "CPhoneConferenceAndWaiting::HandleKeyMessageL-deviceF" ); |
181 __PHONELOG1( EBasic, EPhoneUIStates, |
202 HandleHoldSwitchL(); |
182 "PhoneUIStates: CPhoneConferenceAndWaiting::HandleErrorL - aErrorInfo.iErrorCode =%d ", |
203 } |
183 aErrorInfo.iErrorCode); |
|
184 } |
|
185 else |
|
186 { |
|
187 CPhoneState::HandleErrorL( aErrorInfo ); |
|
188 } |
|
189 } |
|
190 |
|
191 // ----------------------------------------------------------- |
|
192 // CPhoneConferenceAndWaiting::OpenMenuBarL |
|
193 // ----------------------------------------------------------- |
|
194 // |
|
195 void CPhoneConferenceAndWaiting::OpenMenuBarL() |
|
196 { |
|
197 __LOGMETHODSTARTEND(EPhoneUIStates, |
|
198 "CPhoneConferenceAndWaiting::OpenMenuBarL()"); |
|
199 |
|
200 TInt resourceId( EPhoneConfAndCallWaitingMenubar ); |
|
201 |
|
202 if( IsNumberEntryVisibleL() ) |
|
203 { |
|
204 resourceId = EPhoneConfAndCallWaitingMenubarWithNumberEntry; |
|
205 } |
|
206 else if ( IsConferenceBubbleInSelectionMode() ) |
|
207 { |
|
208 resourceId = EPhoneConfCallParticipantsMenubar; |
|
209 } |
|
210 |
|
211 TPhoneCmdParamBoolean booleanParam; |
|
212 const TBool videoWaiting = IsVideoCallRingingL(); |
|
213 booleanParam.SetBoolean( videoWaiting ); |
|
214 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetConferenceAndWaitingVideo, |
|
215 &booleanParam ); |
|
216 |
|
217 |
|
218 TPhoneCmdParamInteger integerParam; |
|
219 integerParam.SetInteger( |
|
220 CPhoneMainResourceResolver::Instance()-> |
|
221 ResolveResourceID( resourceId ) ); |
|
222 |
|
223 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, |
|
224 &integerParam ); |
|
225 } |
204 } |
226 |
205 |
227 // ----------------------------------------------------------- |
206 // ----------------------------------------------------------- |
228 // CPhoneConferenceAndWaiting::HandleConnectedL |
207 // CPhoneConferenceAndWaiting::HandleConnectedL |
229 // ----------------------------------------------------------- |
208 // ----------------------------------------------------------- |
263 // ----------------------------------------------------------- |
242 // ----------------------------------------------------------- |
264 // |
243 // |
265 void CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL( TInt aCallId ) |
244 void CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL( TInt aCallId ) |
266 { |
245 { |
267 __LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL()"); |
246 __LOGMETHODSTARTEND(EPhoneUIStates, "CPhoneConferenceAndWaiting::MakeStateTransitionToConferenceAndSingleL()"); |
268 BeginUiUpdateLC(); |
247 |
269 |
248 if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke ) |
|
249 && iStateMachine->PhoneStorage()->IsScreenLocked() ) |
|
250 { |
|
251 EnableCallUIL(); |
|
252 } |
|
253 |
|
254 // Reset blocked keys list |
|
255 iStateMachine->PhoneStorage()->ResetBlockedKeysList(); |
|
256 |
|
257 BeginUiUpdateLC(); |
|
258 |
270 UpdateRemoteInfoDataL ( aCallId ); |
259 UpdateRemoteInfoDataL ( aCallId ); |
271 if ( IsConferenceBubbleInSelectionMode() ) |
260 |
272 { |
261 // Show bubble |
273 CloseSelectionListL(); |
|
274 } |
|
275 TPhoneCmdParamCallHeaderData callHeaderParam; |
262 TPhoneCmdParamCallHeaderData callHeaderParam; |
276 callHeaderParam.SetCallState( EPEStateConnected ); |
263 callHeaderParam.SetCallState( EPEStateConnected ); |
277 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, |
264 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, |
278 aCallId, &callHeaderParam ); |
265 &callHeaderParam ); |
|
266 |
|
267 |
279 if ( IsNumberEntryUsedL() ) |
268 if ( IsNumberEntryUsedL() ) |
280 { |
269 { |
281 if ( NeedToReturnToForegroundAppL() ) |
270 if ( NeedToSendToBackgroundL() ) |
282 { |
271 { |
283 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility ); |
|
284 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
272 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
285 } |
273 } |
|
274 else |
|
275 { |
|
276 // Show the number entry if it exists. |
|
277 SetNumberEntryVisibilityL(ETrue); |
|
278 } |
286 } |
279 } |
287 else |
280 else |
288 { |
281 { |
289 UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA ); |
282 UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA ); |
|
283 // If numberentry is not open just check NeedToSendToBackgroundL and |
|
284 // sendbackround if needed. |
290 } |
285 } |
291 SetTouchPaneButtons( EPhoneConferenceAndSingleButtons ); |
286 SetTouchPaneButtons( EPhoneConferenceAndSingleButtons ); |
292 SetTouchPaneButtonDisabled( EPhoneInCallCmdPrivate ); |
|
293 |
287 |
294 EndUiUpdate(); |
288 EndUiUpdate(); |
|
289 |
295 // CBA updates in above if-else conditions |
290 // CBA updates in above if-else conditions |
296 iStateMachine->ChangeState( EPhoneStateConferenceAndSingle ); |
291 iStateMachine->ChangeState( EPhoneStateConferenceAndSingle ); |
297 } |
292 } |
298 |
293 |
299 // ----------------------------------------------------------- |
294 // ----------------------------------------------------------- |
300 // CPhoneConferenceAndWaiting::HandleIdleL |
295 // CPhoneConferenceAndWaiting::HandleIdleL |
301 // ----------------------------------------------------------- |
296 // ----------------------------------------------------------- |
314 iRingingCallId = callStateData.CallId(); |
309 iRingingCallId = callStateData.CallId(); |
315 } |
310 } |
316 |
311 |
317 if( iRingingCallId == aCallId ) |
312 if( iRingingCallId == aCallId ) |
318 { |
313 { |
319 BeginUiUpdateLC(); |
314 |
320 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
315 BeginUiUpdateLC(); |
|
316 |
|
317 // Remove call |
321 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
318 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
322 |
319 |
323 if ( IsNumberEntryUsedL() ) |
320 if ( IsNumberEntryUsedL() ) |
324 { |
321 { |
325 if ( NeedToReturnToForegroundAppL() ) |
322 if ( NeedToSendToBackgroundL() ) |
326 { |
323 { |
327 // Return phone to the background if menu application is needed to foreground. |
324 // Return phone to the background if send to background is needed. |
328 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground ); |
325 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground ); |
329 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetControlAndVisibility ); |
326 |
330 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
327 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
|
328 } |
|
329 else |
|
330 { |
|
331 // Show the number entry if it exists. |
|
332 SetNumberEntryVisibilityL(ETrue); |
331 } |
333 } |
332 } |
334 } |
333 else |
335 else |
334 { |
336 { |
335 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
337 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
336 // If numberentry is not open just check NeedToReturnToForegroundAppL and |
338 // If numberentry is not open just check NeedToSendToBackgroundL and |
337 // sendbackround if needed. |
339 // sendbackround if needed. |
338 if ( NeedToReturnToForegroundAppL() ) |
340 if ( NeedToSendToBackgroundL() ) |
339 { |
341 { |
340 // Return phone to the background if send to background is needed. |
342 // Return phone to the background if send to background is needed. |
341 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground ); |
343 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground ); |
342 } |
344 } |
343 } |
345 } |
344 |
346 |
345 if ( iViewCommandHandle->HandleCommandL( EPhoneViewIsConferenceInExpandedMode ) |
347 if( FeatureManager::FeatureSupported( KFeatureIdFfTouchUnlockStroke ) |
346 == EPhoneViewResponseSuccess ) |
348 && iStateMachine->PhoneStorage()->IsScreenLocked() ) |
347 { |
349 { |
348 SetTouchPaneButtons( EPhoneParticipantListButtons ); |
350 EnableCallUIL(); |
349 } |
351 } |
350 else |
352 |
351 { |
353 // Reset blocked keys list |
352 SetTouchPaneButtons( EPhoneConferenceButtons ); |
354 iStateMachine->PhoneStorage()->ResetBlockedKeysList(); |
353 } |
355 |
|
356 SetTouchPaneButtons( EPhoneConferenceButtons ); |
|
357 |
354 EndUiUpdate(); |
358 EndUiUpdate(); |
|
359 |
|
360 // Go to conference state |
355 // CBA updates in above if-else conditions |
361 // CBA updates in above if-else conditions |
356 iStateMachine->ChangeState( EPhoneStateConference ); |
362 iStateMachine->ChangeState( EPhoneStateConference ); |
357 } |
363 } |
358 else |
364 else |
359 { |
365 { |
360 // Idle message came for conference member |
366 // Idle message came for conference member |
361 CPhoneConference::HandleIdleL( aCallId ); |
367 CPhoneConference::HandleIdleL( aCallId ); |
|
368 |
362 TPhoneCmdParamBoolean conferenceBubbleExists; |
369 TPhoneCmdParamBoolean conferenceBubbleExists; |
363 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, |
370 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, |
364 &conferenceBubbleExists ); |
371 &conferenceBubbleExists ); |
|
372 |
365 if( !conferenceBubbleExists.Boolean() ) |
373 if( !conferenceBubbleExists.Boolean() ) |
366 { |
374 { |
367 HandleConferenceIdleL(); |
375 HandleConferenceIdleL(); |
368 } |
376 } |
369 } |
377 } |
374 // ----------------------------------------------------------- |
382 // ----------------------------------------------------------- |
375 // |
383 // |
376 void CPhoneConferenceAndWaiting::HandleConferenceIdleL() |
384 void CPhoneConferenceAndWaiting::HandleConferenceIdleL() |
377 { |
385 { |
378 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::HandleConferenceIdleL()"); |
386 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::HandleConferenceIdleL()"); |
|
387 |
379 BeginUiUpdateLC(); |
388 BeginUiUpdateLC(); |
|
389 |
380 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
390 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
381 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
391 |
382 TPhoneCmdParamInteger activeCallCount; |
392 TPhoneCmdParamInteger activeCallCount; |
383 iViewCommandHandle->ExecuteCommandL( |
393 iViewCommandHandle->ExecuteCommandL( |
384 EPhoneViewGetCountOfActiveCalls, &activeCallCount ); |
394 EPhoneViewGetCountOfActiveCalls, &activeCallCount ); |
|
395 |
385 switch( activeCallCount.Integer() ) |
396 switch( activeCallCount.Integer() ) |
386 { |
397 { |
387 case ENoActiveCalls: |
398 case ENoActiveCalls: |
388 // Go to incoming state |
399 // Go to incoming state |
389 { |
400 { |
398 |
409 |
399 // Bring up callhandling view |
410 // Bring up callhandling view |
400 BringIncomingToForegroundL(); |
411 BringIncomingToForegroundL(); |
401 |
412 |
402 SetCallHeaderTextsForCallComingInL( iRingingCallId, EFalse, &callHeaderParam ); |
413 SetCallHeaderTextsForCallComingInL( iRingingCallId, EFalse, &callHeaderParam ); |
403 |
414 |
404 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, |
415 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, |
405 iRingingCallId ,&callHeaderParam ); |
416 iRingingCallId ,&callHeaderParam ); |
406 iCbaManager->UpdateIncomingCbaL( iRingingCallId ); |
417 iCbaManager->UpdateIncomingCbaL( iRingingCallId ); |
407 UpdateSilenceButtonDimming(); |
|
408 |
418 |
409 // Hide number entry if visible |
419 // Hide number entry if visible |
410 if ( IsNumberEntryVisibleL() ) |
420 if ( IsNumberEntryVisibleL() ) |
411 { |
421 { |
412 SetNumberEntryVisibilityL(EFalse); |
422 SetNumberEntryVisibilityL(EFalse); |
413 } |
423 } |
|
424 |
|
425 // Check if HW Keys or Call UI should be disabled |
|
426 CheckDisableHWKeysAndCallUIL(); |
|
427 |
414 SetTouchPaneButtons( EPhoneIncomingCallButtons ); |
428 SetTouchPaneButtons( EPhoneIncomingCallButtons ); |
415 SetTouchPaneButtonEnabled( EPhoneCallComingCmdSilent ); |
429 SetRingingTonePlaybackL( iRingingCallId ); |
416 SetRingingTonePlaybackL( iRingingCallId ); |
430 SetBackButtonActive(EFalse); |
417 SetToolbarDimming( ETrue ); |
|
418 iStateMachine->ChangeState( EPhoneStateIncoming ); |
431 iStateMachine->ChangeState( EPhoneStateIncoming ); |
419 } |
432 break; |
420 break; |
433 } |
421 |
434 |
422 case EOneActiveCall: |
435 case EOneActiveCall: |
423 if ( IsNumberEntryUsedL() ) |
436 if ( IsNumberEntryUsedL() ) |
424 { |
437 { |
425 // Show the number entry if it exists |
438 // Show the number entry if it exists |
426 SetNumberEntryVisibilityL(ETrue); |
439 SetNumberEntryVisibilityL(ETrue); |
427 } |
440 } |
428 // Go to waiting in single state |
441 // Go to waiting in single state |
429 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
442 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
430 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
443 |
|
444 // Check if HW Keys or Call UI should be disabled |
|
445 CheckDisableHWKeysAndCallUIL(); |
|
446 |
|
447 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
431 iStateMachine->ChangeState( EPhoneStateWaitingInSingle ); |
448 iStateMachine->ChangeState( EPhoneStateWaitingInSingle ); |
432 break; |
449 break; |
433 |
450 |
434 case ETwoActiveCalls: |
451 case ETwoActiveCalls: |
435 if ( IsNumberEntryUsedL() ) |
452 if ( IsNumberEntryUsedL() ) |
437 // Show the number entry if it exists |
454 // Show the number entry if it exists |
438 SetNumberEntryVisibilityL(ETrue); |
455 SetNumberEntryVisibilityL(ETrue); |
439 } |
456 } |
440 // Go to two singles and waiting state |
457 // Go to two singles and waiting state |
441 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
458 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
442 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
459 |
|
460 // Check if HW Keys or Call UI should be disabled |
|
461 CheckDisableHWKeysAndCallUIL(); |
|
462 |
|
463 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
|
464 |
443 iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting ); |
465 iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting ); |
444 break; |
466 break; |
445 default: |
467 default: |
446 // Too many active calls to handle reliable state change now. |
468 // Too many active calls to handle reliable state change now. |
447 // Waiting for all conference member idles |
469 // Waiting for all conference member idles |
448 // This case may happen when 'End all calls' because conferenceIdle may |
470 // This case may happen when 'End all calls' because conferenceIdle may |
449 // come earlier than idle for conference member |
471 // come earlier than idle for conference member |
450 break; |
472 break; |
451 } |
473 } |
452 EndUiUpdate(); |
474 EndUiUpdate(); |
453 } |
475 } |
454 |
476 |
455 // ----------------------------------------------------------- |
477 // ----------------------------------------------------------- |
461 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::UpdateInCallCbaL() "); |
483 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::UpdateInCallCbaL() "); |
462 UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA ); |
484 UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA ); |
463 } |
485 } |
464 |
486 |
465 // ----------------------------------------------------------- |
487 // ----------------------------------------------------------- |
466 // CPhoneConferenceAndWaiting::HandleDialingL |
488 // CPhoneConferenceAndWaiting::HandleDiallingL |
467 // ----------------------------------------------------------- |
489 // ----------------------------------------------------------- |
468 // |
490 // |
469 void CPhoneConferenceAndWaiting::HandleDialingL( TInt aCallId ) |
491 void CPhoneConferenceAndWaiting::HandleDiallingL( TInt aCallId ) |
470 { |
492 { |
471 __LOGMETHODSTARTEND( EPhoneUIStates, |
493 __LOGMETHODSTARTEND( EPhoneUIStates, |
472 "CPhoneConferenceAndWaiting::HandleDialingL()"); |
494 "CPhoneConferenceAndWaiting::HandleDiallingL()"); |
|
495 |
|
496 BeginUiUpdateLC(); |
|
497 // Hide number entry if it exists |
|
498 SetNumberEntryVisibilityL(EFalse); |
|
499 |
473 // Display call setup |
500 // Display call setup |
474 DisplayCallSetupL( aCallId ); |
501 DisplayCallSetupL( aCallId ); |
|
502 |
|
503 SetTouchPaneButtons( EPhoneCallSetupButtons ); |
|
504 |
|
505 EndUiUpdate(); |
|
506 |
|
507 // Update conference and waiting and call setup softkeys |
|
508 UpdateCbaL( EPhoneCallHandlingCallSetupCBA ); |
|
509 |
475 // Go to conference and waiting and call setup state |
510 // Go to conference and waiting and call setup state |
476 iStateMachine->ChangeState( EPhoneStateConferenceAndWaitingAndCallSetup ); |
511 iStateMachine->ChangeState( EPhoneStateConferenceAndWaitingAndCallSetup ); |
477 } |
|
478 |
|
479 // ----------------------------------------------------------- |
|
480 // CPhoneConferenceAndWaiting::DoStateSpecificCallSetUpDefinitionsL |
|
481 // ----------------------------------------------------------- |
|
482 // |
|
483 EXPORT_C void CPhoneConferenceAndWaiting::DoStateSpecificCallSetUpDefinitionsL() |
|
484 { |
|
485 SetTouchPaneButtons( EPhoneCallSetupButtons ); |
|
486 } |
512 } |
487 |
513 |
488 // ----------------------------------------------------------- |
514 // ----------------------------------------------------------- |
489 // CPhoneConferenceAndWaiting::HandleWentOneToOneL |
515 // CPhoneConferenceAndWaiting::HandleWentOneToOneL |
490 // ----------------------------------------------------------- |
516 // ----------------------------------------------------------- |
514 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, |
540 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetIsConference, |
515 &conferenceBubbleExists ); |
541 &conferenceBubbleExists ); |
516 if( conferenceBubbleExists.Boolean() && |
542 if( conferenceBubbleExists.Boolean() && |
517 ( iRingingCallId != KErrNotFound ) ) |
543 ( iRingingCallId != KErrNotFound ) ) |
518 { |
544 { |
519 // Set touch controls |
|
520 SetTouchPaneButtonDisabled( EPhoneCallComingCmdAnswer ); |
|
521 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
545 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
522 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
546 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
523 // Go to Conference And Single And Waiting state |
547 // Go to Conference And Single And Waiting state |
524 iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting ); |
548 iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting ); |
525 } |
549 } |
|
550 |
526 EndUiUpdate(); |
551 EndUiUpdate(); |
527 } |
552 } |
528 |
553 |
|
554 // ----------------------------------------------------------- |
|
555 // CPhoneConferenceAndWaiting::HandleCommandL |
|
556 // ----------------------------------------------------------- |
|
557 // |
|
558 TBool CPhoneConferenceAndWaiting::HandleCommandL( TInt aCommand ) |
|
559 { |
|
560 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
561 "CPhoneConferenceAndWaiting::HandleCommandL() "); |
|
562 TBool commandStatus = ETrue; |
|
563 |
|
564 switch( aCommand ) |
|
565 { |
|
566 case EPhoneCmdUpdateUiControls: |
|
567 UpdateUiControlsL(); |
|
568 break; |
|
569 |
|
570 default: |
|
571 commandStatus = CPhoneConference::HandleCommandL( aCommand ); |
|
572 break; |
|
573 } |
|
574 |
|
575 return commandStatus; |
|
576 } |
|
577 |
|
578 // ----------------------------------------------------------- |
|
579 // CPhoneConferenceAndWaiting::UpdateUiControlsL |
|
580 // ----------------------------------------------------------- |
|
581 // |
|
582 void CPhoneConferenceAndWaiting::UpdateUiControlsL() |
|
583 { |
|
584 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndWaiting::UpdateUiControlsL( ) "); |
|
585 iViewCommandHandle->ExecuteCommand(EPhoneSetConferenceExpanded); |
|
586 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
|
587 } |
|
588 |
529 // End of File |
589 // End of File |