168 |
167 |
169 default: |
168 default: |
170 commandStatus = CPhoneConference::HandleCommandL( aCommand ); |
169 commandStatus = CPhoneConference::HandleCommandL( aCommand ); |
171 break; |
170 break; |
172 } |
171 } |
173 |
|
174 return commandStatus; |
172 return commandStatus; |
175 } |
173 } |
176 |
174 |
177 // ----------------------------------------------------------- |
175 // ----------------------------------------------------------- |
178 // CPhoneConferenceAndSingle::HandleConnectedConferenceL |
176 // CPhoneConferenceAndSingle::HandleConnectedConferenceL |
179 // ----------------------------------------------------------- |
177 // ----------------------------------------------------------- |
180 // |
178 // |
181 void CPhoneConferenceAndSingle::HandleConnectedConferenceL() |
179 void CPhoneConferenceAndSingle::HandleConnectedConferenceL() |
182 { |
180 { |
183 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedConferenceL"); |
181 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedConferenceL"); |
184 // Update call state |
|
185 TPhoneCmdParamCallHeaderData callHeaderParam; |
182 TPhoneCmdParamCallHeaderData callHeaderParam; |
186 callHeaderParam.SetCallState( EPEStateConnectedConference ); |
183 callHeaderParam.SetCallState( EPEStateConnectedConference ); |
187 |
184 |
188 TBuf<KPhoneCallHeaderLabelMaxLength> conferenceText( KNullDesC ); |
185 TBuf<KPhoneCallHeaderLabelMaxLength> conferenceText( KNullDesC ); |
189 TInt callLabelId = CPhoneMainResourceResolver::Instance()-> |
186 TInt callLabelId = CPhoneMainResourceResolver::Instance()-> |
219 void CPhoneConferenceAndSingle::HandleHeldConferenceL() |
215 void CPhoneConferenceAndSingle::HandleHeldConferenceL() |
220 { |
216 { |
221 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldConferenceL"); |
217 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldConferenceL"); |
222 TPhoneCmdParamCallHeaderData callHeaderParam; |
218 TPhoneCmdParamCallHeaderData callHeaderParam; |
223 callHeaderParam.SetCallState( EPEStateHeldConference ); |
219 callHeaderParam.SetCallState( EPEStateHeldConference ); |
224 |
|
225 TInt callLabelId; |
220 TInt callLabelId; |
226 TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC ); |
221 TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC ); |
227 callLabelId = CPhoneMainResourceResolver::Instance()-> |
222 callLabelId = CPhoneMainResourceResolver::Instance()-> |
228 ResolveResourceID( EPhoneCallOnHold ); |
223 ResolveResourceID( EPhoneCallOnHold ); |
229 |
|
230 StringLoader::Load( |
224 StringLoader::Load( |
231 labelText, |
225 labelText, |
232 callLabelId, |
226 callLabelId, |
233 CCoeEnv::Static() ); |
227 CCoeEnv::Static() ); |
234 callHeaderParam.SetLabelText( labelText ); |
228 callHeaderParam.SetLabelText( labelText ); |
235 |
|
236 BeginUiUpdateLC(); |
229 BeginUiUpdateLC(); |
237 |
230 |
238 iViewCommandHandle->ExecuteCommandL( |
231 iViewCommandHandle->ExecuteCommandL( |
239 EPhoneViewUpdateBubble, KConferenceCallId, &callHeaderParam ); |
232 EPhoneViewUpdateBubble, KConferenceCallId, &callHeaderParam ); |
240 |
233 SetTouchPaneButtons( EPhoneConferenceAndSingleButtons ); |
241 SetTouchPaneButtons( EPhoneConferenceAndSingleButtons ); |
234 |
242 EndUiUpdate(); |
235 EndUiUpdate(); |
243 } |
236 } |
244 |
237 |
245 // ----------------------------------------------------------- |
238 // ----------------------------------------------------------- |
246 // CPhoneConferenceAndSingle::HandleConnectedL |
239 // CPhoneConferenceAndSingle::HandleConnectedL |
247 // ----------------------------------------------------------- |
240 // ----------------------------------------------------------- |
248 // |
241 // |
249 void CPhoneConferenceAndSingle::HandleConnectedL( TInt aCallId ) |
242 void CPhoneConferenceAndSingle::HandleConnectedL( TInt aCallId ) |
250 { |
243 { |
251 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedL"); |
244 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConnectedL"); |
252 |
|
253 // Display connected bubble |
|
254 TPhoneCmdParamCallHeaderData callHeaderParam; |
245 TPhoneCmdParamCallHeaderData callHeaderParam; |
255 callHeaderParam.SetCallState( EPEStateConnected ); |
246 callHeaderParam.SetCallState( EPEStateConnected ); |
256 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, |
247 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, |
257 &callHeaderParam ); |
248 &callHeaderParam ); |
258 |
|
259 UpdateInCallCbaL(); |
249 UpdateInCallCbaL(); |
260 SetTouchPaneButtons( EPhoneConferenceButtons ); |
250 SetTouchPaneButtons( EPhoneConferenceButtons ); |
261 } |
251 } |
262 |
252 |
263 // ----------------------------------------------------------- |
253 // ----------------------------------------------------------- |
265 // ----------------------------------------------------------- |
255 // ----------------------------------------------------------- |
266 // |
256 // |
267 void CPhoneConferenceAndSingle::HandleHeldL( TInt aCallId ) |
257 void CPhoneConferenceAndSingle::HandleHeldL( TInt aCallId ) |
268 { |
258 { |
269 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldL"); |
259 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleHeldL"); |
270 // Display hold bubble |
|
271 TPhoneCmdParamCallHeaderData callHeaderParam; |
260 TPhoneCmdParamCallHeaderData callHeaderParam; |
272 callHeaderParam.SetCallState( EPEStateHeld ); |
261 callHeaderParam.SetCallState( EPEStateHeld ); |
273 |
262 |
274 TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC ); |
263 TBuf<KPhoneCallHeaderLabelMaxLength> labelText( KNullDesC ); |
275 TInt callLabelId = CPhoneMainResourceResolver::Instance()-> |
264 TInt callLabelId = CPhoneMainResourceResolver::Instance()-> |
276 ResolveResourceID( EPhoneCallOnHold ); |
265 ResolveResourceID( EPhoneCallOnHold ); |
277 |
|
278 StringLoader::Load( |
266 StringLoader::Load( |
279 labelText, |
267 labelText, |
280 callLabelId, |
268 callLabelId, |
281 CCoeEnv::Static() ); |
269 CCoeEnv::Static() ); |
282 callHeaderParam.SetLabelText( labelText ); |
270 callHeaderParam.SetLabelText( labelText ); |
283 |
|
284 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, |
271 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, aCallId, |
285 &callHeaderParam ); |
272 &callHeaderParam ); |
286 |
|
287 SetTouchPaneButtons( EPhoneConferenceButtons ); |
273 SetTouchPaneButtons( EPhoneConferenceButtons ); |
288 } |
274 } |
289 |
275 |
290 // ----------------------------------------------------------- |
276 // ----------------------------------------------------------- |
291 // CPhoneConferenceAndSingle::HandleAddedConferenceMemberL |
277 // CPhoneConferenceAndSingle::HandleAddedConferenceMemberL |
292 // ----------------------------------------------------------- |
278 // ----------------------------------------------------------- |
293 // |
279 // |
294 void CPhoneConferenceAndSingle::HandleAddedConferenceMemberL( TInt aCallId ) |
280 void CPhoneConferenceAndSingle::HandleAddedConferenceMemberL( TInt aCallId ) |
295 { |
281 { |
296 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleAddedConferenceMemberL"); |
282 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleAddedConferenceMemberL"); |
297 |
|
298 BeginUiUpdateLC(); |
283 BeginUiUpdateLC(); |
299 |
|
300 // Update conference bubble |
|
301 iViewCommandHandle->ExecuteCommandL( EPhoneViewAddToConference ); |
284 iViewCommandHandle->ExecuteCommandL( EPhoneViewAddToConference ); |
302 |
|
303 UpdateConferenceSecurityStatusL( aCallId ); |
285 UpdateConferenceSecurityStatusL( aCallId ); |
304 |
|
305 SetTouchPaneButtons( EPhoneConferenceButtons ); |
286 SetTouchPaneButtons( EPhoneConferenceButtons ); |
306 |
|
307 EndUiUpdate(); |
287 EndUiUpdate(); |
308 |
|
309 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
288 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
310 iStateMachine->ChangeState( EPhoneStateConference ); |
289 iStateMachine->ChangeState( EPhoneStateConference ); |
311 } |
290 } |
312 |
291 |
313 // ----------------------------------------------------------- |
292 // ----------------------------------------------------------- |
314 // CPhoneConferenceAndSingle::UpdateInCallCbaL |
293 // CPhoneConferenceAndSingle::UpdateInCallCbaL |
315 // ----------------------------------------------------------- |
294 // ----------------------------------------------------------- |
316 // |
295 // |
317 void CPhoneConferenceAndSingle::UpdateInCallCbaL() |
296 void CPhoneConferenceAndSingle::UpdateInCallCbaL() |
318 { |
297 { |
319 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConferenceAndSingle::UpdateInCallCbaL() "); |
298 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConferenceAndSingle::UpdateInCallCbaL() "); |
320 |
|
321 UpdateCbaL ( EPhoneCallHandlingNewCallSwapCBA ); |
299 UpdateCbaL ( EPhoneCallHandlingNewCallSwapCBA ); |
322 } |
300 } |
323 |
301 |
324 // ----------------------------------------------------------- |
302 // ----------------------------------------------------------- |
325 // CPhoneConferenceAndSingle::HandleIncomingL |
303 // CPhoneConferenceAndSingle::HandleIncomingL |
327 // |
305 // |
328 void CPhoneConferenceAndSingle::HandleIncomingL( TInt aCallId ) |
306 void CPhoneConferenceAndSingle::HandleIncomingL( TInt aCallId ) |
329 { |
307 { |
330 __LOGMETHODSTARTEND( EPhoneUIStates, |
308 __LOGMETHODSTARTEND( EPhoneUIStates, |
331 "CPhoneConferenceAndSingle::HandleIncomingL"); |
309 "CPhoneConferenceAndSingle::HandleIncomingL"); |
332 |
310 BeginUiUpdateLC(); |
333 BeginUiUpdateLC(); |
|
334 |
311 |
335 TPhoneCmdParamBoolean dialerParam; |
312 TPhoneCmdParamBoolean dialerParam; |
336 dialerParam.SetBoolean( ETrue ); |
313 dialerParam.SetBoolean( ETrue ); |
337 |
|
338 // Get allow waiting call header param value. |
|
339 AllowShowingOfWaitingCallHeaderL( dialerParam ); |
314 AllowShowingOfWaitingCallHeaderL( dialerParam ); |
340 |
315 |
341 iViewCommandHandle->ExecuteCommandL( EPhoneViewCloseFSW ); |
316 iViewCommandHandle->ExecuteCommandL( EPhoneViewCloseFSW ); |
342 |
317 |
343 // Check if HW Keys or Call UI should be disabled |
|
344 CheckDisableHWKeysAndCallUIL(); |
318 CheckDisableHWKeysAndCallUIL(); |
345 |
|
346 // Display incoming call |
|
347 DisplayIncomingCallL( aCallId, dialerParam ); |
319 DisplayIncomingCallL( aCallId, dialerParam ); |
348 |
|
349 // Set touch controls |
|
350 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
320 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
351 |
321 |
352 EndUiUpdate(); |
322 EndUiUpdate(); |
353 |
323 |
354 // Go to Conference And Single And Waiting state |
|
355 UpdateCbaL( EPhoneCallHandlingIncomingRejectCBA ); |
324 UpdateCbaL( EPhoneCallHandlingIncomingRejectCBA ); |
356 iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting ); |
325 iStateMachine->ChangeState( EPhoneStateConferenceAndSingleAndWaiting ); |
357 } |
326 } |
358 |
327 |
359 // ----------------------------------------------------------- |
328 // ----------------------------------------------------------- |
360 // CPhoneConferenceAndSingle::HandleIdleL |
329 // CPhoneConferenceAndSingle::HandleIdleL |
361 // ----------------------------------------------------------- |
330 // ----------------------------------------------------------- |
362 // |
331 // |
363 void CPhoneConferenceAndSingle::HandleIdleL( TInt aCallId ) |
332 void CPhoneConferenceAndSingle::HandleIdleL( TInt aCallId ) |
364 { |
333 { |
365 __LOGMETHODSTARTEND( EPhoneUIStates, |
334 __LOGMETHODSTARTEND( EPhoneUIStates, |
366 "CPhoneConferenceAndSingle::HandleIdleL"); |
335 "CPhoneConferenceAndSingle::HandleIdleL"); |
367 |
|
368 TPhoneCmdParamBoolean conferenceExistsForCallId; |
336 TPhoneCmdParamBoolean conferenceExistsForCallId; |
369 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference, |
337 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference, |
370 aCallId, &conferenceExistsForCallId ); |
338 aCallId, &conferenceExistsForCallId ); |
371 |
339 |
372 if( conferenceExistsForCallId.Boolean() ) |
340 if( conferenceExistsForCallId.Boolean() ) |
373 { |
341 { |
374 // Remove conference member from conference bubble |
|
375 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveFromConference, |
342 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveFromConference, |
376 aCallId ); |
343 aCallId ); |
377 } |
344 } |
378 else |
345 else |
379 { |
346 { |
380 // Remove call |
|
381 BeginUiUpdateLC(); |
347 BeginUiUpdateLC(); |
382 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
348 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
383 |
|
384 SetTouchPaneButtons( EPhoneConferenceButtons ); |
349 SetTouchPaneButtons( EPhoneConferenceButtons ); |
385 |
|
386 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
350 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
387 |
|
388 |
|
389 EndUiUpdate(); |
351 EndUiUpdate(); |
390 |
|
391 iStateMachine->ChangeState( EPhoneStateConference ); |
352 iStateMachine->ChangeState( EPhoneStateConference ); |
392 } |
353 } |
393 |
|
394 } |
354 } |
395 |
355 |
396 // ----------------------------------------------------------- |
356 // ----------------------------------------------------------- |
397 // CPhoneConferenceAndSingle::HandleConferenceIdleL |
357 // CPhoneConferenceAndSingle::HandleConferenceIdleL |
398 // ----------------------------------------------------------- |
358 // ----------------------------------------------------------- |
399 // |
359 // |
400 void CPhoneConferenceAndSingle::HandleConferenceIdleL() |
360 void CPhoneConferenceAndSingle::HandleConferenceIdleL() |
401 { |
361 { |
402 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConferenceIdleL"); |
362 __LOGMETHODSTARTEND( EPhoneUIStates, "CPhoneConferenceAndSingle::HandleConferenceIdleL"); |
403 |
|
404 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
363 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveConferenceBubble ); |
405 |
|
406 TPhoneCmdParamInteger intParam; |
364 TPhoneCmdParamInteger intParam; |
407 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCountOfActiveCalls, |
365 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCountOfActiveCalls, |
408 &intParam ); |
366 &intParam ); |
409 |
367 |
410 switch( intParam.Integer() ) |
368 switch( intParam.Integer() ) |
430 { |
388 { |
431 __LOGMETHODSTARTEND( EPhoneUIStates, |
389 __LOGMETHODSTARTEND( EPhoneUIStates, |
432 "CPhoneConferenceAndSingle::HandleKeyMessageL()"); |
390 "CPhoneConferenceAndSingle::HandleKeyMessageL()"); |
433 switch ( aCode ) |
391 switch ( aCode ) |
434 { |
392 { |
435 // send-key |
393 case EKeyYes: // send-key |
436 case EKeyYes: |
|
437 if( IsNumberEntryVisibleL() ) |
394 if( IsNumberEntryVisibleL() ) |
438 { |
395 { |
439 HandleSendL(); |
396 HandleSendL(); |
440 } |
397 } |
441 else |
398 else |
442 { |
399 { |
443 // Number entry is below so swap the call |
|
444 iStateMachine->SendPhoneEngineMessage( |
400 iStateMachine->SendPhoneEngineMessage( |
445 CPEPhoneModelIF::EPEMessageSwap ); |
401 CPEPhoneModelIF::EPEMessageSwap ); |
446 } |
402 } |
447 break; |
403 break; |
448 |
404 |
449 default: |
405 default: |
450 // do base operation |
|
451 CPhoneConference::HandleKeyMessageL( aMessage, aCode ); |
406 CPhoneConference::HandleKeyMessageL( aMessage, aCode ); |
452 break; |
407 break; |
453 } |
408 } |
454 } |
409 } |
455 |
|
456 |
|
457 |
410 |
458 // -------------------------------------------------------------- |
411 // -------------------------------------------------------------- |
459 // CPhoneConferenceAndSingle::HandleSendL |
412 // CPhoneConferenceAndSingle::HandleSendL |
460 // -------------------------------------------------------------- |
413 // -------------------------------------------------------------- |
461 // |
414 // |
462 void CPhoneConferenceAndSingle::HandleSendL() |
415 void CPhoneConferenceAndSingle::HandleSendL() |
463 { |
416 { |
464 // Get the number entry contents |
|
465 HBufC *phoneNumber = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
417 HBufC *phoneNumber = HBufC::NewLC( KPhoneNumberEntryBufferSize ); |
466 TPtr ptr( phoneNumber->Des() ); |
418 TPtr ptr( phoneNumber->Des() ); |
467 TPhoneCmdParamString stringParam; |
419 TPhoneCmdParamString stringParam; |
468 stringParam.SetString( &ptr ); |
420 stringParam.SetString( &ptr ); |
469 |
|
470 iViewCommandHandle->ExecuteCommand( |
421 iViewCommandHandle->ExecuteCommand( |
471 EPhoneViewGetNumberFromEntry, |
422 EPhoneViewGetNumberFromEntry, |
472 &stringParam ); |
423 &stringParam ); |
473 |
|
474 iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr ) ; |
424 iStateMachine->PhoneEngineInfo()->SetPhoneNumber( ptr ) ; |
475 |
425 |
476 if ( iStateMachine->PhoneEngineInfo()->PhoneNumberIsServiceCode() || |
426 if ( iStateMachine->PhoneEngineInfo()->PhoneNumberIsServiceCode() || |
477 phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength ) |
427 phoneNumber->Des().Length() < KPhoneValidPhoneNumberLength ) |
478 { |
428 { |
479 // Send a manual control sequence by providing number |
|
480 // information with dial command |
|
481 CallFromNumberEntryL(); |
429 CallFromNumberEntryL(); |
482 } |
430 } |
483 else |
431 else |
484 { |
432 { |
485 iStateMachine->SendPhoneEngineMessage( |
433 iStateMachine->SendPhoneEngineMessage( |