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