diff -r 2b7283837edb -r 3104fc151679 uiservicetab/vimpstcmdprocess/src/cvimpstcmdaddfrompbk.cpp --- a/uiservicetab/vimpstcmdprocess/src/cvimpstcmdaddfrompbk.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,221 +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: implementation for CVIMPSTCmdAddFromPbk -* -*/ - - -// INCLUDE FILES -#include "cvimpstcmdaddfrompbk.h" -#include "vimpstcmd.hrh" -#include "mvimpstcmdobserver.h" - -#include "uiservicetabtracer.h" - -#include -#include -#include "mvimpstengine.h" -#include "mvimpststorageserviceview.h" -#include "cvimpststoragemanagerfactory.h" -#include -#include -#include -#include "mvimpstenginecontactmgmtextention.h" -#include "mvimpstengineextentionfeatures.h" -#include - -// Constants - -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::CVIMPSTCmdAddFromPbk -// -------------------------------------------------------------------------- -// -CVIMPSTCmdAddFromPbk::CVIMPSTCmdAddFromPbk( const TInt aCommandId , - const MVPbkStoreContact& aStoreContact, - MVIMPSTEngine& aEngine ): - iCommandId( aCommandId ), - iStoreContact( aStoreContact ), - iEngine(aEngine) - { - } - -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::~CVIMPSTCmdAddFromPbk -// -------------------------------------------------------------------------- -// -CVIMPSTCmdAddFromPbk::~CVIMPSTCmdAddFromPbk() - { - - } - -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::NewL -// -------------------------------------------------------------------------- -// -CVIMPSTCmdAddFromPbk* CVIMPSTCmdAddFromPbk::NewL( const TInt aCommandId, - const MVPbkStoreContact& aStoreContact, - MVIMPSTEngine& aEngine ) - { - TRACER_AUTO; - CVIMPSTCmdAddFromPbk* self = new (ELeave ) CVIMPSTCmdAddFromPbk( aCommandId ,aStoreContact, aEngine); - self->ConstructL(); //use contsurctL if necessary - return self; - } -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::ConstructL -// -------------------------------------------------------------------------- -// -void CVIMPSTCmdAddFromPbk::ConstructL() - { - iError = KErrNone; - } - -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::ExecuteLD -// -------------------------------------------------------------------------- -// -void CVIMPSTCmdAddFromPbk::ExecuteLD() - { - - TRACER_AUTO; - //push to the cleanupstack - CleanupStack::PushL( this ); - MVIMPSTStorageServiceView* storage = CVIMPSTStorageManagerFactory::ContactListInterfaceL( iEngine.ServiceId() ) ; - if(storage) - { - //storage->AddPhoneBookContactL(iStoreContact); - // get the link and form link identify the servicedetails and then sedn it to - //contact management to add it to server. - //make search request using search manager in engine - // Read all necessary data from contact and store to - // own type - CDesCArray* arrayForService = new (ELeave) CDesCArrayFlat( - 12 ); - CleanupStack::PushL( arrayForService ); // 1 - - GetServiceFieldsL(*arrayForService); - - TInt count = arrayForService->Count(); - MVIMPSTEngineContactMgmtExtention* contactMgr = - dynamic_cast - (iEngine.ExtentionFeatures(TVIMPSTEnums::EContactManagement)); - - for(TInt i = 0; i< count; i++) - { - if(contactMgr) - { - iError = contactMgr->AddServerContactL(KNullDesC(),KNullDesC(),KNullDesC()); - } - } - CleanupStack::PopAndDestroy(arrayForService); - } - else - { - iError = KErrGeneral; - } - if(iObserver) - { - iObserver->CommandFinishedL(*this); - } - - CleanupStack::PopAndDestroy(); - - } - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::AddObserver -// -------------------------------------------------------------------------- -// -void CVIMPSTCmdAddFromPbk::AddObserver( MVIMPSTCmdObserver& aObserver ) - { - // store the observer to notify the command completion - iObserver = &aObserver; - } - - -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::CommandId -// -------------------------------------------------------------------------- -// -TInt CVIMPSTCmdAddFromPbk::CommandId() const - { - return iCommandId; - } - -// -------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::Result -// -------------------------------------------------------------------------- -// -TInt CVIMPSTCmdAddFromPbk::Result() const - { - //return valid data regd the command operation - return iError; - } -// --------------------------------------------------------------------------- -// CVIMPSTCmdAddFromPbk::GetServiceFieldsL -// --------------------------------------------------------------------------- -// -void CVIMPSTCmdAddFromPbk::GetServiceFieldsL( CDesCArray& aArrayForServiceFields ) - { - - TRACER_AUTO; - HBufC* values[40]; - for( TInt index = 0 ; - index < iStoreContact.Fields().FieldCount() ; - index++ ) - { - const MVPbkStoreContactFieldCollection& fieldCollection = iStoreContact.Fields(); - - const MVPbkStoreContactField& field = fieldCollection.FieldAt( index ); - const MVPbkFieldType* fieldType = field.BestMatchingFieldType(); - - //find the relevant voip fields/email id fileds. - if ( fieldType ) - { - if ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_VOIPHOME ) || - ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_VOIPWORK ) || - ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_VOIPGEN ) || - ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_SIP )|| - ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_EMAILWORK ) || - ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_EMAILHOME ) || - ( fieldType->FieldTypeResId() == R_VPBK_FIELD_TYPE_EMAILGEN )) - { - TRACE("GetServiceFieldsL - Found"); - values[0] = MVPbkContactFieldTextData::Cast( - iStoreContact.Fields().FieldAt( index ). - FieldData() ).Text().AllocLC(); - if ( values[0] ) - { - // Check for prefix and remove if found - TInt prefixLocation = values[0]->Locate( ':' ); - if ( KErrNotFound != prefixLocation ) - { - TRACE("Prefix found -> remove"); - aArrayForServiceFields.AppendL( values[0]->Des().Mid( - prefixLocation+1 ) ); - } - else - { - TRACE("No prefix"); - aArrayForServiceFields.AppendL( values[0]->Des() ); - } - CleanupStack::PopAndDestroy( values[0] ); - } - } - } - } - } - -// End of File