diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpstui/src/cvimpstuiextensionfactory.cpp --- a/uiservicetab/vimpstui/src/cvimpstuiextensionfactory.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,363 +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: Extension factory for VIMPSTUi -* -*/ - - -// INCLUDE FILES -#include "cvimpstuiextensionfactory.h" - -// System includes -#include -#include -#include -#include -#include - -// Pbk2 -#include -#include - - -// xSP extension manager -#include -#include - - -#include "vimpstextentionuiuid.h" -#include - - -#include "cvimpstuiviewmanager.h" -#include "cvimpstuiextensionservice.h" - -#include "cvimpstenginefactory.h" -#include "cvimpstuitabbedview.h" -#include "cvimpstuisearchview.h" -#include "tvimpstconsts.h" -#include "cvimpstuiblockview.h" - -#include "uiservicetabtracer.h" -#include "cvimpstuimenuextension.h" - -// ================= MEMBER FUNCTIONS ======================= - -inline CVIMPSTUiExtensionFactory::CVIMPSTUiExtensionFactory() : - iCoeEnv( *CCoeEnv::Static() ) - { - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::ConstructL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiExtensionFactory::ConstructL() - { - - // Load the Resource File - TRACER_AUTO; - TFileName resPathWithoutDrive; - resPathWithoutDrive.Zero(); - resPathWithoutDrive.Append( KResourceDir() ); - resPathWithoutDrive.Append( KResourceFileName() ); - - TFileName path; - Dll::FileName(path); //get the location of the dll - - TDriveName drive( TParsePtrC( path ).Drive( ) ); // solve drive - - // leave to stack, LC method - HBufC* resourceFilePath = HBufC::NewLC( KMaxResourcePathLength ); - TPtr ptr( resourceFilePath->Des() ); - ptr.Append( resPathWithoutDrive ); // without drive - ptr.Insert( 0, drive ); // insert drive - - // NearestLanguageFile takes only TFileName - path.Zero(); - path.Append( *resourceFilePath ); - - if ( path.Length() != 0 ) - { - BaflUtils::NearestLanguageFile( iCoeEnv.FsSession(), path ); - } - - CleanupStack::PopAndDestroy(); - - iResourceOffset = iCoeEnv.AddResourceFileL(path); - - iEngineFactoryInstance = CVIMPSTEngineFactory::InstanceL(); - - iEngine = CVIMPSTUIViewManager::NewL( - KNullDesC(), *this ); - iMenuExtension = CVIMPSTUIMenuExtension::NewL(); - // Get's all sevices - CreateServicesL(); - - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::NewL -// -------------------------------------------------------------------------- -// -CVIMPSTUiExtensionFactory* CVIMPSTUiExtensionFactory::NewL() - { - TRACER_AUTO; - CVIMPSTUiExtensionFactory* self = new (ELeave) CVIMPSTUiExtensionFactory; - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - - return self; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::~CVIMPSTUiExtensionFactory -// -------------------------------------------------------------------------- -// -CVIMPSTUiExtensionFactory::~CVIMPSTUiExtensionFactory() - { - TRACER_AUTO; - delete iEngine; - - iCoeEnv.DeleteResourceFile( iResourceOffset ); - - //for deleting iEngineFactoryInstance - CVIMPSTEngineFactory::Release(); - - delete iMenuExtension; - - } - - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::CreateViewL -// -------------------------------------------------------------------------- -// -CxSPBaseView* CVIMPSTUiExtensionFactory::CreateViewL( TUid aViewId, CPbk2UIExtensionView& aView ) - { - TRACER_AUTO; - CxSPBaseView* view = NULL; - - TInt oldView; - TInt err = iMapper->GetOldView( KIMCONTACTSEXTNIMPLEMENTATIONUID, aViewId.iUid, oldView ); - - if( !err ) - { - - for ( TInt index = 0 ; - index < iEngine->ServiceCount() && !view ; - index++ ) - { - if ( iEngine->Service( index ).HasViewId( oldView ) ) - { - if ( IsTabbedId( oldView ) ) - { - view = iEngine->Service( index ).TabbedViewL( - *iMapper, - *iContactManager, - aView, - oldView, - aViewId, - iEngine->Service(index).ServiceEngine() ); - } - else if ( IsSearchId( oldView ) ) - { - view = iEngine->Service( index ).SearchViewL( - *iMapper, - *iContactManager, - aView, - oldView, - aViewId, - iEngine->Service(index).ServiceEngine() ); - } - else if(IsBlockeId( oldView )) - { - view = iEngine->Service( index ).BlockViewL( - *iMapper, - *iContactManager, - aView, - oldView, - iEngine->Service(index).ServiceEngine() ); - } - } - - } - } - - return view; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::RegisterViewMapper -// -------------------------------------------------------------------------- -// -void CVIMPSTUiExtensionFactory::RegisterViewMapper( MxSPViewMapper& aMapper ) - { - iMapper = &aMapper; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::ViewInfoResource -// -------------------------------------------------------------------------- -// -TInt CVIMPSTUiExtensionFactory::ViewInfoResource() const - { - TRACER_AUTO; - // Indicate KErrNotFound. This way static resources are not used but - // xSP Extension Manager queries data. Exception: If IM is not - // supported, indicate it via resource for simplicity - TInt ret = KErrNotFound; - - // add the FeatureManager checks for IM here - - // Check for any service - if ( !iEngine->ServiceCount() ) - { - ret = R_IM_CONTACTS_VIEW_INFO; - } - - return ret; - } - - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::Id -// -------------------------------------------------------------------------- -// -TUint32 CVIMPSTUiExtensionFactory::Id() const - { - return KIMCONTACTSEXTNIMPLEMENTATIONUID; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::Name() -// -------------------------------------------------------------------------- -// -const TDesC& CVIMPSTUiExtensionFactory::Name() const - { - _LIT(KNull, " "); - return KNull; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::RegisterContactManager -// -------------------------------------------------------------------------- -// -void CVIMPSTUiExtensionFactory::RegisterContactManager( MxSPContactManager& aManager ) - { - iContactManager = &aManager; - } - - - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::SetVPbkContactManager -// -------------------------------------------------------------------------- -// -void CVIMPSTUiExtensionFactory::SetVPbkContactManager( CVPbkContactManager& /*aVPbkContactManager*/ ) - { - } - -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::UpdateStorePropertiesL -// -------------------------------------------------------------------------- -// -void CVIMPSTUiExtensionFactory::UpdateStorePropertiesL( CPbk2StorePropertyArray& /*aPropertyArray*/ ) - { - } -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::ViewInfoCount -// -------------------------------------------------------------------------- -// -TInt CVIMPSTUiExtensionFactory::ViewInfoCount() const - { - return iEngine->ViewInfoCount(); - } -// -------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::ViewInfo -// -------------------------------------------------------------------------- -// -const MxSPViewInfo* CVIMPSTUiExtensionFactory::ViewInfo( TInt aIndex ) const - { - return iEngine->ViewInfo( aIndex ); - } - - -// --------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::CreateServicesL() -// --------------------------------------------------------------------------- -// -void CVIMPSTUiExtensionFactory::CreateServicesL() - { - TRACER_AUTO; - // Get all available services - RPointerArray engines; - - if (iEngineFactoryInstance) - { - iEngineFactoryInstance->GetServiceEnginePtr(engines); - TRACE("CreateServicesL() engines.Count(): %d", engines.Count()); - // iterate the service array - for ( TInt index = 0; index < engines.Count() ; index++ ) - { - //ServiceId is used to create unique view id for each service, to avoid the reuse of view id of existing service to newly installed service - TInt ServiceId = engines[index]->ServiceId(); - iEngine->AddNewClientL( ServiceId, *engines[index], - ( KVIMPSTTabbedViewIdBase + ServiceId ), ( KVIMPSTSearchViewIdBase + ServiceId), (KVIMPSTBlockedViewIdBase +ServiceId ), *iMenuExtension); - } - - engines.Reset(); - engines.Close(); - } - - } - -// --------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::IsSearchId() -// --------------------------------------------------------------------------- -// -TBool CVIMPSTUiExtensionFactory::IsSearchId( TUint aId ) - { - return ( aId >= KVIMPSTSearchViewIdBase && aId= KVIMPSTBlockedViewIdBase ); - } - -// --------------------------------------------------------------------------- -// CVIMPSTUiExtensionFactory::IsTabbedId() -// --------------------------------------------------------------------------- -// -TBool CVIMPSTUiExtensionFactory::IsTabbedId( TUint aId ) - { - return ( aId >= KVIMPSTTabbedViewIdBase && aId < KVIMPSTSearchViewIdBase ); - } - -// End of File