--- a/bearermanagement/mpm/src/mpmiapselection.cpp Tue Apr 27 17:03:25 2010 +0300
+++ b/bearermanagement/mpm/src/mpmiapselection.cpp Tue May 11 16:35:05 2010 +0300
@@ -122,6 +122,11 @@
snap )
iChooseIapPref.SetSnapId( snap );
iChooseIapPref.SetIapId( 0 );
+ if ( iChooseIapPref.ConnType() == TMpmConnPref::EConnTypeImplicit )
+ {
+ // No Connection selection dialog on reselection.
+ iChooseIapPref.SetConnType( TMpmConnPref::EConnTypeExplicit );
+ }
}
else if ( iap )
{
@@ -129,6 +134,11 @@
iap )
iChooseIapPref.SetIapId( iap );
iChooseIapPref.SetSnapId( 0 );
+ if ( iChooseIapPref.ConnType() == TMpmConnPref::EConnTypeImplicit )
+ {
+ // No Connection selection dialog on reselection.
+ iChooseIapPref.SetConnType( TMpmConnPref::EConnTypeExplicit );
+ }
}
MPMLOGSTRING3( "CMPMIapSelection::ChooseIapL: IapID: %i SnapId: %i",
@@ -343,7 +353,8 @@
// KErrGprsOfflineMode should be returned instead of KErrNone.
//
- if ( !iapTypeLanOrWlan && iSession->MyServer().IsPhoneOffline() )
+ if ( !iapTypeLanOrWlan && ( iSession->MyServer().IsPhoneOffline() ||
+ iSession->MyServer().RoamingWatcher()->RoamingStatus() == EMPMRoamingStatusUnknown ) )
{
ChooseIapComplete( KErrGprsOfflineMode, &iChooseIapPref );
}
@@ -514,7 +525,8 @@
{
ChooseIapComplete( KErrGprsServicesNotAllowed, NULL );
}
- else if ( !iapTypeLanOrWlan && iSession->MyServer().IsPhoneOffline() )
+ else if ( !iapTypeLanOrWlan && ( iSession->MyServer().IsPhoneOffline() ||
+ iSession->MyServer().RoamingWatcher()->RoamingStatus() == EMPMRoamingStatusUnknown ) )
{
// In case offline mode is enabled, only LAN or WLAN is allowed.
// If some other bearer has been requested, then error code
@@ -968,7 +980,8 @@
iapTypeLanOrWlan,
*iSession );
- if ( !iapTypeLanOrWlan && iSession->MyServer().IsPhoneOffline() )
+ if ( !iapTypeLanOrWlan && ( iSession->MyServer().IsPhoneOffline() ||
+ iSession->MyServer().RoamingWatcher()->RoamingStatus() == EMPMRoamingStatusUnknown ) )
{
MPMLOGSTRING2( "CMPMIapSelection::CompleteImplicitConnectionL: Completing with code = %i",
KErrGprsOfflineMode )