bearermanagement/mpm/src/mpmiapselection.cpp
branchRCL_3
changeset 24 c45d4fe2ff0a
parent 19 22c3c67e5001
child 36 04408506c6e0
--- 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 )