52 // (other items were commented in a header). |
52 // (other items were commented in a header). |
53 // ----------------------------------------------------------- |
53 // ----------------------------------------------------------- |
54 // |
54 // |
55 CPhoneConferenceAndWaitingAndCallSetup::~CPhoneConferenceAndWaitingAndCallSetup() |
55 CPhoneConferenceAndWaitingAndCallSetup::~CPhoneConferenceAndWaitingAndCallSetup() |
56 { |
56 { |
57 // Reset flag |
|
58 if ( iViewCommandHandle ) |
|
59 { |
|
60 TPhoneCmdParamBoolean dtmfSendFlag; |
|
61 dtmfSendFlag.SetBoolean( EFalse ); |
|
62 iViewCommandHandle->ExecuteCommand( EPhoneViewSetDtmfOptionsFlag, |
|
63 &dtmfSendFlag ); |
|
64 } |
|
65 } |
57 } |
66 |
58 |
67 // ----------------------------------------------------------- |
59 // ----------------------------------------------------------- |
68 // CPhoneConferenceAndWaitingAndCallSetup::ConstructL() |
60 // CPhoneConferenceAndWaitingAndCallSetup::ConstructL() |
69 // Constructor |
61 // Constructor |
195 break; |
186 break; |
196 } |
187 } |
197 } |
188 } |
198 |
189 |
199 // ----------------------------------------------------------- |
190 // ----------------------------------------------------------- |
200 // CPhoneConferenceAndWaitingAndCallSetup::OpenMenuBarL |
|
201 // ----------------------------------------------------------- |
|
202 // |
|
203 void CPhoneConferenceAndWaitingAndCallSetup::OpenMenuBarL() |
|
204 { |
|
205 __LOGMETHODSTARTEND( EPhoneUIStates, |
|
206 "CPhoneConferenceAndWaitingAndCallSetup::OpenMenuBarL"); |
|
207 |
|
208 // Set specific flag to view so that DTMF menu item available |
|
209 TPhoneCmdParamBoolean dtmfSendFlag; |
|
210 dtmfSendFlag.SetBoolean( ETrue ); |
|
211 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetDtmfOptionsFlag, |
|
212 &dtmfSendFlag ); |
|
213 |
|
214 TInt resourceId ( EPhoneAlertingWaitingAndConfHeldCallMenuBar ); |
|
215 if ( iOnScreenDialer && IsDTMFEditorVisibleL() ) |
|
216 { |
|
217 resourceId = EPhoneDtmfDialerMenubar; |
|
218 } |
|
219 else if ( IsNumberEntryVisibleL() ) |
|
220 { |
|
221 resourceId = |
|
222 EPhoneAlertingWaitingAndConfHeldCallMenuBarWithNumberEntry; |
|
223 } |
|
224 else if ( IsConferenceBubbleInSelectionMode() ) |
|
225 { |
|
226 resourceId = EPhoneConfCallParticipantsDropMenubar; |
|
227 } |
|
228 |
|
229 TPhoneCmdParamInteger integerParam; |
|
230 integerParam.SetInteger( |
|
231 CPhoneMainResourceResolver::Instance()-> |
|
232 ResolveResourceID( resourceId ) ); |
|
233 |
|
234 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarOpen, |
|
235 &integerParam ); |
|
236 } |
|
237 |
|
238 // ----------------------------------------------------------- |
|
239 // CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL |
191 // CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL |
240 // ----------------------------------------------------------- |
192 // ----------------------------------------------------------- |
241 // |
193 // |
242 void CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL() |
194 void CPhoneConferenceAndWaitingAndCallSetup::UpdateInCallCbaL() |
243 { |
195 { |
281 callHeaderParam.SetCallState( EPEStateConnecting ); |
233 callHeaderParam.SetCallState( EPEStateConnecting ); |
282 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, |
234 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, |
283 &callHeaderParam ); |
235 &callHeaderParam ); |
284 |
236 |
285 // Remove the number entry if it isn't DTMF dialer |
237 // Remove the number entry if it isn't DTMF dialer |
286 if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() ) |
238 if ( !iOnScreenDialer || !IsNumberEntryVisibleL() ) |
287 { |
239 { |
288 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
240 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
289 } |
241 } |
290 |
242 |
291 EndUiUpdate(); |
243 EndUiUpdate(); |
315 // Capturing keys and number entry must be removed because some |
267 // Capturing keys and number entry must be removed because some |
316 // networks jump over connecting state directly to connected state. |
268 // networks jump over connecting state directly to connected state. |
317 CaptureKeysDuringCallNotificationL( EFalse ); |
269 CaptureKeysDuringCallNotificationL( EFalse ); |
318 |
270 |
319 // Remove the number entry if it isn't DTMF dialer |
271 // Remove the number entry if it isn't DTMF dialer |
320 if ( !iOnScreenDialer || !IsNumberEntryVisibleL() || !IsDTMFEditorVisibleL() ) |
272 if ( !iOnScreenDialer || !IsNumberEntryVisibleL() ) |
321 { |
273 { |
322 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
274 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveNumberEntry ); |
323 } |
275 } |
324 |
276 |
325 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
277 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
326 SetTouchPaneButtonDisabled( EPhoneCallComingCmdAnswer ); |
|
327 EndUiUpdate(); |
278 EndUiUpdate(); |
328 |
279 |
329 // Go to Conference And Single And Waiting state |
280 // Go to Conference And Single And Waiting state |
330 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
281 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
331 iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting ); |
282 iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting ); |
350 void CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL() |
301 void CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL() |
351 { |
302 { |
352 __LOGMETHODSTARTEND( EPhoneUIStates, |
303 __LOGMETHODSTARTEND( EPhoneUIStates, |
353 "CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL"); |
304 "CPhoneConferenceAndWaitingAndCallSetup::HandleConferenceIdleL"); |
354 |
305 |
355 BeginTransEffectLC( ENumberEntryOpen ); |
|
356 BeginUiUpdateLC(); |
306 BeginUiUpdateLC(); |
357 |
307 |
358 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
308 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
359 |
|
360 // Close menu bar, if it is displayed |
|
361 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
362 |
309 |
363 if ( IsNumberEntryUsedL() ) |
310 if ( IsNumberEntryUsedL() ) |
364 { |
311 { |
365 // Show the number entry if it exists |
312 // Show the number entry if it exists |
366 SetNumberEntryVisibilityL(ETrue); |
313 SetNumberEntryVisibilityL(ETrue); |
398 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag ); |
345 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetHoldFlag, &holdFlag ); |
399 |
346 |
400 // Go to Call Setup And Waiting state |
347 // Go to Call Setup And Waiting state |
401 SetTouchPaneButtons( EPhoneCallSetupButtons ); |
348 SetTouchPaneButtons( EPhoneCallSetupButtons ); |
402 |
349 |
403 SetToolbarDimming( ETrue ); |
|
404 |
|
405 // No need update cbas |
350 // No need update cbas |
406 iStateMachine->ChangeState( EPhoneStateCallSetupAndWaiting ); |
351 iStateMachine->ChangeState( EPhoneStateCallSetupAndWaiting ); |
407 } |
352 } |
408 } |
353 } |
409 EndUiUpdate(); |
354 EndUiUpdate(); |
410 EndTransEffect(); |
|
411 } |
355 } |
412 |
356 |
413 // ----------------------------------------------------------- |
357 // ----------------------------------------------------------- |
414 // CPhoneConferenceAndWaitingAndCallSetup::HandleIdleL |
358 // CPhoneConferenceAndWaitingAndCallSetup::HandleIdleL |
415 // ----------------------------------------------------------- |
359 // ----------------------------------------------------------- |
425 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled, |
369 iViewCommandHandle->ExecuteCommandL( EPhoneViewSetGlobalNotifiersDisabled, |
426 &globalNotifierParam ); |
370 &globalNotifierParam ); |
427 |
371 |
428 // Stop capturing keys |
372 // Stop capturing keys |
429 CaptureKeysDuringCallNotificationL( EFalse ); |
373 CaptureKeysDuringCallNotificationL( EFalse ); |
430 |
|
431 // Close menu bar, if it is displayed |
|
432 iViewCommandHandle->ExecuteCommandL( EPhoneViewMenuBarClose ); |
|
433 |
374 |
434 TPhoneCmdParamBoolean conferenceExistsForCallId; |
375 TPhoneCmdParamBoolean conferenceExistsForCallId; |
435 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference, |
376 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference, |
436 aCallId, &conferenceExistsForCallId ); |
377 aCallId, &conferenceExistsForCallId ); |
437 |
378 |
455 // Idle message came for last conference member. |
396 // Idle message came for last conference member. |
456 // Don't do anything, wait for ConferenceIdle message |
397 // Don't do anything, wait for ConferenceIdle message |
457 } |
398 } |
458 else |
399 else |
459 { |
400 { |
460 BeginTransEffectLC( ENumberEntryOpen ); |
|
461 BeginUiUpdateLC(); |
401 BeginUiUpdateLC(); |
462 TPhoneCmdParamCallStateData callStateData; |
402 TPhoneCmdParamCallStateData callStateData; |
463 callStateData.SetCallState( EPEStateRinging ); |
403 callStateData.SetCallState( EPEStateRinging ); |
464 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, |
404 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, |
465 &callStateData ); |
405 &callStateData ); |