uiservicetab/vimpstengine/src/cvimpstengineservicetablefetcher.cpp
branchRCL_3
changeset 22 3104fc151679
parent 21 2b7283837edb
child 23 9a48e301e94b
equal deleted inserted replaced
21:2b7283837edb 22:3104fc151679
     1 /*
       
     2 * Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Handles the use of Service Provider Settings API
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 // INCLUDE FILES
       
    20 #include <spsettings.h>
       
    21 #include <spentry.h>
       
    22 #include <spproperty.h>
       
    23 
       
    24 
       
    25 // Phonebook shutter
       
    26 #include <apgtask.h>
       
    27 #include <w32std.h>
       
    28 #include <Pbk2UID.h>
       
    29 #include <apgcli.h>
       
    30 #include <apaid.h>
       
    31 
       
    32 #include "cvimpstengineservicetablefetcher.h"
       
    33 #include "cvimpstenginecchhandler.h"
       
    34 
       
    35 #include "vimpstextentionuiuid.h"
       
    36 #include "tvimpstconsts.h"
       
    37 #include "mvimpstenginefactory.h"
       
    38 #include "cvimpstenginefactory.h"
       
    39 #include "mvimpststorageserviceview.h"
       
    40 #include "cvimpststoragemanagerfactory.h"
       
    41 #include "uiservicetabtracer.h"
       
    42 
       
    43 
       
    44 
       
    45 // ================= MEMBER FUNCTIONS =======================
       
    46 
       
    47 // ---------------------------------------------------------------------------
       
    48 // CVIMPSTEngineServiceTableFetcher::CVIMPSTEngineServiceTableFetcher()
       
    49 // ---------------------------------------------------------------------------
       
    50 //
       
    51 CVIMPSTEngineServiceTableFetcher::CVIMPSTEngineServiceTableFetcher()
       
    52     {
       
    53     }
       
    54 
       
    55 // ---------------------------------------------------------------------------
       
    56 // CVIMPSTEngineServiceTableFetcher::ConstructL()
       
    57 // ---------------------------------------------------------------------------
       
    58 //
       
    59 void CVIMPSTEngineServiceTableFetcher::ConstructL()
       
    60     {
       
    61 	TRACER_AUTO;
       
    62     iSettings = CSPSettings::NewL();
       
    63     CompressViewIdsL();
       
    64     }
       
    65 
       
    66 // ---------------------------------------------------------------------------
       
    67 // CVIMPSTEngineServiceTableFetcher::NewL()
       
    68 // ---------------------------------------------------------------------------
       
    69 //
       
    70 CVIMPSTEngineServiceTableFetcher* 
       
    71     CVIMPSTEngineServiceTableFetcher::NewL( )
       
    72     {
       
    73 	TRACER_AUTO;
       
    74     
       
    75     CVIMPSTEngineServiceTableFetcher* self = NewLC();
       
    76     CleanupStack::Pop(self);
       
    77     
       
    78     return self;
       
    79     }
       
    80 
       
    81 // ---------------------------------------------------------------------------
       
    82 // CVIMPSTEngineServiceTableFetcher::NewLC()
       
    83 // ---------------------------------------------------------------------------
       
    84 //
       
    85 CVIMPSTEngineServiceTableFetcher* 
       
    86     CVIMPSTEngineServiceTableFetcher::NewLC()
       
    87     {
       
    88 	TRACER_AUTO;
       
    89     
       
    90     CVIMPSTEngineServiceTableFetcher* self =
       
    91         new (ELeave) CVIMPSTEngineServiceTableFetcher( );
       
    92     CleanupStack::PushL(self);
       
    93     self->ConstructL();
       
    94     
       
    95     return self;
       
    96     }
       
    97 
       
    98 // ---------------------------------------------------------------------------
       
    99 // CVIMPSTEngineServiceTableFetcher::
       
   100 //      ~CVIMPSTEngineServiceTableFetcher()
       
   101 // ---------------------------------------------------------------------------
       
   102 //
       
   103 CVIMPSTEngineServiceTableFetcher::~CVIMPSTEngineServiceTableFetcher()
       
   104     {
       
   105 	TRACER_AUTO;
       
   106     
       
   107     
       
   108     delete iSettings;	
       
   109     iSettings = NULL;
       
   110     
       
   111     }
       
   112 
       
   113 // ---------------------------------------------------------------------------
       
   114 // CVIMPSTEngineServiceTableFetcher::GetMasterServiceIdsL()
       
   115 // ---------------------------------------------------------------------------
       
   116 //
       
   117 void CVIMPSTEngineServiceTableFetcher::GetMasterServiceIdsL( 
       
   118     RArray<TUint32>& aServiceIds )
       
   119     {
       
   120 	TRACER_AUTO;
       
   121     
       
   122     RArray<TServiceId> services;
       
   123     CleanupClosePushL( services );
       
   124     iSettings->FindServiceIdsL( services );
       
   125 	
       
   126 	const TInt serviceCount = services.Count();
       
   127     for ( TInt i( 0 ); i < serviceCount; i++ )
       
   128         {
       
   129         TUint32 refContactUid = ContactViewUidL( services[i] );
       
   130         
       
   131         if ( TUid::Uid( refContactUid ) == 
       
   132              TUid::Uid( KIMCONTACTSEXTNIMPLEMENTATIONUID ) 
       
   133              || TUid::Uid( refContactUid ) == 
       
   134              TUid::Uid( 0x20007B6D ) )
       
   135             {
       
   136             TRACE( " found serviceid: (%d)", services[ i ] );
       
   137 
       
   138             aServiceIds.Append( services[ i ] );                
       
   139 
       
   140             TRACE("service append ok" ); 
       
   141 
       
   142             }
       
   143         }
       
   144     CleanupStack::PopAndDestroy( &services );
       
   145     
       
   146     }
       
   147 
       
   148 // ---------------------------------------------------------------------------
       
   149 // CVIMPSTEngineServiceTableFetcher::GetContactStoreIdL()
       
   150 // ---------------------------------------------------------------------------
       
   151 //
       
   152 void CVIMPSTEngineServiceTableFetcher::GetContactStoreIdL( 
       
   153     TUint32 aServiceId, TDes& aContactStoreId )
       
   154     {
       
   155 	TRACER_AUTO;
       
   156     
       
   157     TRACE( "ServiceId: %d", aServiceId );
       
   158         
       
   159     CSPProperty* property = CSPProperty::NewLC();
       
   160     TInt err = iSettings->FindPropertyL( aServiceId,
       
   161                                 EPropertyContactStoreId,      
       
   162                                 *property );    
       
   163 	if (KErrNone == err)
       
   164 		{	
       
   165 	    err = property->GetValue( aContactStoreId );
       
   166 	    
       
   167 		}
       
   168 
       
   169     CleanupStack::PopAndDestroy( property );
       
   170     
       
   171     TRACE( "StoreId: %S", &aContactStoreId );     
       
   172     
       
   173  	
       
   174     }   
       
   175 
       
   176     
       
   177 
       
   178 // ---------------------------------------------------------------------------
       
   179 // CVIMPSTEngineServiceTableFetcher::GetBrandIdL()
       
   180 // ---------------------------------------------------------------------------
       
   181 //
       
   182 void CVIMPSTEngineServiceTableFetcher::GetBrandIdL( 
       
   183     TUint32 aServiceId, TDes8& aBrandId )
       
   184     {
       
   185 	TRACER_AUTO;
       
   186     
       
   187     TRACE( "ServiceId: %d", aServiceId );
       
   188        
       
   189     HBufC* ret = HBufC::NewLC( KVIMPSTUISPSMaxPropertyLength );    
       
   190     TPtr retPtr( ret->Des() );
       
   191     
       
   192     CSPProperty* property = CSPProperty::NewLC();
       
   193     TInt err = iSettings->FindPropertyL( aServiceId,
       
   194                                 EPropertyBrandId,
       
   195                                 *property );    
       
   196     if ( KErrNone == err )
       
   197         {
       
   198         err = property->GetValue( retPtr );
       
   199         if ( KErrNone == err )
       
   200 	        {
       
   201 	        aBrandId.Copy( retPtr );
       
   202 	        }
       
   203         }
       
   204     CleanupStack::PopAndDestroy( property );        
       
   205     CleanupStack::PopAndDestroy( ret );        
       
   206     
       
   207     TRACE( "BrandId: %S", &aBrandId ); 
       
   208     
       
   209     }    
       
   210 
       
   211 
       
   212 // ---------------------------------------------------------------------------
       
   213 // CVIMPSTEngineServiceTableFetcher::FindPropertyL()
       
   214 // ---------------------------------------------------------------------------
       
   215 //
       
   216 TInt CVIMPSTEngineServiceTableFetcher::FindPropertyL( TUint32 aServiceId,
       
   217 	                                TServicePropertyName aPropertyName )
       
   218 	{
       
   219 	TRACER_AUTO;
       
   220     
       
   221 	 TRACE( "ServiceId: %d Property: %d", aServiceId, aPropertyName );
       
   222        
       
   223 	CSPProperty* property = CSPProperty::NewLC();
       
   224     TInt result = iSettings->FindPropertyL( aServiceId,
       
   225                                 aPropertyName,
       
   226                                 *property );		
       
   227 	CleanupStack::PopAndDestroy( property );
       
   228 	
       
   229 	TRACE(" Result: %d", result );
       
   230     								
       
   231        
       
   232 	return result;
       
   233 	}
       
   234 
       
   235 
       
   236 
       
   237 
       
   238 // ---------------------------------------------------------------------------
       
   239 // CVIMPSTEngineServiceTableFetcher::PropertyBrandVersionL()
       
   240 // ---------------------------------------------------------------------------
       
   241 //
       
   242 TInt CVIMPSTEngineServiceTableFetcher::PropertyBrandVersionL( 
       
   243     TUint32 aServiceId ) 
       
   244     {
       
   245 	TRACER_AUTO;
       
   246     
       
   247 	TRACE( "ServiceId: %d", aServiceId );
       
   248        
       
   249     TInt brandVersion = KErrNotFound; // default value
       
   250     CSPProperty* property = CSPProperty::NewLC();
       
   251     TInt err = iSettings->FindPropertyL( aServiceId,
       
   252                                 EPropertyBrandVersion,
       
   253                                 *property );    
       
   254     if ( KErrNone == err )
       
   255         {
       
   256         err = property->GetValue( brandVersion );
       
   257         }
       
   258         
       
   259     CleanupStack::PopAndDestroy( property );
       
   260     
       
   261     TRACE( "version: %d", brandVersion );
       
   262     
       
   263     return brandVersion;
       
   264     }
       
   265 
       
   266 // ---------------------------------------------------------------------------
       
   267 // CVIMPSTEngineServiceTableFetcher::PropertyBrandLanguageL()
       
   268 // ---------------------------------------------------------------------------
       
   269 //
       
   270 TLanguage CVIMPSTEngineServiceTableFetcher::PropertyBrandLanguageL( 
       
   271     TUint32 aServiceId ) 
       
   272     {
       
   273 	TRACER_AUTO;
       
   274     
       
   275 	 TRACE( " ServiceId: %d", aServiceId );
       
   276     
       
   277     // ELangInternationalEnglish is selected as Default Brand Language Id.
       
   278     TInt brandLanguage = ELangInternationalEnglish;    
       
   279     CSPProperty* property = CSPProperty::NewLC();
       
   280     TInt err = iSettings->FindPropertyL( aServiceId,
       
   281                                 EPropertyBrandLanguage,
       
   282                                 *property );    
       
   283     if ( KErrNone == err )
       
   284         {
       
   285         err = property->GetValue( brandLanguage );
       
   286         }
       
   287     CleanupStack::PopAndDestroy( property );
       
   288 
       
   289     TRACE( "brandLanguage: (%d) ", brandLanguage );
       
   290 	
       
   291        
       
   292     return ((TLanguage) (brandLanguage) );
       
   293     }
       
   294 
       
   295 
       
   296 // ---------------------------------------------------------------------------
       
   297 // CVIMPSTEngineServiceTableFetcher::ContactViewUidL()
       
   298 // ---------------------------------------------------------------------------
       
   299 //
       
   300 TUint32 CVIMPSTEngineServiceTableFetcher::ContactViewUidL( 
       
   301     TUint32 aServiceId )
       
   302     {
       
   303 	TRACER_AUTO;
       
   304     
       
   305 	TRACE( "ServiceId: %d", aServiceId );
       
   306         
       
   307     TInt contactViewUid = KErrNotFound;
       
   308     CSPProperty* property = CSPProperty::NewLC();
       
   309     TInt err = iSettings->FindPropertyL( aServiceId,
       
   310                                 EPropertyContactViewPluginId,
       
   311                                 *property );    
       
   312     if ( KErrNone == err )
       
   313         {
       
   314         property->GetValue( contactViewUid );
       
   315         }
       
   316     CleanupStack::PopAndDestroy( property );      
       
   317           
       
   318     TRACE( "ContactViewUid: %d", contactViewUid ); 
       
   319     
       
   320        
       
   321     return contactViewUid;
       
   322     }    
       
   323 
       
   324 // ---------------------------------------------------------------------------
       
   325 // CVIMPSTEngineServiceTableFetcher::GetServiceNameL()
       
   326 // ---------------------------------------------------------------------------
       
   327 //
       
   328 void CVIMPSTEngineServiceTableFetcher::GetServiceNameL( 
       
   329     TUint32 aServiceId, TDes& aServiceName )
       
   330     {
       
   331 	TRACER_AUTO;
       
   332     
       
   333 	TRACE( "ServiceId: %d", aServiceId );
       
   334     
       
   335     CSPEntry* entry = CSPEntry::NewLC();
       
   336     TInt err = iSettings->FindEntryL( aServiceId, *entry ) ;
       
   337     if ( !err )
       
   338         {
       
   339         aServiceName = entry->GetServiceName();
       
   340         }
       
   341     
       
   342     CleanupStack::PopAndDestroy( entry );    
       
   343     
       
   344     TRACE("ServiceName: %S", &aServiceName );
       
   345     
       
   346     }
       
   347 
       
   348 // ---------------------------------------------------------------------------
       
   349 // CVIMPSTEngineServiceTableFetcher::DoHandleNotifyChangeL()
       
   350 // ---------------------------------------------------------------------------
       
   351 //
       
   352 void CVIMPSTEngineServiceTableFetcher::DoHandleNotifyChangeL(
       
   353     		TServiceId aServiceId, TBool aNewService, MVIMPSTEngine* aEngine )
       
   354     {
       
   355 	TRACER_AUTO;
       
   356 	TRACE( "ServiceId:%d", aServiceId );
       
   357     TBool serviceFound( EFalse ); 
       
   358     if(!aNewService)
       
   359         {
       
   360         RArray<TUint32> serviceIdArray;
       
   361         CleanupClosePushL( serviceIdArray ); 
       
   362         RArray<TServiceId> services;
       
   363         CleanupClosePushL( services );    
       
   364         GetMasterServiceIdsL(serviceIdArray);
       
   365         iSettings->FindServiceIdsL(services );
       
   366         const TInt serviceCount = services.Count();
       
   367         for ( TInt index = 0 ; index < serviceCount ; index++ )
       
   368             {
       
   369             if ( services[index] == aServiceId )
       
   370                 {
       
   371             TRACE( "Service (%d) found", aServiceId );
       
   372                 serviceFound = ETrue;
       
   373                 }
       
   374             }
       
   375         CleanupStack::PopAndDestroy( &services );
       
   376         CleanupStack::PopAndDestroy( &serviceIdArray ); 
       
   377         }
       
   378     if ( aNewService || !serviceFound )  // new service or MECO service not found
       
   379         {
       
   380         // check if any other services other then MECO exists before
       
   381         // shutting down the phonebook. there can be services which does't use
       
   382         // MECO UI ( example OVI - does't use MECO UI it uses own UI )
       
   383         // check with the property EPropertyContactViewPluginId in the service 
       
   384         // this will the meco UID in case of MECO Service.
       
   385         //this is a temperory hack as phonebook doesnot refresh once we delete or add any service
       
   386         //once phonebook gives a permanant fix ,remove the below code
       
   387         if(( TUid::Uid(ContactViewUidL( aServiceId )) == TUid::Uid( KIMCONTACTSEXTNIMPLEMENTATIONUID )) || aEngine ) 
       
   388             {                                                               // only MecoServicetabs shutdown phonebook.
       
   389             TRACE( "removing service" );    //or while deleting service from settings
       
   390             CompressViewIdsL();                                             //check whether engine exists,which is true for only MecoServicetabs.
       
   391             if(aEngine)
       
   392                 {
       
   393                 aEngine->DeleteDataBaseL();
       
   394                 }
       
   395             ShutDownPhonebookL();
       
   396             }
       
   397         TRACE( "service removed" );
       
   398         }
       
   399 
       
   400     }
       
   401 // ---------------------------------------------------------------------------
       
   402 // CVIMPSTEngineServiceTableFetcher::CompressViewIdsL()
       
   403 // ---------------------------------------------------------------------------
       
   404 //
       
   405 TBool CVIMPSTEngineServiceTableFetcher::CompressViewIdsL( 
       
   406     TServiceId aServiceId )
       
   407     {
       
   408 	TRACER_AUTO;
       
   409 	TRACE(" ServiceId: %d", aServiceId );
       
   410     
       
   411     TBool ret = EFalse;
       
   412     // Compress view id's in service table
       
   413     RArray<TServiceId> services;
       
   414     CleanupClosePushL( services );
       
   415     iSettings->FindServiceIdsL( services );
       
   416     TUint32 serviceId = 0;
       
   417     const TInt serviceCount = services.Count();
       
   418     for ( TInt i( 0 ); i < serviceCount; i++ )
       
   419         {
       
   420         serviceId = services[i];
       
   421         TUint32 refContactUid = ContactViewUidL( serviceId );
       
   422         if ( TUid::Uid( refContactUid ) == 
       
   423         TUid::Uid( KIMCONTACTSEXTNIMPLEMENTATIONUID ) )
       
   424             {
       
   425 
       
   426         TRACE( "  -> compressing view ids, service: %d", serviceId );
       
   427         TRACE( "  -> compressing view ids, view id: (%d)", ( KVIMPSTTabbedViewIdBase+ serviceId ) );
       
   428 
       
   429             WriteTabViewIdToServiceTableL( services[ i ], ( KVIMPSTTabbedViewIdBase + serviceId ) );
       
   430         
       
   431             ret = ETrue;
       
   432             }
       
   433         }
       
   434     CleanupStack::PopAndDestroy( &services );
       
   435     
       
   436     TRACE( "CompressViewIdsL returns: (%d)", ret );
       
   437     
       
   438     return ret;
       
   439     }
       
   440 
       
   441 
       
   442 // ---------------------------------------------------------------------------
       
   443 // CVIMPSTEngineServiceTableFetcher::WriteTabViewIdToServiceTableL()
       
   444 // ---------------------------------------------------------------------------
       
   445 //
       
   446 void CVIMPSTEngineServiceTableFetcher::WriteTabViewIdToServiceTableL( 
       
   447     TUint32 aServiceId, TUint aViewId ) 
       
   448     {
       
   449 	TRACER_AUTO;
       
   450     
       
   451     TRACE( "aServiceId: %d, aViewId: %d ",aServiceId, aViewId );
       
   452     
       
   453     // Write specific view id to service table
       
   454     // No need to check for error beacuse 
       
   455     // we need to add/update the property
       
   456 
       
   457     
       
   458     CSPProperty* property = CSPProperty::NewLC();
       
   459     iSettings->FindPropertyL( aServiceId,
       
   460                                 EPropertyContactViewId,
       
   461                                 *property );    
       
   462     
       
   463     TRACE( " OK");
       
   464     
       
   465     TInt err = property->SetName( EPropertyContactViewId );
       
   466     
       
   467     TRACE( " ERR1=%d", err );
       
   468     
       
   469     TInt err2 = property->SetValue( aViewId );
       
   470     
       
   471     if ( !err && !err2 )
       
   472         {
       
   473         iSettings->AddOrUpdatePropertyL( aServiceId, *property );
       
   474         }
       
   475     
       
   476     TRACE(" ERR2=%d", err2 );
       
   477         
       
   478     
       
   479     CleanupStack::PopAndDestroy( property );  
       
   480                    
       
   481     }
       
   482 
       
   483 // ---------------------------------------------------------------------------
       
   484 // CVIMPSTEngineServiceTableFetcher::ShutDownPhonebookL()
       
   485 // ---------------------------------------------------------------------------
       
   486 //
       
   487 void CVIMPSTEngineServiceTableFetcher::ShutDownPhonebookL()
       
   488     {
       
   489 	TRACER_AUTO;
       
   490     
       
   491     // Kills phonebook if running
       
   492     RWsSession ws;
       
   493     User::LeaveIfError( ws.Connect() );
       
   494     CleanupClosePushL( ws );
       
   495     TApaTaskList list( ws );
       
   496     TUid uid = { KPbk2UID3 };
       
   497     TApaTask task( list.FindApp( uid ) );
       
   498     if ( task.Exists() )
       
   499         {
       
   500         task.EndTask();
       
   501         }
       
   502     CleanupStack::PopAndDestroy( &ws ); // ws
       
   503     
       
   504     }
       
   505     
       
   506 // ---------------------------------------------------------------------------
       
   507 // CVIMPSTEngineServiceTableFetcher::XimpAdapterUidL()
       
   508 // ---------------------------------------------------------------------------
       
   509 //
       
   510 TInt CVIMPSTEngineServiceTableFetcher::XimpAdapterUidL( 
       
   511     TUint32 aServiceId )
       
   512     {
       
   513 	TRACER_AUTO;
       
   514     
       
   515 	TRACE( "ServiceId: %d", aServiceId );
       
   516     										
       
   517     TInt ret = KErrNotFound;
       
   518     CSPProperty* property = CSPProperty::NewLC();
       
   519     
       
   520     TInt err = iSettings->FindPropertyL( aServiceId,
       
   521                                 EPropertyPCSPluginId,
       
   522                                 *property );    
       
   523     if (KErrNone == err)
       
   524 	    {
       
   525 	    property->GetValue( ret );
       
   526 	    }
       
   527     
       
   528     CleanupStack::PopAndDestroy( property );
       
   529     
       
   530     
       
   531     TRACE( "XimpAdapterUid: %d ",ret );
       
   532     										
       
   533     return ret;
       
   534     }        
       
   535     
       
   536 // ---------------------------------------------------------------------------
       
   537 // CVIMPSTEngineServiceTableFetcher::PresenceRequestStatusL()
       
   538 // ---------------------------------------------------------------------------
       
   539 //
       
   540 TVIMPSTEnums::TVIMPSTPresenceRequestStatus 
       
   541 CVIMPSTEngineServiceTableFetcher::PresenceRequestStatusL( 
       
   542         TUint32 aServiceId )    
       
   543     {
       
   544 	TRACER_AUTO;
       
   545     
       
   546 	 TRACE( " ServiceId: %d", aServiceId );
       
   547     
       
   548     TVIMPSTEnums::TVIMPSTPresenceRequestStatus ret = 
       
   549     			TVIMPSTEnums::ESVCEPresenceRequestStatusUnKnown;
       
   550             
       
   551     CSPProperty* property = CSPProperty::NewLC();
       
   552     
       
   553     TInt err = iSettings->FindPropertyL( aServiceId,
       
   554            ESubPropertyPresenceRequestPreference,
       
   555                                 *property );    
       
   556     if ( KErrNone == err )
       
   557         {
       
   558         TOnOff value = EOff;        
       
   559         err = property->GetValue( value );
       
   560         if ( !err )
       
   561             {
       
   562             if ( EOn == value )
       
   563                 {
       
   564                 ret = TVIMPSTEnums::ESVCEPresenceRequestStatusAutoAccept;
       
   565                 }
       
   566 			else
       
   567 				{
       
   568 				ret = TVIMPSTEnums::ESVCEPresenceRequestStatusAlwaysAsk;
       
   569 				}                
       
   570             }
       
   571         }
       
   572     
       
   573     CleanupStack::PopAndDestroy( property );
       
   574     
       
   575     TRACE("PresenceRequestStatus: %d ", ret );
       
   576     										
       
   577     return ret;        
       
   578     }
       
   579   
       
   580 // ---------------------------------------------------------------------------
       
   581 // CVIMPSTEngineServiceTableFetcher::GetDefaultDomainNameL()
       
   582 // ---------------------------------------------------------------------------
       
   583 //
       
   584 void CVIMPSTEngineServiceTableFetcher::GetDefaultDomainNameL( 
       
   585     TUint32 aServiceId, TDes& aDefaultDomainName )
       
   586     {
       
   587 	TRACER_AUTO;
       
   588     
       
   589 	
       
   590 	 TRACE( "ServiceId: %d", aServiceId );
       
   591         
       
   592     CSPProperty* property = CSPProperty::NewLC();
       
   593     TInt err = iSettings->FindPropertyL( aServiceId,
       
   594                                 ESubPropertyPresenceAddrScheme,      
       
   595                                 *property );    
       
   596 	if (KErrNone == err)
       
   597 		{	
       
   598 	    property->GetValue( aDefaultDomainName );	    
       
   599 		}
       
   600 
       
   601     CleanupStack::PopAndDestroy( property );
       
   602     
       
   603     TRACE( " StoreId: %S", &aDefaultDomainName );
       
   604     
       
   605  	
       
   606     } 
       
   607 
       
   608    
       
   609 // End of file