bearermanagement/mpm/src/mpmiapselection.cpp
branchRCL_3
changeset 24 c45d4fe2ff0a
parent 19 22c3c67e5001
child 36 04408506c6e0
equal deleted inserted replaced
19:22c3c67e5001 24:c45d4fe2ff0a
   120         {
   120         {
   121         MPMLOGSTRING2( "CMPMIapSelection::ChooseIapL: Set snap %i to preferences",
   121         MPMLOGSTRING2( "CMPMIapSelection::ChooseIapL: Set snap %i to preferences",
   122             snap )
   122             snap )
   123         iChooseIapPref.SetSnapId( snap );
   123         iChooseIapPref.SetSnapId( snap );
   124         iChooseIapPref.SetIapId( 0 );
   124         iChooseIapPref.SetIapId( 0 );
       
   125         if ( iChooseIapPref.ConnType() == TMpmConnPref::EConnTypeImplicit )
       
   126             {
       
   127             // No Connection selection dialog on reselection.
       
   128             iChooseIapPref.SetConnType( TMpmConnPref::EConnTypeExplicit );
       
   129             }
   125         }
   130         }
   126     else if ( iap ) 
   131     else if ( iap ) 
   127         {      
   132         {      
   128         MPMLOGSTRING2( "CMPMIapSelection::ChooseIapL: Set iap %i to preferences",
   133         MPMLOGSTRING2( "CMPMIapSelection::ChooseIapL: Set iap %i to preferences",
   129                 iap )
   134                 iap )
   130         iChooseIapPref.SetIapId( iap );
   135         iChooseIapPref.SetIapId( iap );
   131         iChooseIapPref.SetSnapId( 0 );
   136         iChooseIapPref.SetSnapId( 0 );
       
   137         if ( iChooseIapPref.ConnType() == TMpmConnPref::EConnTypeImplicit )
       
   138             {
       
   139             // No Connection selection dialog on reselection.
       
   140             iChooseIapPref.SetConnType( TMpmConnPref::EConnTypeExplicit );
       
   141             }
   132         }
   142         }
   133 
   143 
   134     MPMLOGSTRING3( "CMPMIapSelection::ChooseIapL: IapID: %i SnapId: %i",
   144     MPMLOGSTRING3( "CMPMIapSelection::ChooseIapL: IapID: %i SnapId: %i",
   135             iChooseIapPref.IapId(), iChooseIapPref.SnapId() )
   145             iChooseIapPref.IapId(), iChooseIapPref.SnapId() )
   136     
   146     
   341         // In case offline mode is enabled, only LAN or WLAN is allowed.
   351         // In case offline mode is enabled, only LAN or WLAN is allowed.
   342         // If some other bearer has been requested, then error code 
   352         // If some other bearer has been requested, then error code 
   343         // KErrGprsOfflineMode should be returned instead of KErrNone.
   353         // KErrGprsOfflineMode should be returned instead of KErrNone.
   344         // 
   354         // 
   345         
   355         
   346         if ( !iapTypeLanOrWlan && iSession->MyServer().IsPhoneOffline() )
   356         if ( !iapTypeLanOrWlan && ( iSession->MyServer().IsPhoneOffline() ||                 
       
   357              iSession->MyServer().RoamingWatcher()->RoamingStatus() == EMPMRoamingStatusUnknown ) )
   347             {
   358             {
   348             ChooseIapComplete( KErrGprsOfflineMode, &iChooseIapPref );
   359             ChooseIapComplete( KErrGprsOfflineMode, &iChooseIapPref );
   349             }
   360             }
   350         else
   361         else
   351             {
   362             {
   512 
   523 
   513     if ( !CheckGprsServicesAllowedL( iapTypeLanOrWlan ) )
   524     if ( !CheckGprsServicesAllowedL( iapTypeLanOrWlan ) )
   514         {
   525         {
   515         ChooseIapComplete( KErrGprsServicesNotAllowed, NULL );
   526         ChooseIapComplete( KErrGprsServicesNotAllowed, NULL );
   516         }
   527         }
   517     else if ( !iapTypeLanOrWlan && iSession->MyServer().IsPhoneOffline() )
   528     else if ( !iapTypeLanOrWlan && ( iSession->MyServer().IsPhoneOffline() ||                 
       
   529                iSession->MyServer().RoamingWatcher()->RoamingStatus() == EMPMRoamingStatusUnknown ) )
   518         {
   530         {
   519         // In case offline mode is enabled, only LAN or WLAN is allowed.
   531         // In case offline mode is enabled, only LAN or WLAN is allowed.
   520         // If some other bearer has been requested, then error code 
   532         // If some other bearer has been requested, then error code 
   521         // KErrGprsOfflineMode should be returned instead of KErrNone.
   533         // KErrGprsOfflineMode should be returned instead of KErrNone.
   522         // 
   534         // 
   966                                    iUserSelectionIapId, 
   978                                    iUserSelectionIapId, 
   967                                    retNetId, 
   979                                    retNetId, 
   968                                    iapTypeLanOrWlan,
   980                                    iapTypeLanOrWlan,
   969                                    *iSession );
   981                                    *iSession );
   970                                    
   982                                    
   971     if ( !iapTypeLanOrWlan && iSession->MyServer().IsPhoneOffline() )
   983     if ( !iapTypeLanOrWlan && ( iSession->MyServer().IsPhoneOffline() ||            
       
   984             iSession->MyServer().RoamingWatcher()->RoamingStatus() == EMPMRoamingStatusUnknown ) )
   972         {
   985         {
   973         MPMLOGSTRING2( "CMPMIapSelection::CompleteImplicitConnectionL: Completing with code = %i",
   986         MPMLOGSTRING2( "CMPMIapSelection::CompleteImplicitConnectionL: Completing with code = %i",
   974                 KErrGprsOfflineMode )
   987                 KErrGprsOfflineMode )
   975         ChooseIapComplete( KErrGprsOfflineMode, NULL );
   988         ChooseIapComplete( KErrGprsOfflineMode, NULL );
   976         }
   989         }