cellular/telephonysettings/src/PSetCallDivertingBasicImpl.cpp
branchRCL_3
changeset 20 987c9837762f
parent 19 7d48bed6ce0c
equal deleted inserted replaced
19:7d48bed6ce0c 20:987c9837762f
    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;