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 |