15 * |
15 * |
16 */ |
16 */ |
17 |
17 |
18 |
18 |
19 // INCLUDE FILES |
19 // INCLUDE FILES |
20 #include "psetcalldivertingbasicimpl.h" |
20 #include "PSetCallDivertingBasicImpl.h" |
21 |
21 |
22 #include <badesca.h> |
22 #include <badesca.h> |
23 #include <etelmm.h> |
23 #include <etelmm.h> |
24 #include <e32math.h> |
24 #include <e32math.h> |
|
25 #include <vmnumber.h> |
25 #include <e32svr.h> |
26 #include <e32svr.h> |
26 #include <featmgr.h> |
27 #include <featmgr.h> |
27 #include <centralrepository.h> |
28 #include <centralrepository.h> |
28 #include <settingsinternalcrkeys.h> |
29 #include <settingsinternalcrkeys.h> |
29 |
30 |
30 #include "psetcalldiverting.h" |
31 #include "PsetCallDiverting.h" |
31 #include "psetcontainer.h" |
32 #include "PsetContainer.h" |
32 #include "mpsetdivertobs.h" |
33 #include "MPsetDivertObs.h" |
33 #include "psettelephony.h" |
34 #include "PsetTelephony.h" |
34 #include "psetpanic.h" |
35 #include "PSetPanic.h" |
35 #include "mpsetrequestobs.h" |
36 #include "MPsetRequestObs.h" |
36 #include "psetutility.h" |
37 #include "PSetUtility.h" |
37 #include "phonesettingslogger.h" |
38 #include "PhoneSettingsLogger.h" |
38 #include "psetsaobserver.h" |
39 #include "PsetSAObserver.h" |
39 |
40 |
40 // LOCAL CONSTANTS AND MACROS |
41 // LOCAL CONSTANTS AND MACROS |
41 _LIT( KPSetIntNbr, "+" ); |
42 _LIT( KPSetIntNbr, "+" ); |
42 _LIT( KPSNameOfClass, "CPSetCallDivertingBasicImpl" ); |
43 _LIT( KPSNameOfClass, "CPSetCallDivertingBasicImpl" ); |
43 |
44 |
64 // CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl |
65 // CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl |
65 // --------------------------------------------------------------------------- |
66 // --------------------------------------------------------------------------- |
66 // |
67 // |
67 CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl() |
68 CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl() |
68 { |
69 { |
69 Cancel(); |
|
70 } |
70 } |
71 |
71 |
72 // ----------------------------------------------------------------------------- |
72 // ----------------------------------------------------------------------------- |
73 // CPSetCallDivertingBasicImpl::CPSetCallDivertingBasicImpl |
73 // CPSetCallDivertingBasicImpl::CPSetCallDivertingBasicImpl |
74 // C++ constructor can NOT contain any code, that |
74 // C++ constructor can NOT contain any code, that |
103 if ( IsActive() ) |
103 if ( IsActive() ) |
104 { |
104 { |
105 User::Leave( KErrInUse ); |
105 User::Leave( KErrInUse ); |
106 } |
106 } |
107 iBsc = aBsc; |
107 iBsc = aBsc; |
108 iRequestedServiceGroup = aDivert.iServiceGroup; |
|
109 |
108 |
110 CPsetTelephony::CheckLineModeL( aDivert.iServiceGroup, &iPhone, iLine ); |
109 CPsetTelephony::CheckLineModeL( aDivert.iServiceGroup, &iPhone, iLine ); |
111 if ( !iLine->SubSessionHandle() ) |
110 if ( !iLine->SubSessionHandle() ) |
112 { |
111 { |
113 User::Leave( KErrBadHandle ); |
112 User::Leave( KErrBadHandle ); |
202 case EPSetChangeDivert: |
201 case EPSetChangeDivert: |
203 { |
202 { |
204 __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::RunL: EPSetChangeDivert" ); |
203 __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::RunL: EPSetChangeDivert" ); |
205 //Notify Observer |
204 //Notify Observer |
206 iDivertStatus.iStatus = PSetUtility::GetChangeInfoStatus( iChangeInfo.iAction ); |
205 iDivertStatus.iStatus = PSetUtility::GetChangeInfoStatus( iChangeInfo.iAction ); |
207 iDivertStatus.iNumber = iChangeInfo.iNumber.iTelNumber; |
|
208 iDivertStatus.iCondition = PSetUtility::GetDivertReason(iReason); |
|
209 iDivertStatus.iNoReplyTimer = iChangeInfo.iTimeout; |
|
210 iDivertStatus.iServiceGroup = iRequestedServiceGroup; |
|
211 |
206 |
212 // Check is done because of VOIP notification functionality(PSetNotesUI). |
207 // Check is done because of VOIP notification functionality(PSetNotesUI). |
213 if ( iVoiceDivert && !iVideoDivert ) |
208 if ( iVoiceDivert && !iVideoDivert ) |
214 { |
209 { |
215 iDivertStatus.iServiceGroup = EServiceGroupVoice; |
210 iDivertStatus.iServiceGroup = EServiceGroupVoice; |