20 // Include Files |
20 // Include Files |
21 #include <etelmm.h> |
21 #include <etelmm.h> |
22 #include <e32math.h> |
22 #include <e32math.h> |
23 #include <e32svr.h> |
23 #include <e32svr.h> |
24 #include <badesca.h> |
24 #include <badesca.h> |
|
25 |
|
26 #include <vmnumber.h> |
25 #include <centralrepository.h> |
27 #include <centralrepository.h> |
26 #include <settingsinternalcrkeys.h> |
28 #include <settingsinternalcrkeys.h> |
27 |
29 |
28 #include "psetcalldiverting.h" |
30 #include "PsetCallDiverting.h" |
29 #include "psetcontainer.h" |
31 #include "PsetContainer.h" |
30 #include "mpsetdivertobs.h" |
32 #include "MPsetDivertObs.h" |
31 #include "psettelephony.h" |
33 #include "PsetTelephony.h" |
32 #include "psetpanic.h" |
34 #include "PSetPanic.h" |
33 #include "phonesettingslogger.h" |
35 #include "PhoneSettingsLogger.h" |
34 |
36 |
35 #include "psetcalldivertingcreator.h" |
37 #include "PSetCallDivertingCreator.h" |
36 #include "mcalldiverting.h" |
38 #include "MCallDiverting.h" |
37 |
39 |
38 // MEMBER FUNCTIONS |
40 // MEMBER FUNCTIONS |
39 // --------------------------------------------------------------------------- |
41 // --------------------------------------------------------------------------- |
40 // First phase constructor |
42 // First phase constructor |
41 // --------------------------------------------------------------------------- |
43 // --------------------------------------------------------------------------- |
257 // --------------------------------------------------------------------------- |
259 // --------------------------------------------------------------------------- |
258 // |
260 // |
259 EXPORT_C void CPsetCallDiverting::SetRequestObserver( MPsetRequestObserver* aObs ) |
261 EXPORT_C void CPsetCallDiverting::SetRequestObserver( MPsetRequestObserver* aObs ) |
260 { |
262 { |
261 iReqObserver = aObs; |
263 iReqObserver = aObs; |
262 iDivert->SetRequestObserver(aObs); |
|
263 } |
264 } |
264 |
265 |
265 // --------------------------------------------------------------------------- |
266 // --------------------------------------------------------------------------- |
266 // Queries for voice mail box number |
267 // Queries for voice mail box number |
267 // --------------------------------------------------------------------------- |
268 // --------------------------------------------------------------------------- |
268 // |
269 // |
269 EXPORT_C void CPsetCallDiverting::VoiceMailQueryL( TDes& /*aTelNumber*/ ) |
270 EXPORT_C void CPsetCallDiverting::VoiceMailQueryL( TDes& aTelNumber ) |
270 { |
271 { |
271 __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VoiceMailQueryL" ); |
272 __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VoiceMailQueryL" ); |
|
273 RVmbxNumber vmbxConnection; |
|
274 TBool vmbxNrChanged = ETrue; |
|
275 TInt retValue = iDivert->OpenVmbxLC( aTelNumber, vmbxConnection ); |
|
276 __PHSLOGSTRING1("[PHS] CPsetCallDiverting::VoiceMailQueryL: aTelNumber = %S", &aTelNumber ); |
|
277 __PHSLOGSTRING1("[PHS] CPsetCallDiverting::VoiceMailQueryL: retValue = %d", retValue ); |
|
278 |
|
279 if ( retValue == KErrNotFound ) |
|
280 { |
|
281 vmbxNrChanged = vmbxConnection.QueryNumberL( EVmbxNotDefinedQuery, aTelNumber ); |
|
282 } |
|
283 else if ( retValue != KErrNone ) |
|
284 { |
|
285 //Problem with vmbx application, better leave. |
|
286 User::Leave( retValue ); |
|
287 } |
|
288 if ( !vmbxNrChanged ) |
|
289 { |
|
290 User::Leave( KErrCancel ); |
|
291 } |
|
292 CleanupStack::PopAndDestroy(); // vmbxConnection |
272 |
293 |
273 __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VoiceMailQueryL" ); |
294 __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VoiceMailQueryL" ); |
274 } |
295 } |
275 |
296 |
276 // --------------------------------------------------------------------------- |
297 // --------------------------------------------------------------------------- |
277 // Queries for voice mail box number |
298 // Queries for voice mail box number |
278 // --------------------------------------------------------------------------- |
299 // --------------------------------------------------------------------------- |
279 // |
300 // |
280 EXPORT_C void CPsetCallDiverting::VideoMailQueryL( TDes& /*aTelNumber*/ ) |
301 EXPORT_C void CPsetCallDiverting::VideoMailQueryL( TDes& aTelNumber ) |
281 { |
302 { |
282 __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VideoMailQueryL" ); |
303 __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VideoMailQueryL" ); |
|
304 RVmbxNumber vmbxConnection; |
|
305 TBool vmbxNrChanged = ETrue; |
|
306 TInt retValue = OpenVideoMailboxLC( aTelNumber, vmbxConnection ); |
|
307 __PHSLOGSTRING1("[PHS] CPsetCallDiverting::VideoMailQueryL: aTelNumber = %S", &aTelNumber ); |
|
308 __PHSLOGSTRING1("[PHS] CPsetCallDiverting::VideoMailQueryL: retValue = %d", retValue ); |
|
309 |
|
310 if ( retValue == KErrNotFound ) |
|
311 { |
|
312 vmbxNrChanged = vmbxConnection.QueryVideoMbxNumberL( EVmbxNotDefinedQuery, aTelNumber ); |
|
313 } |
|
314 else if ( retValue != KErrNone ) |
|
315 { |
|
316 //Problem with vmbx application, better leave. |
|
317 User::Leave( retValue ); |
|
318 } |
|
319 if ( !vmbxNrChanged ) |
|
320 { |
|
321 User::Leave( KErrCancel ); |
|
322 } |
|
323 CleanupStack::PopAndDestroy(); // vmbxConnection |
283 |
324 |
284 __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VideoMailQueryL" ); |
325 __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VideoMailQueryL" ); |
285 } |
326 } |
286 |
327 |
287 // --------------------------------------------------------------------------- |
328 // --------------------------------------------------------------------------- |
288 // Opens Vmbx. Leaves vmbx to the stack. |
329 // Opens Vmbx. Leaves vmbx to the stack. |
289 // --------------------------------------------------------------------------- |
330 // --------------------------------------------------------------------------- |
290 // |
331 // |
291 TInt CPsetCallDiverting::OpenVideoMailboxLC( TDes& /*aTelNumber*/, RVmbxNumber& /*aVmbx*/ ) |
332 TInt CPsetCallDiverting::OpenVideoMailboxLC( TDes& aTelNumber, RVmbxNumber& aVmbx ) |
292 { |
333 { |
293 return 0; |
334 __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::OpenVideoMailboxLC" ); |
|
335 User::LeaveIfError( aVmbx.Open( iPhone ) ); |
|
336 CleanupClosePushL( aVmbx ); |
|
337 __PHSLOGSTRING("[PHS]<-- CPsetCallDiverting::OpenVideoMailboxLC" ); |
|
338 return aVmbx.GetVideoMbxNumber( aTelNumber ); |
294 } |
339 } |
295 |
340 |
296 // End of File |
341 // End of File |