--- a/voiceui/aiwpbkinfoviewprovider/src/aiwpbkinfoviewprovider.cpp Mon Jan 18 20:20:30 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-/*
-* Copyright (c) 2002-2005 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: AIW provider for pbkinfoview.
-*
-*/
-
-
-#include "pbkinfoviewapi.h"
-#include "rubydebug.h"
-
-#include <AiwMenu.h>
-#include <CVPbkContactManager.h>
-#include <CVPbkContactLinkArray.h>
-#include <MVPbkContactLink.h>
-#include <CVPbkContactStoreUriArray.h>
-#include <CVPbkContactIdConverter.h>
-#include <MVPbkContactStoreListObserver.h>
-#include <VPbkContactStoreUris.h>
-#include <VPbkContactStoreUris.h>
-#include <TVPbkContactStoreUriPtr.h>
-#include <MVPbkContactStoreList.h>
-#include <MVPbkContactStore.h>
-#include <MVPbkContactStoreProperties.h>
-
-#include <implementationproxy.h>
-
-#include <data_caging_path_literals.hrh> // for resource and bitmap directories
-
-#include <aiwpbkinfoviewprovider.rsg>
-#include "aiwpbkinfoviewprovider.h"
-#include "aiwpbkinfoviewprovideruids.hrh"
-#include "aiwpbkinfoviewprovider.rh"
-
-_LIT( KResFileName, "z:aiwpbkinfoviewprovider.rsc" );
-const TInt32 KVoiceTaglessContactId = -2;
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::NewL
-//
-// -----------------------------------------------------------------------------
-//
-CAiwPbkInfoViewProvider* CAiwPbkInfoViewProvider::NewL()
- {
- CAiwPbkInfoViewProvider* self = new (ELeave) CAiwPbkInfoViewProvider();
- CleanupStack::PushL(self);
- self->ConstructL();
- CleanupStack::Pop(self);
-
- return self;
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::Constructor
-//
-// -----------------------------------------------------------------------------
-//
-CAiwPbkInfoViewProvider::CAiwPbkInfoViewProvider()
- {
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::Destructor
-//
-// -----------------------------------------------------------------------------
-//
-CAiwPbkInfoViewProvider::~CAiwPbkInfoViewProvider()
- {
- delete iInfoViewApi;
- iInfoViewApi = NULL;
- delete iWait;
- iWait = NULL;
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::ConstructL
-//
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::ConstructL()
- {
- iInfoViewApi = CPbkInfoViewApi::NewL();
- iWait = new (ELeave) CActiveSchedulerWait();
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::InitialiseL (from CAiwServiceIfBase)
-//
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::InitialiseL(
- MAiwNotifyCallback& /*aFrameworkCallback*/,
- const RCriteriaArray& /*aInterest*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::HandleServiceCmdL (from CAiwServiceIfBase)
-//
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::HandleServiceCmdL(
- const TInt& /*aCmdId*/,
- const CAiwGenericParamList& /*aInParamList*/,
- CAiwGenericParamList& /*aOutParamList*/,
- TUint /*aCmdOptions*/,
- const MAiwNotifyCallback* /*aCallback*/ )
- {
- User::Leave( KErrNotSupported );
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::InitializeMenuPaneL (from CAiwServiceIfMenu)
-// Initialises menu pane by adding provider specific menu items. The AIW
-// framework gives the parameters to be used in addition.
-// @param aMenuPane Menu pane handle
-// @param aIndex position of item where to add menu items.
-// @param aCascadeId ID of cascade menu item.
-// @param aInParamList input parameter list for provider's parameters checking
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::InitializeMenuPaneL(
- CAiwMenuPane& aMenuPane,
- TInt aIndex,
- TInt /*aCascadeId*/,
- const CAiwGenericParamList& aInParamList )
- {
- TFileName resFile;
- GetResFileName( resFile );
-
- TInt serviceCommand = GetServiceCommandId( aInParamList );
-
- if ( serviceCommand == KErrNotFound )
- {
- User::Leave( KErrArgument );
- }
-
- if ( serviceCommand == KAiwCmdSindInfoView )
- {
- aMenuPane.AddMenuItemsL( resFile, R_PBKINFOVIEWPROVIDER_SUBMENU,
- KAiwCmdSindInfoView, aIndex );
- }
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::HandleMenuCmdL (from CAiwServiceIfMenu)
-// Handles a menu command invoked by the Handler.
-// @param aMenuCmdId Command ID for the menu command,
-// defined by the provider when adding the menu commands.
-// @param aInParamList Input parameters, could be empty list
-// @param aOutParamList Output parameters, could be empty list
-// @param aCmdOptions Options for the command, see KAiwCmdOpt* constants.
-// @param aCallback callback if asynchronous command handling is wanted by consumer.
-// The provider may or may not support this, leaves with KErrNotSupported
-// if not.
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::HandleMenuCmdL(
- TInt aMenuCmdId,
- const CAiwGenericParamList& aInParamList,
- CAiwGenericParamList& /*aOutParamList*/,
- TUint /*aCmdOptions*/,
- const MAiwNotifyCallback* /*aCallback*/ )
- {
- RUBY_DEBUG_BLOCK( "CAiwPbkInfoViewProvider::HandleMenuCmdL" );
-
- if( aMenuCmdId == EPbkInfoViewProviderCmd )
- {
- TInt contactId = GetContactIdL( aInParamList );
-
- iInfoViewApi->ShowInfoViewL( contactId );
- }
- }
-
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::OpenComplete (from MVPbkContactStoreObserver)
-//
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::StoreReady( MVPbkContactStore& /*aContactStore*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::OpenComplete (from MVPbkContactStoreObserver)
-//
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::StoreUnavailable( MVPbkContactStore& /*aContactStore*/,
- TInt /*aReason*/ )
- {
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::OpenComplete (from MVPbkContactStoreObserver)
-//
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::HandleStoreEventL( MVPbkContactStore& /*aContactStore*/,
- TVPbkContactStoreEvent /*aStoreEvent*/ )
- {
- }
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::OpenComplete (from MVPbkContactStoreListObserver)
-//
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::OpenComplete()
- {
- // Continue with GetContactIdL-method
- if ( iWait && iWait->IsStarted() )
- {
- iWait->AsyncStop();
- }
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::GetContactIdL
-// Gets the contact id from AIW parameter list.
-// @param aInParamList AIW parameter list.
-// @return Contact id.
-// -----------------------------------------------------------------------------
-//
-TInt CAiwPbkInfoViewProvider::GetContactIdL(
- const CAiwGenericParamList& aInParamList )
- {
- RUBY_DEBUG_BLOCK( "CAiwPbkInfoViewProvider::GetContactIdL" );
-
- TInt index( 0 );
- TInt32 contactId( KVoiceTaglessContactId );
-
- const TAiwGenericParam* param
- = aInParamList.FindFirst( index, EGenericParamContactLinkArray );
-
- if( param )
- {
- // Get the externalized contact link array
- TPtrC8 packedLinkArray = param->Value().AsData();
-
- CVPbkContactStoreUriArray* uriArray = CVPbkContactStoreUriArray::NewLC();
-
- uriArray->AppendL( TVPbkContactStoreUriPtr( VPbkContactStoreUris::DefaultCntDbUri() ) );
-
- CVPbkContactManager* contactManager = CVPbkContactManager::NewL( *uriArray );
- CleanupStack::PushL( contactManager );
-
- // Open contact stores
- MVPbkContactStoreList& storeList = contactManager->ContactStoresL();
- storeList.OpenAllL( *this );
-
- // Let's synchronize the OpenAllL call
- if ( iWait && !iWait->IsStarted() )
- {
- iWait->Start();
- }
-
- // Internalize contact link array
- CVPbkContactLinkArray* links = CVPbkContactLinkArray::NewLC(
- packedLinkArray, contactManager->ContactStoresL() );
-
- if( links->Count() > 0 )
- {
- // There should only be one link in the array
- const MVPbkContactLink& link = links->At( 0 );
-
- MVPbkContactStore& store = link.ContactStore();
-
- // Get the contact id
- CVPbkContactIdConverter* idConverter
- = CVPbkContactIdConverter::NewL( store );
- CleanupStack::PushL( idConverter );
-
- contactId = idConverter->LinkToIdentifier( link );
-
- CleanupStack::PopAndDestroy( idConverter );
- }
-
- CleanupStack::PopAndDestroy( links );
- CleanupStack::PopAndDestroy( contactManager );
- CleanupStack::PopAndDestroy( uriArray );
- }
-
- RUBY_DEBUG1( "Contact id: %d", contactId );
- return contactId;
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::GetServiceCommandId
-// Gets service command id from AIW parameter list.
-// @param aInParamList AIW parameter list.
-// @return TInt Service command id.
-// -----------------------------------------------------------------------------
-//
-TInt CAiwPbkInfoViewProvider::GetServiceCommandId(
- const CAiwGenericParamList& aInParamList)
- {
- TInt index( 0 );
- TInt32 num( 0 );
-
- const TAiwGenericParam* param
- = aInParamList.FindFirst( index, EGenericParamServiceCommand );
-
- const TAiwVariant& val = param->Value();
- if ( !val.Get( num ) )
- {
- num = KErrNotFound;
- }
- return num;
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::GetResFileName
-// Gets this plugin resource file name.
-// @param aText Resource file name.
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::GetResFileName( TDes& aText )
- {
- TParse parse;
- parse.Set( KResFileName, &KDC_RESOURCE_FILES_DIR, NULL );
- StrCopy( aText, parse.FullName() );
- }
-
-// -----------------------------------------------------------------------------
-// CAiwPbkInfoViewProvider::StrCopy
-//
-// String copy with lenght check.
-// @param TDes& aTarget Copied text will be put to this variable.
-// @param TDesC8& aSource Includes the text to be copied.
-// -----------------------------------------------------------------------------
-//
-void CAiwPbkInfoViewProvider::StrCopy( TDes& aTarget, const TDesC& aSource )
- {
- TInt len = aTarget.MaxLength();
- if( len < aSource.Length() )
- {
- aTarget.Copy( aSource.Left( len ) );
- return;
- }
- aTarget.Copy( aSource );
- }
-
-//
-// Rest of the file is for ECom initialization.
-//
-
-// -----------------------------------------------------------------------------
-// Map the interface UIDs to implementation factory functions
-//
-// -----------------------------------------------------------------------------
-//
-const TImplementationProxy ImplementationTable[] =
- {
- IMPLEMENTATION_PROXY_ENTRY( KAspInfoViewProviderImplUid,
- CAiwPbkInfoViewProvider::NewL )
- };
-
-// -----------------------------------------------------------------------------
-// Exported proxy for instantiation method resolution
-//
-// -----------------------------------------------------------------------------
-//
-EXPORT_C const TImplementationProxy* ImplementationGroupProxy(TInt& aTableCount)
-{
- aTableCount = sizeof( ImplementationTable ) / sizeof( TImplementationProxy );
-
- return ImplementationTable;
-}
-
-//
-// DLL entry point
-//
-#ifndef EKA2
-GLDEF_C TInt E32Dll(TDllReason /*aReason*/)
- {
- return KErrNone;
- }
-#endif
-
-// End of file