alwayson_net_plugin/pdpcontextmanager2/src/caosettings.cpp
changeset 4 77415202bfc8
parent 3 f7816ffc66ed
child 73 70ee5458c95d
equal deleted inserted replaced
3:f7816ffc66ed 4:77415202bfc8
    24 
    24 
    25 #include "caosettings.h"
    25 #include "caosettings.h"
    26 #include "logger.h"
    26 #include "logger.h"
    27 #include "maosettingsobserver.h"
    27 #include "maosettingsobserver.h"
    28 #include "pdpcontextmanagerinternalcrkeys.h"
    28 #include "pdpcontextmanagerinternalcrkeys.h"
       
    29 #include "maostatecontext.h"
       
    30 #include "maoconnectionmanager.h"
    29 
    31 
    30 // UNNAMED NAMESPACE FOR LOCAL DEFINITIONS
    32 // UNNAMED NAMESPACE FOR LOCAL DEFINITIONS
    31 namespace
    33 namespace
    32     {
    34     {
    33     // CONSTANTS
    35     // CONSTANTS
    66 
    68 
    67 // ---------------------------------------------------------------------------
    69 // ---------------------------------------------------------------------------
    68 // CAOSettings::NewL
    70 // CAOSettings::NewL
    69 // ---------------------------------------------------------------------------
    71 // ---------------------------------------------------------------------------
    70 //
    72 //
    71 CAOSettings* CAOSettings::NewL( MAOSettingsObserver& aObserver )
    73 CAOSettings* CAOSettings::NewL( MAOSettingsObserver& aObserver,
       
    74                                 MAOStateContext&     aStateContext )
    72     {
    75     {
    73     LOG_1( _L("CAOSettings::NewL") );
    76     LOG_1( _L("CAOSettings::NewL") );
    74     
    77     
    75     CAOSettings* self = new( ELeave ) CAOSettings( aObserver );
    78     CAOSettings* self = new( ELeave ) CAOSettings( aObserver, aStateContext );
    76     
    79     
    77     CleanupStack::PushL( self );
    80     CleanupStack::PushL( self );
    78     self->ConstructL();
    81     self->ConstructL();
    79     CleanupStack::Pop( self );
    82     CleanupStack::Pop( self );
    80     
    83     
   102 
   105 
   103 // ---------------------------------------------------------------------------
   106 // ---------------------------------------------------------------------------
   104 // CAOSettings::CAOSettings
   107 // CAOSettings::CAOSettings
   105 // ---------------------------------------------------------------------------
   108 // ---------------------------------------------------------------------------
   106 //
   109 //
   107 CAOSettings::CAOSettings( MAOSettingsObserver& aObserver ):
   110 CAOSettings::CAOSettings( MAOSettingsObserver& aObserver,
       
   111                           MAOStateContext&     aStateContext ):
   108     CActive( CActive::EPriorityStandard ),
   112     CActive( CActive::EPriorityStandard ),
   109     iObserver( aObserver ),
   113     iObserver( aObserver ),
   110     iIAP( KDefaultIAPUid ),
   114     iIAP( KDefaultIAPUid ),
   111     iRetryTimerValue( KDefaultRetryInterval ),
   115     iRetryTimerValue( KDefaultRetryInterval ),
   112     iSupportedInHPLMN( EFalse ),
   116     iSupportedInHPLMN( EFalse ),
   113     iSupportedInVPLMN( EFalse ),
   117     iSupportedInVPLMN( EFalse ),
   114     iLingerTimerValue( KLingerOff )
   118     iLingerTimerValue( KLingerOff ),
       
   119     iStateContext( aStateContext )
   115     {
   120     {
   116     LOG_1( _L("CAOSettings::CAOSettings") );
   121     LOG_1( _L("CAOSettings::CAOSettings") );
   117     
   122     
   118     CActiveScheduler::Add( this );
   123     CActiveScheduler::Add( this );
   119     }
   124     }
   585     if ( repository )
   590     if ( repository )
   586         {
   591         {
   587         TInt value( 0 );
   592         TInt value( 0 );
   588         TInt err = repository->Get( KCurrentCellularDataUsage, value );
   593         TInt err = repository->Get( KCurrentCellularDataUsage, value );
   589 
   594 
   590         if ( err == KErrNone && value == ECmCellularDataUsageDisabled )
   595         if ( err == KErrNone )
   591             {
   596             {
   592             // Cellular connection is not allowed by user
   597             if ( value == ECmCellularDataUsageDisabled )
   593             allowed = EFalse;
   598                 {
   594             }    
   599                 // Cellular connection is not allowed by user
   595         }
   600                 allowed = EFalse;
   596 
   601                 }
       
   602             else
       
   603                 {
       
   604                 MAOConnectionManager::TNetworkType nwType =
       
   605                     iStateContext.ConnectionManager().NetworkType();
       
   606                 
       
   607                 if ( ( nwType == MAOConnectionManager::EVPLMN ) && 
       
   608                      ( value == ECmCellularDataUsageConfirm ) )
       
   609                     {
       
   610                     // Silent connection is not allowed (will fail)
       
   611                     // in visitor network if user has chosen confirm option.
       
   612                     allowed = EFalse;
       
   613                     }
       
   614                 }
       
   615             }
       
   616         }
       
   617     LOG_2( _L("IsCellularAllowedByUser(): %d"), allowed );
       
   618     
   597     delete repository;
   619     delete repository;
   598     return allowed;
   620     return allowed;
   599     }
   621     }
   600 
   622 
   601 // End of file
   623 // End of file