uiservicetab/vimpstengine/src/cvimpstengineservicetablefetcher.cpp
branchRCL_3
changeset 28 3104fc151679
parent 27 2b7283837edb
child 29 9a48e301e94b
--- a/uiservicetab/vimpstengine/src/cvimpstengineservicetablefetcher.cpp	Thu Aug 19 09:41:53 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,609 +0,0 @@
-/*
-* Copyright (c) 2008 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Handles the use of Service Provider Settings API
-*
-*/
-
-
-// INCLUDE FILES
-#include <spsettings.h>
-#include <spentry.h>
-#include <spproperty.h>
-
-
-// Phonebook shutter
-#include <apgtask.h>
-#include <w32std.h>
-#include <Pbk2UID.h>
-#include <apgcli.h>
-#include <apaid.h>
-
-#include "cvimpstengineservicetablefetcher.h"
-#include "cvimpstenginecchhandler.h"
-
-#include "vimpstextentionuiuid.h"
-#include "tvimpstconsts.h"
-#include "mvimpstenginefactory.h"
-#include "cvimpstenginefactory.h"
-#include "mvimpststorageserviceview.h"
-#include "cvimpststoragemanagerfactory.h"
-#include "uiservicetabtracer.h"
-
-
-
-// ================= MEMBER FUNCTIONS =======================
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::CVIMPSTEngineServiceTableFetcher()
-// ---------------------------------------------------------------------------
-//
-CVIMPSTEngineServiceTableFetcher::CVIMPSTEngineServiceTableFetcher()
-    {
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::ConstructL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::ConstructL()
-    {
-	TRACER_AUTO;
-    iSettings = CSPSettings::NewL();
-    CompressViewIdsL();
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::NewL()
-// ---------------------------------------------------------------------------
-//
-CVIMPSTEngineServiceTableFetcher* 
-    CVIMPSTEngineServiceTableFetcher::NewL( )
-    {
-	TRACER_AUTO;
-    
-    CVIMPSTEngineServiceTableFetcher* self = NewLC();
-    CleanupStack::Pop(self);
-    
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::NewLC()
-// ---------------------------------------------------------------------------
-//
-CVIMPSTEngineServiceTableFetcher* 
-    CVIMPSTEngineServiceTableFetcher::NewLC()
-    {
-	TRACER_AUTO;
-    
-    CVIMPSTEngineServiceTableFetcher* self =
-        new (ELeave) CVIMPSTEngineServiceTableFetcher( );
-    CleanupStack::PushL(self);
-    self->ConstructL();
-    
-    return self;
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::
-//      ~CVIMPSTEngineServiceTableFetcher()
-// ---------------------------------------------------------------------------
-//
-CVIMPSTEngineServiceTableFetcher::~CVIMPSTEngineServiceTableFetcher()
-    {
-	TRACER_AUTO;
-    
-    
-    delete iSettings;	
-    iSettings = NULL;
-    
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::GetMasterServiceIdsL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::GetMasterServiceIdsL( 
-    RArray<TUint32>& aServiceIds )
-    {
-	TRACER_AUTO;
-    
-    RArray<TServiceId> services;
-    CleanupClosePushL( services );
-    iSettings->FindServiceIdsL( services );
-	
-	const TInt serviceCount = services.Count();
-    for ( TInt i( 0 ); i < serviceCount; i++ )
-        {
-        TUint32 refContactUid = ContactViewUidL( services[i] );
-        
-        if ( TUid::Uid( refContactUid ) == 
-             TUid::Uid( KIMCONTACTSEXTNIMPLEMENTATIONUID ) 
-             || TUid::Uid( refContactUid ) == 
-             TUid::Uid( 0x20007B6D ) )
-            {
-            TRACE( " found serviceid: (%d)", services[ i ] );
-
-            aServiceIds.Append( services[ i ] );                
-
-            TRACE("service append ok" ); 
-
-            }
-        }
-    CleanupStack::PopAndDestroy( &services );
-    
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::GetContactStoreIdL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::GetContactStoreIdL( 
-    TUint32 aServiceId, TDes& aContactStoreId )
-    {
-	TRACER_AUTO;
-    
-    TRACE( "ServiceId: %d", aServiceId );
-        
-    CSPProperty* property = CSPProperty::NewLC();
-    TInt err = iSettings->FindPropertyL( aServiceId,
-                                EPropertyContactStoreId,      
-                                *property );    
-	if (KErrNone == err)
-		{	
-	    err = property->GetValue( aContactStoreId );
-	    
-		}
-
-    CleanupStack::PopAndDestroy( property );
-    
-    TRACE( "StoreId: %S", &aContactStoreId );     
-    
- 	
-    }   
-
-    
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::GetBrandIdL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::GetBrandIdL( 
-    TUint32 aServiceId, TDes8& aBrandId )
-    {
-	TRACER_AUTO;
-    
-    TRACE( "ServiceId: %d", aServiceId );
-       
-    HBufC* ret = HBufC::NewLC( KVIMPSTUISPSMaxPropertyLength );    
-    TPtr retPtr( ret->Des() );
-    
-    CSPProperty* property = CSPProperty::NewLC();
-    TInt err = iSettings->FindPropertyL( aServiceId,
-                                EPropertyBrandId,
-                                *property );    
-    if ( KErrNone == err )
-        {
-        err = property->GetValue( retPtr );
-        if ( KErrNone == err )
-	        {
-	        aBrandId.Copy( retPtr );
-	        }
-        }
-    CleanupStack::PopAndDestroy( property );        
-    CleanupStack::PopAndDestroy( ret );        
-    
-    TRACE( "BrandId: %S", &aBrandId ); 
-    
-    }    
-
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::FindPropertyL()
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTEngineServiceTableFetcher::FindPropertyL( TUint32 aServiceId,
-	                                TServicePropertyName aPropertyName )
-	{
-	TRACER_AUTO;
-    
-	 TRACE( "ServiceId: %d Property: %d", aServiceId, aPropertyName );
-       
-	CSPProperty* property = CSPProperty::NewLC();
-    TInt result = iSettings->FindPropertyL( aServiceId,
-                                aPropertyName,
-                                *property );		
-	CleanupStack::PopAndDestroy( property );
-	
-	TRACE(" Result: %d", result );
-    								
-       
-	return result;
-	}
-
-
-
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::PropertyBrandVersionL()
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTEngineServiceTableFetcher::PropertyBrandVersionL( 
-    TUint32 aServiceId ) 
-    {
-	TRACER_AUTO;
-    
-	TRACE( "ServiceId: %d", aServiceId );
-       
-    TInt brandVersion = KErrNotFound; // default value
-    CSPProperty* property = CSPProperty::NewLC();
-    TInt err = iSettings->FindPropertyL( aServiceId,
-                                EPropertyBrandVersion,
-                                *property );    
-    if ( KErrNone == err )
-        {
-        err = property->GetValue( brandVersion );
-        }
-        
-    CleanupStack::PopAndDestroy( property );
-    
-    TRACE( "version: %d", brandVersion );
-    
-    return brandVersion;
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::PropertyBrandLanguageL()
-// ---------------------------------------------------------------------------
-//
-TLanguage CVIMPSTEngineServiceTableFetcher::PropertyBrandLanguageL( 
-    TUint32 aServiceId ) 
-    {
-	TRACER_AUTO;
-    
-	 TRACE( " ServiceId: %d", aServiceId );
-    
-    // ELangInternationalEnglish is selected as Default Brand Language Id.
-    TInt brandLanguage = ELangInternationalEnglish;    
-    CSPProperty* property = CSPProperty::NewLC();
-    TInt err = iSettings->FindPropertyL( aServiceId,
-                                EPropertyBrandLanguage,
-                                *property );    
-    if ( KErrNone == err )
-        {
-        err = property->GetValue( brandLanguage );
-        }
-    CleanupStack::PopAndDestroy( property );
-
-    TRACE( "brandLanguage: (%d) ", brandLanguage );
-	
-       
-    return ((TLanguage) (brandLanguage) );
-    }
-
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::ContactViewUidL()
-// ---------------------------------------------------------------------------
-//
-TUint32 CVIMPSTEngineServiceTableFetcher::ContactViewUidL( 
-    TUint32 aServiceId )
-    {
-	TRACER_AUTO;
-    
-	TRACE( "ServiceId: %d", aServiceId );
-        
-    TInt contactViewUid = KErrNotFound;
-    CSPProperty* property = CSPProperty::NewLC();
-    TInt err = iSettings->FindPropertyL( aServiceId,
-                                EPropertyContactViewPluginId,
-                                *property );    
-    if ( KErrNone == err )
-        {
-        property->GetValue( contactViewUid );
-        }
-    CleanupStack::PopAndDestroy( property );      
-          
-    TRACE( "ContactViewUid: %d", contactViewUid ); 
-    
-       
-    return contactViewUid;
-    }    
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::GetServiceNameL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::GetServiceNameL( 
-    TUint32 aServiceId, TDes& aServiceName )
-    {
-	TRACER_AUTO;
-    
-	TRACE( "ServiceId: %d", aServiceId );
-    
-    CSPEntry* entry = CSPEntry::NewLC();
-    TInt err = iSettings->FindEntryL( aServiceId, *entry ) ;
-    if ( !err )
-        {
-        aServiceName = entry->GetServiceName();
-        }
-    
-    CleanupStack::PopAndDestroy( entry );    
-    
-    TRACE("ServiceName: %S", &aServiceName );
-    
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::DoHandleNotifyChangeL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::DoHandleNotifyChangeL(
-    		TServiceId aServiceId, TBool aNewService, MVIMPSTEngine* aEngine )
-    {
-	TRACER_AUTO;
-	TRACE( "ServiceId:%d", aServiceId );
-    TBool serviceFound( EFalse ); 
-    if(!aNewService)
-        {
-        RArray<TUint32> serviceIdArray;
-        CleanupClosePushL( serviceIdArray ); 
-        RArray<TServiceId> services;
-        CleanupClosePushL( services );    
-        GetMasterServiceIdsL(serviceIdArray);
-        iSettings->FindServiceIdsL(services );
-        const TInt serviceCount = services.Count();
-        for ( TInt index = 0 ; index < serviceCount ; index++ )
-            {
-            if ( services[index] == aServiceId )
-                {
-            TRACE( "Service (%d) found", aServiceId );
-                serviceFound = ETrue;
-                }
-            }
-        CleanupStack::PopAndDestroy( &services );
-        CleanupStack::PopAndDestroy( &serviceIdArray ); 
-        }
-    if ( aNewService || !serviceFound )  // new service or MECO service not found
-        {
-        // check if any other services other then MECO exists before
-        // shutting down the phonebook. there can be services which does't use
-        // MECO UI ( example OVI - does't use MECO UI it uses own UI )
-        // check with the property EPropertyContactViewPluginId in the service 
-        // this will the meco UID in case of MECO Service.
-        //this is a temperory hack as phonebook doesnot refresh once we delete or add any service
-        //once phonebook gives a permanant fix ,remove the below code
-        if(( TUid::Uid(ContactViewUidL( aServiceId )) == TUid::Uid( KIMCONTACTSEXTNIMPLEMENTATIONUID )) || aEngine ) 
-            {                                                               // only MecoServicetabs shutdown phonebook.
-            TRACE( "removing service" );    //or while deleting service from settings
-            CompressViewIdsL();                                             //check whether engine exists,which is true for only MecoServicetabs.
-            if(aEngine)
-                {
-                aEngine->DeleteDataBaseL();
-                }
-            ShutDownPhonebookL();
-            }
-        TRACE( "service removed" );
-        }
-
-    }
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::CompressViewIdsL()
-// ---------------------------------------------------------------------------
-//
-TBool CVIMPSTEngineServiceTableFetcher::CompressViewIdsL( 
-    TServiceId aServiceId )
-    {
-	TRACER_AUTO;
-	TRACE(" ServiceId: %d", aServiceId );
-    
-    TBool ret = EFalse;
-    // Compress view id's in service table
-    RArray<TServiceId> services;
-    CleanupClosePushL( services );
-    iSettings->FindServiceIdsL( services );
-    TUint32 serviceId = 0;
-    const TInt serviceCount = services.Count();
-    for ( TInt i( 0 ); i < serviceCount; i++ )
-        {
-        serviceId = services[i];
-        TUint32 refContactUid = ContactViewUidL( serviceId );
-        if ( TUid::Uid( refContactUid ) == 
-        TUid::Uid( KIMCONTACTSEXTNIMPLEMENTATIONUID ) )
-            {
-
-        TRACE( "  -> compressing view ids, service: %d", serviceId );
-        TRACE( "  -> compressing view ids, view id: (%d)", ( KVIMPSTTabbedViewIdBase+ serviceId ) );
-
-            WriteTabViewIdToServiceTableL( services[ i ], ( KVIMPSTTabbedViewIdBase + serviceId ) );
-        
-            ret = ETrue;
-            }
-        }
-    CleanupStack::PopAndDestroy( &services );
-    
-    TRACE( "CompressViewIdsL returns: (%d)", ret );
-    
-    return ret;
-    }
-
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::WriteTabViewIdToServiceTableL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::WriteTabViewIdToServiceTableL( 
-    TUint32 aServiceId, TUint aViewId ) 
-    {
-	TRACER_AUTO;
-    
-    TRACE( "aServiceId: %d, aViewId: %d ",aServiceId, aViewId );
-    
-    // Write specific view id to service table
-    // No need to check for error beacuse 
-    // we need to add/update the property
-
-    
-    CSPProperty* property = CSPProperty::NewLC();
-    iSettings->FindPropertyL( aServiceId,
-                                EPropertyContactViewId,
-                                *property );    
-    
-    TRACE( " OK");
-    
-    TInt err = property->SetName( EPropertyContactViewId );
-    
-    TRACE( " ERR1=%d", err );
-    
-    TInt err2 = property->SetValue( aViewId );
-    
-    if ( !err && !err2 )
-        {
-        iSettings->AddOrUpdatePropertyL( aServiceId, *property );
-        }
-    
-    TRACE(" ERR2=%d", err2 );
-        
-    
-    CleanupStack::PopAndDestroy( property );  
-                   
-    }
-
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::ShutDownPhonebookL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::ShutDownPhonebookL()
-    {
-	TRACER_AUTO;
-    
-    // Kills phonebook if running
-    RWsSession ws;
-    User::LeaveIfError( ws.Connect() );
-    CleanupClosePushL( ws );
-    TApaTaskList list( ws );
-    TUid uid = { KPbk2UID3 };
-    TApaTask task( list.FindApp( uid ) );
-    if ( task.Exists() )
-        {
-        task.EndTask();
-        }
-    CleanupStack::PopAndDestroy( &ws ); // ws
-    
-    }
-    
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::XimpAdapterUidL()
-// ---------------------------------------------------------------------------
-//
-TInt CVIMPSTEngineServiceTableFetcher::XimpAdapterUidL( 
-    TUint32 aServiceId )
-    {
-	TRACER_AUTO;
-    
-	TRACE( "ServiceId: %d", aServiceId );
-    										
-    TInt ret = KErrNotFound;
-    CSPProperty* property = CSPProperty::NewLC();
-    
-    TInt err = iSettings->FindPropertyL( aServiceId,
-                                EPropertyPCSPluginId,
-                                *property );    
-    if (KErrNone == err)
-	    {
-	    property->GetValue( ret );
-	    }
-    
-    CleanupStack::PopAndDestroy( property );
-    
-    
-    TRACE( "XimpAdapterUid: %d ",ret );
-    										
-    return ret;
-    }        
-    
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::PresenceRequestStatusL()
-// ---------------------------------------------------------------------------
-//
-TVIMPSTEnums::TVIMPSTPresenceRequestStatus 
-CVIMPSTEngineServiceTableFetcher::PresenceRequestStatusL( 
-        TUint32 aServiceId )    
-    {
-	TRACER_AUTO;
-    
-	 TRACE( " ServiceId: %d", aServiceId );
-    
-    TVIMPSTEnums::TVIMPSTPresenceRequestStatus ret = 
-    			TVIMPSTEnums::ESVCEPresenceRequestStatusUnKnown;
-            
-    CSPProperty* property = CSPProperty::NewLC();
-    
-    TInt err = iSettings->FindPropertyL( aServiceId,
-           ESubPropertyPresenceRequestPreference,
-                                *property );    
-    if ( KErrNone == err )
-        {
-        TOnOff value = EOff;        
-        err = property->GetValue( value );
-        if ( !err )
-            {
-            if ( EOn == value )
-                {
-                ret = TVIMPSTEnums::ESVCEPresenceRequestStatusAutoAccept;
-                }
-			else
-				{
-				ret = TVIMPSTEnums::ESVCEPresenceRequestStatusAlwaysAsk;
-				}                
-            }
-        }
-    
-    CleanupStack::PopAndDestroy( property );
-    
-    TRACE("PresenceRequestStatus: %d ", ret );
-    										
-    return ret;        
-    }
-  
-// ---------------------------------------------------------------------------
-// CVIMPSTEngineServiceTableFetcher::GetDefaultDomainNameL()
-// ---------------------------------------------------------------------------
-//
-void CVIMPSTEngineServiceTableFetcher::GetDefaultDomainNameL( 
-    TUint32 aServiceId, TDes& aDefaultDomainName )
-    {
-	TRACER_AUTO;
-    
-	
-	 TRACE( "ServiceId: %d", aServiceId );
-        
-    CSPProperty* property = CSPProperty::NewLC();
-    TInt err = iSettings->FindPropertyL( aServiceId,
-                                ESubPropertyPresenceAddrScheme,      
-                                *property );    
-	if (KErrNone == err)
-		{	
-	    property->GetValue( aDefaultDomainName );	    
-		}
-
-    CleanupStack::PopAndDestroy( property );
-    
-    TRACE( " StoreId: %S", &aDefaultDomainName );
-    
- 	
-    } 
-
-   
-// End of file