--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ccservices/cmsservices/cmsengine/Server/src/cmsserverutils.cpp Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,497 @@
+/*
+* Copyright (c) 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:
+*
+*
+*/
+
+
+// INCLUDE FILES
+#include <VPbkEng.rsg>
+#include <spproperty.h>
+#include <spsettings.h>
+#include <spentry.h>
+#include "cmsserver.h"
+#include "cmsserverutils.h"
+#include "cmsdebug.h"
+
+// ----------------------------------------------------------
+// CCmsSession::ReadMsgParamLC
+//
+// ----------------------------------------------------------
+//
+HBufC* CmsServerUtils::ReadMsgParam16LC( TInt aMsgIndex, const RMessage2& aMessage )
+ {
+
+ PRINT( _L( "Start CmsServerUtils::ReadMsgParam16LC()" ) );
+
+ TInt length = aMessage.GetDesLength( aMsgIndex );
+ HBufC* buffer = HBufC::NewLC( length );
+ TPtr descriptor( buffer->Des() );
+ aMessage.ReadL( aMsgIndex, descriptor );
+ PRINT( _L( "End CmsServerUtils::ReadMsgParam16LC()" ) );
+ return buffer;
+ }
+
+// ----------------------------------------------------------
+// CmsServerUtils::ReadMsgParam8LC
+//
+// ----------------------------------------------------------
+//
+HBufC8* CmsServerUtils::ReadMsgParam8LC( TInt aMsgIndex, const RMessage2& aMessage )
+ {
+ PRINT( _L( "'Start CmsServerUtils::ReadMsgParam8LC()" ) );
+ TInt length = aMessage.GetDesLength( aMsgIndex );
+ HBufC8* buffer = HBufC8::NewLC( length );
+ TPtr8 descriptor( buffer->Des() );
+ aMessage.ReadL( aMsgIndex, descriptor );
+ return buffer;
+ }
+
+// ----------------------------------------------------------
+// CmsServerUtils::ConvertDesc
+//
+// ----------------------------------------------------------
+//
+TInt CmsServerUtils::ConvertDesc( const TDesC8& aNumberDesc )
+ {
+ TInt ret = 0;
+ TLex8 lex( aNumberDesc );
+ TInt error = lex.Val( ret );
+ return error == KErrNone ? ret : error;
+ }
+
+// ---------------------------------------------------------
+// CmsServerUtils::DescriptorCast
+//
+// ---------------------------------------------------------
+//
+TPtr8 CmsServerUtils::DescriptorCast( const TDesC8& aConstData )
+ {
+ TInt length = aConstData.Length();
+ TPtr8 constCast( CONST_CAST( TUint8*, aConstData.Ptr() ), length, length );
+ constCast.TrimAll();
+ return constCast;
+ }
+
+// ---------------------------------------------------------
+// CmsServerUtils::ConvertDescL
+//
+// ---------------------------------------------------------
+//
+HBufC8* CmsServerUtils::ConvertDescLC( const TDesC& a16bitDescriptor )
+ {
+ HBufC8* eightBit = HBufC8::NewLC( a16bitDescriptor.Length() );
+ eightBit->Des().Copy( a16bitDescriptor );
+ return eightBit;
+ }
+
+// ---------------------------------------------------------
+// CmsServerUtils::ConvertDescL
+//
+// ---------------------------------------------------------
+//
+HBufC* CmsServerUtils::ConvertDescLC( const TDesC8& a8bitDescriptor )
+ {
+ HBufC* sixteen = HBufC::NewLC( a8bitDescriptor.Length() );
+ sixteen->Des().Copy( a8bitDescriptor );
+ return sixteen;
+ }
+
+// ----------------------------------------------------
+// CmsServerUtils::IsVoIPSupported
+//
+// ----------------------------------------------------
+//
+TBool CmsServerUtils::IsVoIPSupportedL()
+ {
+ TBool supported( EFalse );
+ RIdArray idArray;
+ CleanupClosePushL(idArray);
+ CSPSettings* settings = CSPSettings::NewLC();
+
+ User::LeaveIfError( settings->FindServiceIdsL(idArray) );
+ for (TInt i = 0; !supported && i < idArray.Count(); ++i)
+ {
+ CSPEntry* entry = CSPEntry::NewLC();
+ TServiceId id = idArray[i];
+ User::LeaveIfError( settings->FindEntryL(id, *entry) );
+ const CSPProperty* property = NULL;
+ if (entry->GetProperty(property, ESubPropertyVoIPSettingsId) == KErrNone)
+ {
+ supported = ETrue;
+ }
+
+ if (entry->GetProperty(property, EPropertyServiceAttributeMask) == KErrNone)
+ {
+ TInt value = 0;
+ property->GetValue(value);
+ supported = value & ESupportsInternetCall;
+ }
+
+ CleanupStack::PopAndDestroy(); // entry
+ }
+ CleanupStack::PopAndDestroy(2); // settings, idArray
+ return supported;
+ }
+
+// ----------------------------------------------------
+// CCmsServerAsyncContact::IsImCapableL
+//
+// ----------------------------------------------------
+//
+TBool CmsServerUtils::IsFeatureSupportedL( TInt aFeature, const TDesC& aScheme )
+ {
+ RIdArray ids;
+ CleanupClosePushL( ids );
+ TBool isImCapable = EFalse;
+ CSPSettings* settings = CSPSettings::NewL();
+ CleanupStack::PushL( settings );
+ CDesCArrayFlat* nameArray = new ( ELeave ) CDesCArrayFlat( 2 );
+ CleanupStack::PushL( nameArray );
+ TInt error = settings->FindServiceIdsL( ids );
+ User::LeaveIfError( error );
+ error = settings->FindServiceNamesL( ids, *nameArray );
+ User::LeaveIfError( error );
+ TBool ready = EFalse;
+ const TInt count = nameArray->MdcaCount();
+ for( TInt i = 0; !ready && i < count; i++)
+ {
+ TPtrC desc = nameArray->MdcaPoint( i );
+ if( desc.CompareF( aScheme ) == 0 )
+ {
+ CSPProperty* property = CSPProperty::NewLC();
+ TServicePropertyName feature = ( TServicePropertyName )aFeature;
+ error = settings->FindPropertyL( ids[i], feature, *property );
+ if( KErrNone == error )
+ {
+ isImCapable = ETrue;
+ ready = ETrue;
+ }
+ CleanupStack::PopAndDestroy(); //property
+ }
+ }
+ CleanupStack::PopAndDestroy( 3 ); //nameArray, settings, ids
+ return isImCapable;
+ }
+
+// ----------------------------------------------------------
+// CmsServerUtils::MatchFieldType
+//
+// ----------------------------------------------------------
+//
+TInt CmsServerUtils::MatchFieldType( CCmsContactFieldItem::TCmsContactField aCmsFieldType )
+ {
+ PRINT1( _L( "CmsServerUtils::MatchFieldType( enum ) - Field: %d" ), aCmsFieldType );
+
+ switch( aCmsFieldType )
+ {
+ case CCmsContactFieldItem::ECmsLastName:
+ return R_VPBK_FIELD_TYPE_LASTNAME;
+ case CCmsContactFieldItem::ECmsMiddleName:
+ return R_VPBK_FIELD_TYPE_MIDDLENAME;
+ case CCmsContactFieldItem::ECmsFirstName:
+ return R_VPBK_FIELD_TYPE_FIRSTNAME;
+ case CCmsContactFieldItem::ECmsLandPhoneGeneric:
+ return R_VPBK_FIELD_TYPE_LANDPHONEGEN;
+ case CCmsContactFieldItem::ECmsLandPhoneHome:
+ return R_VPBK_FIELD_TYPE_LANDPHONEHOME;
+ case CCmsContactFieldItem::ECmsMobilePhoneHome:
+ return R_VPBK_FIELD_TYPE_MOBILEPHONEHOME;
+ case CCmsContactFieldItem::ECmsFaxNumberHome:
+ return R_VPBK_FIELD_TYPE_FAXNUMBERHOME;
+ case CCmsContactFieldItem::ECmsVideoNumberHome:
+ return R_VPBK_FIELD_TYPE_VIDEONUMBERHOME;
+ case CCmsContactFieldItem::ECmsAddrLabelGeneric:
+ return R_VPBK_FIELD_TYPE_ADDRLABELGEN;
+ case CCmsContactFieldItem::ECmsAddrPOGeneric:
+ return R_VPBK_FIELD_TYPE_ADDRPOGEN;
+ case CCmsContactFieldItem::ECmsAddrExtGeneric:
+ return R_VPBK_FIELD_TYPE_ADDREXTGEN;
+ case CCmsContactFieldItem::ECmsAddrStreetGeneric:
+ return R_VPBK_FIELD_TYPE_ADDRSTREETGEN;
+ case CCmsContactFieldItem::ECmsAddrLocalGeneric:
+ return R_VPBK_FIELD_TYPE_ADDRLOCALGEN;
+ case CCmsContactFieldItem::ECmsAddrRegionGeneric:
+ return R_VPBK_FIELD_TYPE_ADDRREGIONGEN;
+ case CCmsContactFieldItem::ECmsAddrPostcodeGeneric:
+ return R_VPBK_FIELD_TYPE_ADDRPOSTCODEGEN;
+ case CCmsContactFieldItem::ECmsAddrCountryGeneric:
+ return R_VPBK_FIELD_TYPE_ADDRCOUNTRYGEN;
+ case CCmsContactFieldItem::ECmsAddrLabelHome:
+ return R_VPBK_FIELD_TYPE_ADDRLABELHOME;
+ case CCmsContactFieldItem::ECmsAddrPOHome:
+ return R_VPBK_FIELD_TYPE_ADDRPOHOME;
+ case CCmsContactFieldItem::ECmsAddrExtHome:
+ return R_VPBK_FIELD_TYPE_ADDREXTHOME;
+ case CCmsContactFieldItem::ECmsAddrStreetHome:
+ return R_VPBK_FIELD_TYPE_ADDRSTREETHOME;
+ case CCmsContactFieldItem::ECmsAddrLocalHome:
+ return R_VPBK_FIELD_TYPE_ADDRLOCALHOME;
+ case CCmsContactFieldItem::ECmsAddrRegionHome:
+ return R_VPBK_FIELD_TYPE_ADDRREGIONHOME;
+ case CCmsContactFieldItem::ECmsAddrPostcodeHome:
+ return R_VPBK_FIELD_TYPE_ADDRPOSTCODEHOME;
+ case CCmsContactFieldItem::ECmsAddrCountryHome:
+ return R_VPBK_FIELD_TYPE_ADDRCOUNTRYHOME;
+
+ case CCmsContactFieldItem::ECmsAddrLabelWork:
+ return R_VPBK_FIELD_TYPE_ADDRLABELWORK;
+ case CCmsContactFieldItem::ECmsAddrPOWork:
+ return R_VPBK_FIELD_TYPE_ADDRPOWORK;
+ case CCmsContactFieldItem::ECmsAddrExtWork:
+ return R_VPBK_FIELD_TYPE_ADDREXTWORK;
+ case CCmsContactFieldItem::ECmsAddrStreetWork:
+ return R_VPBK_FIELD_TYPE_ADDRSTREETWORK;
+ case CCmsContactFieldItem::ECmsAddrLocalWork:
+ return R_VPBK_FIELD_TYPE_ADDRLOCALWORK;
+ case CCmsContactFieldItem::ECmsAddrRegionWork:
+ return R_VPBK_FIELD_TYPE_ADDRREGIONWORK;
+ case CCmsContactFieldItem::ECmsAddrPostcodeWork:
+ return R_VPBK_FIELD_TYPE_ADDRPOSTCODEWORK;
+ case CCmsContactFieldItem::ECmsAddrCountryWork:
+ return R_VPBK_FIELD_TYPE_ADDRCOUNTRYWORK;
+
+ case CCmsContactFieldItem::ECmsVoipNumberHome:
+ return R_VPBK_FIELD_TYPE_VOIPHOME;
+ case CCmsContactFieldItem::ECmsEmailHome:
+ return R_VPBK_FIELD_TYPE_EMAILHOME;
+ case CCmsContactFieldItem::ECmsLandPhoneWork:
+ return R_VPBK_FIELD_TYPE_LANDPHONEWORK;
+ case CCmsContactFieldItem::ECmsEmailGeneric:
+ return R_VPBK_FIELD_TYPE_EMAILGEN;
+ case CCmsContactFieldItem::ECmsMobilePhoneGeneric:
+ return R_VPBK_FIELD_TYPE_MOBILEPHONEGEN;
+ case CCmsContactFieldItem::ECmsMobilePhoneWork:
+ return R_VPBK_FIELD_TYPE_MOBILEPHONEWORK;
+ case CCmsContactFieldItem::ECmsVideoNumberWork:
+ return R_VPBK_FIELD_TYPE_VIDEONUMBERWORK;
+ case CCmsContactFieldItem::ECmsVideoNumberGeneric:
+ return R_VPBK_FIELD_TYPE_VIDEONUMBERGEN;
+ case CCmsContactFieldItem::ECmsFaxNumberWork:
+ return R_VPBK_FIELD_TYPE_FAXNUMBERWORK;
+ case CCmsContactFieldItem::ECmsVoipNumberWork:
+ return R_VPBK_FIELD_TYPE_VOIPWORK;
+ case CCmsContactFieldItem::ECmsVoipNumberGeneric:
+ return R_VPBK_FIELD_TYPE_VOIPGEN;
+ case CCmsContactFieldItem::ECmsEmailWork:
+ return R_VPBK_FIELD_TYPE_EMAILWORK;
+ case CCmsContactFieldItem::ECmsSipAddress:
+ return R_VPBK_FIELD_TYPE_SIP;
+ case CCmsContactFieldItem::ECmsThumbnailPic:
+ return R_VPBK_FIELD_TYPE_THUMBNAILPIC;
+ case CCmsContactFieldItem::ECmsImpp:
+ return R_VPBK_FIELD_TYPE_IMPP;
+ case CCmsContactFieldItem::ECmsFullName:
+ return aCmsFieldType; //do not change anything
+ case CCmsContactFieldItem::ECmsUrlWork:
+ return R_VPBK_FIELD_TYPE_URLWORK;
+ case CCmsContactFieldItem::ECmsUrlHome:
+ return R_VPBK_FIELD_TYPE_URLHOME;
+ case CCmsContactFieldItem::ECmsUrlGeneric:
+ return R_VPBK_FIELD_TYPE_URLGEN;
+ case CCmsContactFieldItem::ECmsNote:
+ return R_VPBK_FIELD_TYPE_NOTE;
+ case CCmsContactFieldItem::ECmsNickname:
+ return R_VPBK_FIELD_TYPE_SECONDNAME; //TODO!!
+ case CCmsContactFieldItem::ECmsJobTitle:
+ return R_VPBK_FIELD_TYPE_JOBTITLE;
+ case CCmsContactFieldItem::ECmsCompanyName:
+ return R_VPBK_FIELD_TYPE_COMPANYNAME;
+ case CCmsContactFieldItem::ECmsDepartment:
+ return R_VPBK_FIELD_TYPE_DEPARTMENT;
+ case CCmsContactFieldItem::ECmsBirthday:
+ return KErrNotFound; //TODO!!
+ case CCmsContactFieldItem::ECmsAnniversary:
+ return R_VPBK_FIELD_TYPE_ANNIVERSARY;
+ case CCmsContactFieldItem::ECmsAssistantNumber:
+ return R_VPBK_FIELD_TYPE_ASSTPHONE;
+ case CCmsContactFieldItem::ECmsPagerNumber:
+ return R_VPBK_FIELD_TYPE_PAGERNUMBER;
+ case CCmsContactFieldItem::ECmsCarPhone:
+ return R_VPBK_FIELD_TYPE_CARPHONE;
+ case CCmsContactFieldItem::ECmsPushToTalk:
+ return R_VPBK_FIELD_TYPE_POC;
+ case CCmsContactFieldItem::ECmsShareView:
+ return R_VPBK_FIELD_TYPE_SWIS;
+ case CCmsContactFieldItem::ECmsAddrGeoGeneric:
+ return R_VPBK_FIELD_TYPE_GEOGEN;
+ case CCmsContactFieldItem::ECmsAddrGeoHome:
+ return R_VPBK_FIELD_TYPE_GEOHOME;
+ case CCmsContactFieldItem::ECmsAddrGeoWork:
+ return R_VPBK_FIELD_TYPE_GEOWORK;
+ case CCmsContactFieldItem::ECmsImageName:
+ return R_VPBK_FIELD_TYPE_CALLEROBJIMG;
+ default:
+ return KErrNotFound;
+ }
+ }
+
+// ----------------------------------------------------------
+// CmsServerUtils::MatchFieldType
+//
+// ----------------------------------------------------------
+//
+CCmsContactFieldItem::TCmsContactField CmsServerUtils::MatchFieldType( TInt aPhonebookResId )
+ {
+ PRINT1( _L( "CmsServerUtils::MatchFieldType( ResID ) - Field: %d" ), aPhonebookResId );
+
+ switch( aPhonebookResId )
+ {
+ case R_VPBK_FIELD_TYPE_LASTNAME:
+ return CCmsContactFieldItem::ECmsLastName;
+ case R_VPBK_FIELD_TYPE_MIDDLENAME:
+ return CCmsContactFieldItem::ECmsMiddleName;
+ case R_VPBK_FIELD_TYPE_FIRSTNAME:
+ return CCmsContactFieldItem::ECmsFirstName;
+ case R_VPBK_FIELD_TYPE_LANDPHONEGEN:
+ return CCmsContactFieldItem::ECmsLandPhoneGeneric;
+ case R_VPBK_FIELD_TYPE_LANDPHONEHOME:
+ return CCmsContactFieldItem::ECmsLandPhoneHome;
+ case R_VPBK_FIELD_TYPE_MOBILEPHONEHOME:
+ return CCmsContactFieldItem::ECmsMobilePhoneHome;
+ case R_VPBK_FIELD_TYPE_ADDRLABELGEN:
+ return CCmsContactFieldItem::ECmsAddrLabelGeneric;
+ case R_VPBK_FIELD_TYPE_ADDRPOGEN:
+ return CCmsContactFieldItem::ECmsAddrPOGeneric;
+ case R_VPBK_FIELD_TYPE_ADDREXTGEN:
+ return CCmsContactFieldItem::ECmsAddrExtGeneric;
+ case R_VPBK_FIELD_TYPE_ADDRSTREETGEN:
+ return CCmsContactFieldItem::ECmsAddrStreetGeneric;
+ case R_VPBK_FIELD_TYPE_ADDRLOCALGEN:
+ return CCmsContactFieldItem::ECmsAddrLocalGeneric;
+ case R_VPBK_FIELD_TYPE_ADDRREGIONGEN:
+ return CCmsContactFieldItem::ECmsAddrRegionGeneric;
+ case R_VPBK_FIELD_TYPE_ADDRPOSTCODEGEN:
+ return CCmsContactFieldItem::ECmsAddrPostcodeGeneric;
+ case R_VPBK_FIELD_TYPE_ADDRCOUNTRYGEN:
+ return CCmsContactFieldItem::ECmsAddrCountryGeneric;
+ case R_VPBK_FIELD_TYPE_ADDRLABELHOME:
+ return CCmsContactFieldItem::ECmsAddrLabelHome;
+ case R_VPBK_FIELD_TYPE_ADDRPOHOME:
+ return CCmsContactFieldItem::ECmsAddrPOHome;
+ case R_VPBK_FIELD_TYPE_ADDREXTHOME:
+ return CCmsContactFieldItem::ECmsAddrExtHome;
+ case R_VPBK_FIELD_TYPE_ADDRSTREETHOME:
+ return CCmsContactFieldItem::ECmsAddrStreetHome;
+ case R_VPBK_FIELD_TYPE_ADDRLOCALHOME:
+ return CCmsContactFieldItem::ECmsAddrLocalHome;
+ case R_VPBK_FIELD_TYPE_ADDRREGIONHOME:
+ return CCmsContactFieldItem::ECmsAddrRegionHome;
+ case R_VPBK_FIELD_TYPE_ADDRPOSTCODEHOME:
+ return CCmsContactFieldItem::ECmsAddrPostcodeHome;
+ case R_VPBK_FIELD_TYPE_ADDRCOUNTRYHOME:
+ return CCmsContactFieldItem::ECmsAddrCountryHome;
+
+ case R_VPBK_FIELD_TYPE_ADDRLABELWORK:
+ return CCmsContactFieldItem::ECmsAddrLabelWork;
+ case R_VPBK_FIELD_TYPE_ADDRPOWORK:
+ return CCmsContactFieldItem::ECmsAddrPOWork;
+ case R_VPBK_FIELD_TYPE_ADDREXTWORK:
+ return CCmsContactFieldItem::ECmsAddrExtWork;
+ case R_VPBK_FIELD_TYPE_ADDRSTREETWORK:
+ return CCmsContactFieldItem::ECmsAddrStreetWork;
+ case R_VPBK_FIELD_TYPE_ADDRLOCALWORK:
+ return CCmsContactFieldItem::ECmsAddrLocalWork;
+ case R_VPBK_FIELD_TYPE_ADDRREGIONWORK:
+ return CCmsContactFieldItem::ECmsAddrRegionWork;
+ case R_VPBK_FIELD_TYPE_ADDRPOSTCODEWORK:
+ return CCmsContactFieldItem::ECmsAddrPostcodeWork;
+ case R_VPBK_FIELD_TYPE_ADDRCOUNTRYWORK:
+ return CCmsContactFieldItem::ECmsAddrCountryWork;
+
+ case R_VPBK_FIELD_TYPE_FAXNUMBERHOME:
+ return CCmsContactFieldItem::ECmsFaxNumberHome;
+ case R_VPBK_FIELD_TYPE_VIDEONUMBERHOME:
+ return CCmsContactFieldItem::ECmsVideoNumberHome;
+ case R_VPBK_FIELD_TYPE_VOIPHOME:
+ return CCmsContactFieldItem::ECmsVoipNumberHome;
+ case R_VPBK_FIELD_TYPE_EMAILHOME:
+ return CCmsContactFieldItem::ECmsEmailHome;
+ case R_VPBK_FIELD_TYPE_LANDPHONEWORK:
+ return CCmsContactFieldItem::ECmsLandPhoneWork;
+ case R_VPBK_FIELD_TYPE_MOBILEPHONEWORK:
+ return CCmsContactFieldItem::ECmsMobilePhoneWork;
+ case R_VPBK_FIELD_TYPE_VIDEONUMBERWORK:
+ return CCmsContactFieldItem::ECmsVideoNumberWork;
+ case R_VPBK_FIELD_TYPE_FAXNUMBERWORK:
+ return CCmsContactFieldItem::ECmsFaxNumberWork;
+ case R_VPBK_FIELD_TYPE_VOIPWORK:
+ return CCmsContactFieldItem::ECmsVoipNumberWork;
+ case R_VPBK_FIELD_TYPE_EMAILWORK:
+ return CCmsContactFieldItem::ECmsEmailWork;
+ case R_VPBK_FIELD_TYPE_MOBILEPHONEGEN:
+ return CCmsContactFieldItem::ECmsMobilePhoneGeneric;
+ case R_VPBK_FIELD_TYPE_VOIPGEN:
+ return CCmsContactFieldItem::ECmsVoipNumberGeneric;
+ case R_VPBK_FIELD_TYPE_VIDEONUMBERGEN:
+ return CCmsContactFieldItem::ECmsVideoNumberGeneric;
+ case R_VPBK_FIELD_TYPE_EMAILGEN:
+ return CCmsContactFieldItem::ECmsEmailGeneric;
+ case R_VPBK_FIELD_TYPE_SIP:
+ return CCmsContactFieldItem::ECmsSipAddress;
+ case R_VPBK_FIELD_TYPE_THUMBNAILPIC:
+ return CCmsContactFieldItem::ECmsThumbnailPic;
+ case R_VPBK_FIELD_TYPE_URLGEN:
+ return CCmsContactFieldItem::ECmsUrlGeneric;
+ case R_VPBK_FIELD_TYPE_URLHOME:
+ return CCmsContactFieldItem::ECmsUrlHome;
+ case R_VPBK_FIELD_TYPE_URLWORK:
+ return CCmsContactFieldItem::ECmsUrlWork;
+ case R_VPBK_FIELD_TYPE_IMPP:
+ return CCmsContactFieldItem::ECmsImpp;
+ case R_VPBK_FIELD_TYPE_NOTE:
+ return CCmsContactFieldItem::ECmsNote;
+ case R_VPBK_FIELD_TYPE_SECONDNAME:
+ return CCmsContactFieldItem::ECmsNickname; //TODO!!
+ case R_VPBK_FIELD_TYPE_JOBTITLE:
+ return CCmsContactFieldItem::ECmsJobTitle;
+ case R_VPBK_FIELD_TYPE_COMPANYNAME:
+ return CCmsContactFieldItem::ECmsCompanyName;
+ case R_VPBK_FIELD_TYPE_DEPARTMENT:
+ return CCmsContactFieldItem::ECmsDepartment;
+ //case CCmsContactFieldItem::ECmsBirthday:
+ // return KErrNotFound; //TODO!!
+ case R_VPBK_FIELD_TYPE_ANNIVERSARY:
+ return CCmsContactFieldItem::ECmsAnniversary;
+ case R_VPBK_FIELD_TYPE_ASSTPHONE:
+ return CCmsContactFieldItem::ECmsAssistantNumber;
+ case R_VPBK_FIELD_TYPE_PAGERNUMBER:
+ return CCmsContactFieldItem::ECmsPagerNumber;
+ case R_VPBK_FIELD_TYPE_CARPHONE:
+ return CCmsContactFieldItem::ECmsCarPhone;
+ case R_VPBK_FIELD_TYPE_POC:
+ return CCmsContactFieldItem::ECmsPushToTalk;
+ case R_VPBK_FIELD_TYPE_SWIS:
+ return CCmsContactFieldItem::ECmsShareView;
+ case R_VPBK_FIELD_TYPE_GEOGEN:
+ return CCmsContactFieldItem::ECmsAddrGeoGeneric;
+ case R_VPBK_FIELD_TYPE_GEOHOME:
+ return CCmsContactFieldItem::ECmsAddrGeoHome;
+ case R_VPBK_FIELD_TYPE_GEOWORK:
+ return CCmsContactFieldItem::ECmsAddrGeoWork;
+ case R_VPBK_FIELD_TYPE_CALLEROBJIMG:
+ return CCmsContactFieldItem::ECmsImageName;
+ default:
+ return CCmsContactFieldItem::ECmsUndefined;
+ }
+ }
+
+
+
+
+
+
+
+