163 { |
163 { |
164 HandleIncomingL( iWaitingCallId ); |
164 HandleIncomingL( iWaitingCallId ); |
165 |
165 |
166 // Prevent execution of CPhoneStateIncoming::HandleIdleL, only remove |
166 // Prevent execution of CPhoneStateIncoming::HandleIdleL, only remove |
167 // the call bubble |
167 // the call bubble |
168 BeginUiUpdateLC(); |
168 TransitionHandlerL().BeginUiUpdateLC(); |
169 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
169 iViewCommandHandle->ExecuteCommandL( EPhoneViewRemoveCallHeader, aCallId ); |
170 EndUiUpdate(); |
170 TransitionHandlerL().EndUiUpdate(); |
171 |
171 |
172 iWaitingCallId = KErrNotFound; |
172 iWaitingCallId = KErrNotFound; |
173 } |
173 } |
174 else |
174 else |
175 { |
175 { |
191 // ----------------------------------------------------------- |
191 // ----------------------------------------------------------- |
192 void CPhoneIncoming::HandleIncomingL( TInt aCallId ) |
192 void CPhoneIncoming::HandleIncomingL( TInt aCallId ) |
193 { |
193 { |
194 __LOGMETHODSTARTEND( EPhoneUIStates, |
194 __LOGMETHODSTARTEND( EPhoneUIStates, |
195 "CPhoneIncoming::HandleIncomingL()"); |
195 "CPhoneIncoming::HandleIncomingL()"); |
196 |
|
197 TPhoneCmdParamCallStateData callState; |
196 TPhoneCmdParamCallStateData callState; |
198 callState.SetCallState( EPEStateConnected ); |
197 callState.SetCallState( EPEStateConnected ); |
199 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallIdByState, &callState ); |
198 iViewCommandHandle->ExecuteCommandL( EPhoneViewGetCallIdByState, &callState ); |
200 TInt connectedCall = callState.CallId(); |
199 TInt connectedCall = callState.CallId(); |
201 |
200 |
202 IsNumberEntryUsedL() ? |
201 TransitionHandlerL().IncomingCallUiUpdateLC(); |
203 BeginTransEffectLC( ECallUiAppear ) : |
|
204 BeginTransEffectLC( ENumberEntryOpen ); |
|
205 BeginUiUpdateLC(); |
|
206 |
202 |
207 // Hide the number entry if it exists |
203 // Hide the number entry if it exists |
208 if ( IsNumberEntryUsedL() ) |
204 if ( IsNumberEntryUsedL() ) |
209 { |
205 { |
210 SetNumberEntryVisibilityL( EFalse ); |
206 SetNumberEntryVisibilityL( EFalse ); |
211 } |
207 } |
212 |
208 |
213 TPhoneCmdParamBoolean dialerParam; |
209 TPhoneCmdParamBoolean dialerParam; |
214 dialerParam.SetBoolean( ETrue ); |
210 dialerParam.SetBoolean( ETrue ); |
215 |
|
216 AllowShowingOfWaitingCallHeaderL( dialerParam ); |
211 AllowShowingOfWaitingCallHeaderL( dialerParam ); |
217 |
212 |
218 // Close fast swap window if it's displayed |
213 // Close fast swap window if it's displayed |
219 EikonEnv()->DismissTaskList(); |
214 EikonEnv()->DismissTaskList(); |
220 |
215 |
233 { |
228 { |
234 dialerParam.SetBoolean( EFalse ); |
229 dialerParam.SetBoolean( EFalse ); |
235 } |
230 } |
236 |
231 |
237 SetToolbarDimming( EFalse ); |
232 SetToolbarDimming( EFalse ); |
238 // Display incoming call |
|
239 DisplayIncomingCallL( aCallId, dialerParam ); |
233 DisplayIncomingCallL( aCallId, dialerParam ); |
240 |
234 TransitionHandlerL().EndUiUpdateAndEffect(); |
241 EndUiUpdate(); |
|
242 EndTransEffect(); |
|
243 |
235 |
244 if ( connectedCall > KErrNotFound ) |
236 if ( connectedCall > KErrNotFound ) |
245 { |
237 { |
246 iCbaManager->UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
238 iCbaManager->UpdateCbaL( EPhoneCallHandlingCallWaitingCBA ); |
247 iStateMachine->ChangeState( EPhoneStateWaitingInSingle ); |
239 iStateMachine->ChangeState( EPhoneStateWaitingInSingle ); |