locationsystemui/locationsysui/locsuplsettingsui/src/locsuplsettingsadapter.cpp
branchRCL_3
changeset 55 ea98413ce11f
parent 49 10852b179f64
equal deleted inserted replaced
49:10852b179f64 55:ea98413ce11f
    56         }
    56         }
    57         
    57         
    58     delete iSUPLSettings;
    58     delete iSUPLSettings;
    59     iSUPLSettings = NULL;
    59     iSUPLSettings = NULL;
    60     
    60     
       
    61     delete iAutomatic;
       
    62     iAutomatic = NULL;
       
    63     
       
    64     delete iAutomaticatHome;
       
    65     iAutomaticatHome = NULL;
       
    66     
       
    67     delete iAsk;
       
    68     iAsk = NULL;
       
    69     
       
    70     delete iDisable;
       
    71     iDisable = NULL;
    61 	DEBUG( - CLocSUPLSettingsAdapter::~CLocSUPLSettingsAdapter );	
    72 	DEBUG( - CLocSUPLSettingsAdapter::~CLocSUPLSettingsAdapter );	
    62     } 
    73     } 
    63 
    74 
    64 // ---------------------------------------------------------------------------
    75 // ---------------------------------------------------------------------------
    65 // CLocSUPLSettingsAdapter* CLocSUPLSettingsAdapter::NewL
    76 // CLocSUPLSettingsAdapter* CLocSUPLSettingsAdapter::NewL
    97     iSUPLSettings->SetObserverL( *this );
   108     iSUPLSettings->SetObserverL( *this );
    98     
   109     
    99     // Set the Observer for SUPL Sessions
   110     // Set the Observer for SUPL Sessions
   100     iSUPLSettings->SetSessionObserverL( *this );
   111     iSUPLSettings->SetSessionObserverL( *this );
   101     
   112     
       
   113     // Load the SUPL settings usage strings
       
   114     iAutomatic 			= StringLoader::LoadL( R_LOC_SUPL_AUTOMATIC );
       
   115     iAutomaticatHome 	= StringLoader::LoadL( R_LOC_SUPL_HOME_AUTOMATIC );
       
   116     iAsk 				= StringLoader::LoadL( R_LOC_SUPL_ASK );
       
   117     iDisable 			= StringLoader::LoadL( R_LOC_SUPL_DISABLED );
   102     
   118     
   103     CActiveScheduler::Add( this );
   119     CActiveScheduler::Add( this );
   104 	DEBUG( - CLocSUPLSettingsAdapter::ConstructL );	
   120 	DEBUG( - CLocSUPLSettingsAdapter::ConstructL );	
   105     }           
   121     }           
   106 
   122 
   129 void CLocSUPLSettingsAdapter::CancelInitialize()
   145 void CLocSUPLSettingsAdapter::CancelInitialize()
   130     {
   146     {
   131     Cancel();
   147     Cancel();
   132     }
   148     }
   133     
   149     
   134 
   150 // ---------------------------------------------------------------------------
       
   151 // void CLocSUPLSettingsAdapter::SetSuplUsageL
       
   152 // ---------------------------------------------------------------------------
       
   153 //       
       
   154 void CLocSUPLSettingsAdapter::SetSuplUsageL( 
       
   155             const CLocSUPLSettingsAdapter::TLocSuplUsage    aIndex )
       
   156     {
       
   157 	DEBUG( + CLocSUPLSettingsAdapter::SetSuplUsageL );	
       
   158     CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
       
   159     switch ( aIndex )
       
   160         {
       
   161         case ELocSuplAutomatic:
       
   162             {
       
   163             value = CSuplSettings::ESuplUsageAutomatic;
       
   164             break;
       
   165             }
       
   166         case ELocSuplAutomaticatHome:
       
   167             {
       
   168             value = CSuplSettings::ESuplUsageHomeAutomatic;
       
   169             break;
       
   170             }
       
   171         case ELocSuplAlwaysAsk:
       
   172             {
       
   173             value = CSuplSettings::ESuplUsageAlwaysAsk;
       
   174             break;
       
   175             }
       
   176         case ELocSuplDisable:
       
   177             {
       
   178             value = CSuplSettings::ESuplUsageDisabled;
       
   179             break;
       
   180             }
       
   181         default:
       
   182             {
       
   183             User::Leave( KErrNotFound );
       
   184             break;    
       
   185             }
       
   186         }
       
   187 
       
   188     // Write back to the SUPL settings API
       
   189     TInt ret = iSUPLSettings->SetSuplUsage( value );            
       
   190             
       
   191     // If the Set failed, then Leave with the corresponding Error code
       
   192     if( ret )
       
   193         {
       
   194         User::Leave ( ret );
       
   195         }
       
   196 	DEBUG( - CLocSUPLSettingsAdapter::SetSuplUsageL );	
       
   197     }
       
   198 
       
   199 // ---------------------------------------------------------------------------
       
   200 // void CLocSUPLSettingsAdapter::GetSuplUsageL
       
   201 // ---------------------------------------------------------------------------
       
   202 //  
       
   203 void CLocSUPLSettingsAdapter::GetSuplUsageL( TDes&    aSuplUsage )
       
   204     {
       
   205 	DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsageL );	
       
   206     CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
       
   207     User::LeaveIfError( iSUPLSettings->GetSuplUsage( value ));
       
   208 
       
   209     switch ( value )
       
   210         {
       
   211         case CSuplSettings::ESuplUsageAutomatic:
       
   212             {
       
   213             if ( aSuplUsage.MaxLength() < iAutomatic->Des().Length())
       
   214                 {
       
   215                 User::Leave( KErrNoMemory );
       
   216                 }
       
   217             aSuplUsage.Copy( *iAutomatic );
       
   218             break;
       
   219             }
       
   220         case CSuplSettings::ESuplUsageHomeAutomatic:
       
   221             {
       
   222             if ( aSuplUsage.MaxLength() < iAutomaticatHome->Des().Length())
       
   223                 {
       
   224                 User::Leave( KErrNoMemory );
       
   225                 }
       
   226             aSuplUsage.Copy( *iAutomaticatHome );          
       
   227             break;
       
   228             }
       
   229         case CSuplSettings::ESuplUsageAlwaysAsk:
       
   230             {
       
   231             if ( aSuplUsage.MaxLength() < iAsk->Des().Length())
       
   232                 {
       
   233                 User::Leave( KErrNoMemory );
       
   234                 }            
       
   235             aSuplUsage.Copy( *iAsk );
       
   236             break;
       
   237             }
       
   238         case CSuplSettings::ESuplUsageDisabled:
       
   239             {
       
   240             if ( aSuplUsage.MaxLength() < iDisable->Des().Length())
       
   241                 {
       
   242                 User::Leave( KErrNoMemory );
       
   243                 }
       
   244             aSuplUsage.Copy( *iDisable );
       
   245             break;
       
   246             }
       
   247         default:
       
   248             {
       
   249             User::Leave( KErrNotSupported );
       
   250             break;
       
   251             }
       
   252         }
       
   253 	DEBUG( - CLocSUPLSettingsAdapter::GetSuplUsageL );	
       
   254     }
       
   255 
       
   256 // ---------------------------------------------------------------------------
       
   257 // TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsage
       
   258 // ---------------------------------------------------------------------------
       
   259 // 
       
   260 TInt CLocSUPLSettingsAdapter::GetSuplUsage()
       
   261     {
       
   262 	DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsage TInt );	
       
   263     CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
       
   264     TInt error = iSUPLSettings->GetSuplUsage( value );
       
   265     if ( error )
       
   266         {
       
   267         // If there is an error then return the default value
       
   268         return CSuplSettings::ESuplUsageAlwaysAsk;
       
   269         }
       
   270 	DEBUG( - CLocSUPLSettingsAdapter::GetSuplUsage TInt );	
       
   271     return value;
       
   272     }
       
   273 
       
   274 // ---------------------------------------------------------------------------
       
   275 // TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsageIndex
       
   276 // ---------------------------------------------------------------------------
       
   277 // 
       
   278 CLocSUPLSettingsAdapter::TLocSuplUsage CLocSUPLSettingsAdapter::GetSuplUsageIndex()
       
   279     {    
       
   280 	DEBUG( + CLocSUPLSettingsAdapter::GetSuplUsageIndex );	
       
   281     TLocSuplUsage index = ELocSuplAutomatic;
       
   282     CSuplSettings::TSuplSettingsUsage value = CSuplSettings::ESuplUsageAlwaysAsk;
       
   283     if ( iSUPLSettings->GetSuplUsage( value ))
       
   284         {
       
   285         // If there is an error then return the default value.
       
   286         return index;
       
   287         }
       
   288         
       
   289     switch ( value )
       
   290         {
       
   291         case CSuplSettings::ESuplUsageAutomatic:
       
   292             {
       
   293             index = ELocSuplAutomatic;
       
   294             break;
       
   295             }
       
   296         case CSuplSettings::ESuplUsageHomeAutomatic:
       
   297             {
       
   298             index = ELocSuplAutomaticatHome;         
       
   299             break;
       
   300             }
       
   301         case CSuplSettings::ESuplUsageAlwaysAsk:
       
   302             {
       
   303             index = ELocSuplAlwaysAsk;
       
   304             break;
       
   305             }
       
   306         case CSuplSettings::ESuplUsageDisabled:
       
   307             {
       
   308             index = ELocSuplDisable;
       
   309             break;
       
   310             }
       
   311         default:
       
   312             {
       
   313             break;
       
   314             }
       
   315         }
       
   316     return index;   
       
   317     }
       
   318     
       
   319 // ---------------------------------------------------------------------------
       
   320 // const TDesC& CLocSUPLSettingsAdapter::Automatic
       
   321 // ---------------------------------------------------------------------------
       
   322 // 
       
   323 const TDesC& CLocSUPLSettingsAdapter::Automatic()
       
   324     {
       
   325     return *iAutomatic;
       
   326     }
       
   327 
       
   328 // ---------------------------------------------------------------------------
       
   329 // const TDesC& CLocSUPLSettingsAdapter::AutomaticAtHome
       
   330 // ---------------------------------------------------------------------------
       
   331 //
       
   332 const TDesC& CLocSUPLSettingsAdapter::AutomaticAtHome()
       
   333     {
       
   334     return *iAutomaticatHome;  
       
   335     }
       
   336 
       
   337 // ---------------------------------------------------------------------------
       
   338 // const TDesC& CLocSUPLSettingsAdapter::AlwaysAsk
       
   339 // ---------------------------------------------------------------------------
       
   340 //
       
   341 const TDesC& CLocSUPLSettingsAdapter::AlwaysAsk()
       
   342     {
       
   343     return *iAsk;   
       
   344     }
       
   345 
       
   346 // ---------------------------------------------------------------------------
       
   347 // const TDesC& CLocSUPLSettingsAdapter::Disable
       
   348 // ---------------------------------------------------------------------------
       
   349 //
       
   350 const TDesC& CLocSUPLSettingsAdapter::Disable()
       
   351     {
       
   352     return *iDisable; 
       
   353     }
   135                    
   354                    
   136 // ---------------------------------------------------------------------------
   355 // ---------------------------------------------------------------------------
   137 // void CLocSUPLSettingsAdapter::HandleSuplSettingsChangeL
   356 // void CLocSUPLSettingsAdapter::HandleSuplSettingsChangeL
   138 // Handle the Settings UI changes
   357 // Handle the Settings UI changes
   139 // ---------------------------------------------------------------------------
   358 // ---------------------------------------------------------------------------