cellular/telephonysettings/src/PSetCallDivertingBasicImpl.cpp
branchRCL_3
changeset 19 7d48bed6ce0c
parent 3 a4a774cb6ea7
child 20 987c9837762f
equal deleted inserted replaced
18:594d59766373 19:7d48bed6ce0c
    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>
       
    26 #include <e32svr.h>
    25 #include <e32svr.h>
    27 #include <featmgr.h>
    26 #include <featmgr.h>
    28 #include <centralrepository.h>
    27 #include <centralrepository.h>
    29 #include <settingsinternalcrkeys.h>
    28 #include <settingsinternalcrkeys.h> 
    30 
    29 
    31 #include "PsetCallDiverting.h"
    30 #include "psetcalldiverting.h" 
    32 #include "PsetContainer.h"
    31 #include "psetcontainer.h" 
    33 #include "MPsetDivertObs.h"
    32 #include "mpsetdivertobs.h" 
    34 #include "PsetTelephony.h"
    33 #include "psettelephony.h" 
    35 #include "PSetPanic.h"
    34 #include "psetpanic.h" 
    36 #include "MPsetRequestObs.h"
    35 #include "mpsetrequestobs.h" 
    37 #include "PSetUtility.h"
    36 #include "psetutility.h" 
    38 #include "PhoneSettingsLogger.h"
    37 #include "phonesettingslogger.h" 
    39 #include "PsetSAObserver.h"
    38 #include "psetsaobserver.h" 
    40 
    39 
    41 //  LOCAL CONSTANTS AND MACROS
    40 //  LOCAL CONSTANTS AND MACROS
    42 _LIT( KPSetIntNbr, "+" );
    41 _LIT( KPSetIntNbr, "+" );
    43 _LIT( KPSNameOfClass, "CPSetCallDivertingBasicImpl" );
    42 _LIT( KPSNameOfClass, "CPSetCallDivertingBasicImpl" );
    44 
    43 
    65 // CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl
    64 // CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl
    66 // ---------------------------------------------------------------------------
    65 // ---------------------------------------------------------------------------
    67 //
    66 //
    68 CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl()
    67 CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl()
    69     {
    68     {
       
    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;
   108    
   109    
   109    CPsetTelephony::CheckLineModeL( aDivert.iServiceGroup, &iPhone, iLine );
   110    CPsetTelephony::CheckLineModeL( aDivert.iServiceGroup, &iPhone, iLine );
   110    if ( !iLine->SubSessionHandle() )
   111    if ( !iLine->SubSessionHandle() )
   111        {
   112        {
   112        User::Leave( KErrBadHandle );
   113        User::Leave( KErrBadHandle );
   201        case EPSetChangeDivert:
   202        case EPSetChangeDivert:
   202            {
   203            {
   203            __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::RunL: EPSetChangeDivert" );
   204            __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::RunL: EPSetChangeDivert" );
   204            //Notify Observer            
   205            //Notify Observer            
   205            iDivertStatus.iStatus = PSetUtility::GetChangeInfoStatus( iChangeInfo.iAction );
   206            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;
   206            
   211            
   207             // Check is done because of VOIP notification functionality(PSetNotesUI).
   212             // Check is done because of VOIP notification functionality(PSetNotesUI).
   208            if ( iVoiceDivert && !iVideoDivert )
   213            if ( iVoiceDivert && !iVideoDivert )
   209                {
   214                {
   210                iDivertStatus.iServiceGroup = EServiceGroupVoice;
   215                iDivertStatus.iServiceGroup = EServiceGroupVoice;