43 aAvailable = EFalse; |
47 aAvailable = EFalse; |
44 |
48 |
45 // Is bearer available |
49 // Is bearer available |
46 TBool byCell( EFalse ); |
50 TBool byCell( EFalse ); |
47 TBool byPhone( EFalse ); |
51 TBool byPhone( EFalse ); |
48 |
52 |
49 // Find out if we are in 2G or in 3G - it is needed for calculating bearer availability |
53 if ( CurrentCellularDataUsage() != ECmCellularDataUsageDisabled ) |
50 RMobilePhone::TMobilePhoneNetworkMode mode; |
|
51 err = iConnMonIAP->MobilePhone()->GetCurrentMode( mode ); |
|
52 |
|
53 if ( KErrNone == err ) |
|
54 { |
54 { |
55 switch ( mode ) |
55 // Find out if we are in 2G or in 3G - it is needed for calculating bearer availability |
56 { |
56 RMobilePhone::TMobilePhoneNetworkMode mode; |
57 case RMobilePhone::ENetworkModeGsm: |
57 err = iConnMonIAP->MobilePhone()->GetCurrentMode( mode ); |
58 case RMobilePhone::ENetworkModeUnknown: // Emulator default |
|
59 err = iConnMonIAP->GetBearerSupportInfo( EBearerIdGPRS, byCell, byPhone ); |
|
60 break; |
|
61 case RMobilePhone::ENetworkModeWcdma: |
|
62 err = iConnMonIAP->GetBearerSupportInfo( EBearerIdWCDMA, byCell, byPhone ); |
|
63 break; |
|
64 default: |
|
65 LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err) |
|
66 return err; // Return silently, report not available |
|
67 } |
|
68 |
58 |
69 if ( KErrNone == err ) |
59 if ( KErrNone == err ) |
70 { |
60 { |
71 if ( byCell && byPhone ) |
61 switch ( mode ) |
72 { |
62 { |
73 aAvailable = ETrue; |
63 case RMobilePhone::ENetworkModeGsm: |
|
64 case RMobilePhone::ENetworkModeUnknown: // Emulator default |
|
65 err = iConnMonIAP->GetBearerSupportInfo( EBearerIdGPRS, byCell, byPhone ); |
|
66 break; |
|
67 case RMobilePhone::ENetworkModeWcdma: |
|
68 err = iConnMonIAP->GetBearerSupportInfo( EBearerIdWCDMA, byCell, byPhone ); |
|
69 break; |
|
70 default: |
|
71 LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err) |
|
72 return err; // Return silently, report not available |
|
73 } |
|
74 |
|
75 if ( KErrNone == err ) |
|
76 { |
|
77 if ( byCell && byPhone ) |
|
78 { |
|
79 aAvailable = ETrue; |
|
80 } |
74 } |
81 } |
75 } |
82 } |
|
83 |
|
84 |
|
85 // Make GPRS available in wins |
|
86 #if defined(__WINSCW__) |
|
87 LOGIT2("GetAvailability: Emulator override, true values were %d <%d>", aAvailable, err) |
|
88 err = KErrNone; |
|
89 aAvailable = ETrue; |
|
90 #endif |
76 } |
91 } |
77 |
92 |
78 // Make GPRS available in wins |
|
79 #if defined(__WINSCW__) |
|
80 LOGIT2("GetAvailability: Emulator override, true values were %d <%d>", aAvailable, err) |
|
81 err = KErrNone; |
|
82 aAvailable = ETrue; |
|
83 #endif |
|
84 |
|
85 //LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err) |
93 //LOGEXITFN1("TConnMonBearerGPRS::GetAvailability()", err) |
86 return err; |
94 return err; |
87 } |
95 } |
88 |
96 |
89 // --------------------------------------------------------------------------- |
97 // --------------------------------------------------------------------------- |
121 } |
129 } |
122 |
130 |
123 LOGEXITFN("TConnMonBearerGPRS::FlagAvailableIaps()") |
131 LOGEXITFN("TConnMonBearerGPRS::FlagAvailableIaps()") |
124 } |
132 } |
125 |
133 |
|
134 // --------------------------------------------------------------------------- |
|
135 // Read current cellular data usage setting from Central Repository |
|
136 // --------------------------------------------------------------------------- |
|
137 // |
|
138 TInt TConnMonBearerGPRS::CurrentCellularDataUsage() const |
|
139 { |
|
140 // Use default value if repository is not available |
|
141 TInt value( ECmCellularDataUsageAutomatic ); |
|
142 CRepository* cmRepository = NULL; |
|
143 |
|
144 TRAPD( err, cmRepository = CRepository::NewL( KCRUidCmManager ) ) |
|
145 |
|
146 if ( err == KErrNone ) |
|
147 { |
|
148 err = cmRepository->Get( KCurrentCellularDataUsage, value ); |
|
149 LOGIT2("KCurrentCellularDataUsage from repository: %d error: <%d>", value, err ) |
|
150 } |
|
151 |
|
152 delete cmRepository; |
|
153 return value; |
|
154 } |
|
155 |
126 // End-of-file |
156 // End-of-file |