124 void CPhoneConferenceAndSingleAndWaiting::HandleIdleL( TInt aCallId ) |
124 void CPhoneConferenceAndSingleAndWaiting::HandleIdleL( TInt aCallId ) |
125 { |
125 { |
126 __LOGMETHODSTARTEND( EPhoneUIStates, |
126 __LOGMETHODSTARTEND( EPhoneUIStates, |
127 "CPhoneConferenceAndSingleAndWaiting::HandleIdleL()"); |
127 "CPhoneConferenceAndSingleAndWaiting::HandleIdleL()"); |
128 BeginUiUpdateLC(); |
128 BeginUiUpdateLC(); |
129 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
129 UpdateUiCommands(); |
130 |
130 |
131 TPhoneCmdParamBoolean conferenceExistsForCallId; |
131 TPhoneCmdParamBoolean conferenceExistsForCallId; |
132 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference, |
132 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallExistsInConference, |
133 aCallId, &conferenceExistsForCallId ); |
133 aCallId, &conferenceExistsForCallId ); |
134 |
134 |
188 // |
188 // |
189 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL( TInt /*aCallId*/ ) |
189 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL( TInt /*aCallId*/ ) |
190 { |
190 { |
191 __LOGMETHODSTARTEND( EPhoneUIStates, |
191 __LOGMETHODSTARTEND( EPhoneUIStates, |
192 "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL()"); |
192 "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndWaitingL()"); |
193 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
193 UpdateUiCommands(); |
194 CheckDisableHWKeysAndCallUIL(); |
|
195 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
|
196 iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting ); |
194 iStateMachine->ChangeState( EPhoneStateConferenceAndWaiting ); |
197 } |
195 } |
198 |
196 |
199 // ----------------------------------------------------------- |
197 // ----------------------------------------------------------- |
200 // CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL |
198 // CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL |
203 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL( |
201 void CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL( |
204 TInt /*aCallId*/ ) |
202 TInt /*aCallId*/ ) |
205 { |
203 { |
206 __LOGMETHODSTARTEND( EPhoneUIStates, |
204 __LOGMETHODSTARTEND( EPhoneUIStates, |
207 "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL()"); |
205 "CPhoneConferenceAndSingleAndWaiting::MakeStateTransitionToConferenceAndSingleL()"); |
208 if( iStateMachine->PhoneStorage()->IsScreenLocked() ) |
206 iNumberEntryManager->SetVisibilityIfNumberEntryUsedL( ETrue ); |
209 { |
207 UpdateUiCommands(); |
210 EnableCallUIL(); |
|
211 } |
|
212 iStateMachine->PhoneStorage()->ResetBlockedKeysList(); |
|
213 |
|
214 if ( IsNumberEntryUsedL() ) |
|
215 { |
|
216 if ( NeedToSendToBackgroundL() ) |
|
217 { |
|
218 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground ); |
|
219 UpdateCbaL( EPhoneCallHandlingInCallCBA ); |
|
220 } |
|
221 else |
|
222 { |
|
223 SetNumberEntryVisibilityL(ETrue); |
|
224 } |
|
225 } |
|
226 else |
|
227 { |
|
228 UpdateCbaL( EPhoneCallHandlingNewCallSwapCBA ); |
|
229 // If numberentry is not open just check NeedToSendToBackgroundL and |
|
230 // sendbackround if needed. |
|
231 if ( NeedToSendToBackgroundL() ) |
|
232 { |
|
233 iViewCommandHandle->ExecuteCommandL( EPhoneViewSendToBackground ); |
|
234 } |
|
235 } |
|
236 SetTouchPaneButtons( EPhoneConferenceAndSingleButtons ); |
|
237 iStateMachine->ChangeState( EPhoneStateConferenceAndSingle ); |
208 iStateMachine->ChangeState( EPhoneStateConferenceAndSingle ); |
238 } |
209 } |
239 |
210 |
240 // ----------------------------------------------------------- |
211 // ----------------------------------------------------------- |
241 // CPhoneConferenceAndSingleAndWaiting::HandleConferenceIdleL |
212 // CPhoneConferenceAndSingleAndWaiting::HandleConferenceIdleL |
263 __LOGMETHODSTARTEND( EPhoneUIStates, |
234 __LOGMETHODSTARTEND( EPhoneUIStates, |
264 "CPhoneConferenceAndSingleAndWaiting::HandleKeyMessageL()"); |
235 "CPhoneConferenceAndSingleAndWaiting::HandleKeyMessageL()"); |
265 switch ( aCode ) |
236 switch ( aCode ) |
266 { |
237 { |
267 case EKeyYes: // send-key |
238 case EKeyYes: // send-key |
268 if( IsNumberEntryVisibleL() ) |
239 if( iNumberEntryManager->IsNumberEntryVisibleL() ) |
269 { |
240 { |
270 CallFromNumberEntryL(); |
241 iNumberEntryManager->CallFromNumberEntryL(); |
271 } |
242 } |
272 else |
243 else |
273 { |
244 { |
274 SendGlobalWarningNoteL( |
245 SendGlobalWarningNoteL( |
275 EPhoneNoteTextCallNotAllowed, ETrue ); |
246 EPhoneNoteTextCallNotAllowed, ETrue ); |
278 |
249 |
279 default: |
250 default: |
280 CPhoneConferenceAndSingle::HandleKeyMessageL( aMessage, aCode ); |
251 CPhoneConferenceAndSingle::HandleKeyMessageL( aMessage, aCode ); |
281 break; |
252 break; |
282 } |
253 } |
283 } |
|
284 |
|
285 // ----------------------------------------------------------- |
|
286 // CPhoneConferenceAndSingleAndWaiting::HandleKeyEventL |
|
287 // ----------------------------------------------------------- |
|
288 // |
|
289 void CPhoneConferenceAndSingleAndWaiting::HandleKeyEventL( |
|
290 const TKeyEvent& aKeyEvent, |
|
291 TEventCode /*aEventCode*/ ) |
|
292 { |
|
293 if( EKeyDeviceF == aKeyEvent.iCode ) |
|
294 { |
|
295 __PHONELOG( EBasic, EPhoneUIStates, |
|
296 "CPhoneConferenceAndSingleAndWaiting::HandleKeyMessageL-deviceF" ); |
|
297 HandleHoldSwitchL(); |
|
298 } |
|
299 } |
|
300 |
|
301 // ----------------------------------------------------------- |
|
302 // CPhoneConferenceAndSingleAndWaiting::UpdateInCallCbaL |
|
303 // ----------------------------------------------------------- |
|
304 // |
|
305 void CPhoneConferenceAndSingleAndWaiting::UpdateInCallCbaL() |
|
306 { |
|
307 __LOGMETHODSTARTEND(EPhoneControl, "CPhoneConferenceAndSingleAndWaiting::UpdateInCallCbaL() "); |
|
308 UpdateCbaL ( EPhoneCallHandlingCallWaitingCBA ); |
|
309 } |
254 } |
310 |
255 |
311 // ----------------------------------------------------------- |
256 // ----------------------------------------------------------- |
312 // CPhoneConferenceAndSingleAndWaiting::MakeTransitionAccordingToActiveCallsL |
257 // CPhoneConferenceAndSingleAndWaiting::MakeTransitionAccordingToActiveCallsL |
313 // ----------------------------------------------------------- |
258 // ----------------------------------------------------------- |
325 callStateData.SetCallState( EPEStateRinging ); |
270 callStateData.SetCallState( EPEStateRinging ); |
326 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, |
271 iViewCommandHandle->HandleCommandL( EPhoneViewGetCallIdByState, |
327 &callStateData ); |
272 &callStateData ); |
328 if ( callStateData.CallId() != KErrNotFound ) |
273 if ( callStateData.CallId() != KErrNotFound ) |
329 { |
274 { |
330 TPhoneCmdParamCallHeaderData callHeaderParam; |
|
331 callHeaderParam.SetCallState( EPEStateRinging ); |
|
332 SetCallHeaderTextsForCallComingInL( callStateData.CallId(), EFalse, &callHeaderParam ); |
|
333 |
|
334 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, |
275 iViewCommandHandle->ExecuteCommandL( EPhoneViewUpdateBubble, |
335 callStateData.CallId(), |
276 callStateData.CallId() ); |
336 &callHeaderParam ); |
|
337 |
277 |
338 iCbaManager->UpdateIncomingCbaL( callStateData.CallId() ); |
|
339 CheckDisableHWKeysAndCallUIL(); |
|
340 SetTouchPaneButtons( EPhoneIncomingCallButtons ); |
|
341 SetRingingTonePlaybackL( callStateData.CallId() ); |
278 SetRingingTonePlaybackL( callStateData.CallId() ); |
|
279 UpdateUiCommands(); |
342 SetBackButtonActive(EFalse); |
280 SetBackButtonActive(EFalse); |
343 iStateMachine->ChangeState( EPhoneStateIncoming ); |
281 iStateMachine->ChangeState( EPhoneStateIncoming ); |
344 } |
282 } |
345 else |
283 else |
346 { |
284 { |
347 SetDefaultFlagsL(); |
285 SetDefaultFlagsL(); |
348 UpdateCbaL( EPhoneEmptyCBA ); |
|
349 iStateMachine->ChangeState( EPhoneStateIdle ); |
286 iStateMachine->ChangeState( EPhoneStateIdle ); |
350 } |
287 } |
351 } |
288 } |
352 break; |
289 break; |
353 case EOneActiveCall: // Go to Single And Waiting state |
290 case EOneActiveCall: // Go to Single And Waiting state |
354 { |
291 { |
355 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
292 UpdateUiCommands(); |
356 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
|
357 CheckDisableHWKeysAndCallUIL(); |
|
358 iStateMachine->ChangeState( EPhoneStateWaitingInSingle ); |
293 iStateMachine->ChangeState( EPhoneStateWaitingInSingle ); |
359 } |
294 } |
360 break; |
295 break; |
361 case ETwoActiveCalls: // Go to Two Singles And Waiting state |
296 case ETwoActiveCalls: // Go to Two Singles And Waiting state |
362 { |
297 { |
363 UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
298 UpdateUiCommands(); |
364 CheckDisableHWKeysAndCallUIL(); |
|
365 SetTouchPaneButtons( EPhoneWaitingCallButtons ); |
|
366 iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting ); |
299 iStateMachine->ChangeState( EPhoneStateTwoSinglesAndWaiting ); |
367 } |
300 } |
368 break; |
301 break; |
369 default: |
302 default: |
370 // Too many active calls to handle reliable state change now. |
303 // Too many active calls to handle reliable state change now. |