diff -r 2b7283837edb -r 3104fc151679 imstutils/xmppadapter/src/xmppadapter.cpp --- a/imstutils/xmppadapter/src/xmppadapter.cpp Thu Aug 19 09:41:53 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,847 +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 XMPPAdapter settings in OMA provisioning. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include - -#include "imconnectionprovideruids.hrh" - -#include "WPAdapterUtil.h" -#include "xmppadapter.h" - -#include "xmppservicesettingsapi.h" -#include "xmppparams.h" - -#include -#include -#include -#include -#include // application specific settings writer - -#include "xmppadapterlogger.h" -#include -#include -#include -#include -#include -#include // Adapter utils -#include -// CONSTANTS -_LIT( KMecoImAppID, "wXMPP" ); -//_LIT( KXMPPProtocol, "APROTOCOL" ); -//_LIT( KXMPPServerAddr, "AADDR" ); -_LIT(KSsl,"SSL"); -_LIT(KPortNbr, "APORTNBR"); -_LIT(KBrandId, "BRANDID"); -const TInt KGranularity = 4; - -_LIT( KResorcePathFolder, "\\resource\\"); -_LIT( KResorcePathFile, "WPGeneralXMPPSettingsAdapter.rsc"); - - -// ======== LOCAL FUNCTIONS ======== - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::CXMPPAdapter -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CXMPPAdapter::CXMPPAdapter() : iIsAppIdOk(EFalse) - { - LOGGER ( TXT ( "CXMPPAdapter::CXMPPAdapter() Start" ) ); - LOGGER ( TXT ( "CXMPPAdapter::CXMPPAdapter() Start" ) ); - - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CXMPPAdapter::ConstructL() - { - LOGGER ( TXT ( "CXMPPAdapter::ConstructL() Start" ) ); - iSnapId = 11; - iAppref = NULL; - iAppName = NULL; - RFs fs; - - TFileName resFilePath; - resFilePath.Zero(); - resFilePath.Append( KResorcePathFolder() ); - resFilePath.Append( KResorcePathFile() ); - - LOGGER ( TXT ( "CXMPPAdapter::ConstructL() End1" ) ); - TFileName path; - Dll::FileName( path ); - - User::LeaveIfError( fs.Connect() ); - - TDriveName drive( TParsePtrC( path ).Drive() ); - - HBufC* resourceFilePath = HBufC::NewLC( KMaxFileName ); - TPtr ptr( resourceFilePath->Des() ); - - - ptr.Append( resFilePath ); - ptr.Insert( 0, drive ); - - path.Zero(); - path.Append( *resourceFilePath ); - - - BaflUtils::NearestLanguageFile( fs, path ); - iResFile.OpenL( fs, path ); - //To decide on whether default name is needed or not - iDefaultName = ReadResourceL( R_QTN_IPCOMM_MSG_TEXT ); - iTitle = ReadResourceL( R_QTN_IPCOMM_MSG_TITLE ); - - CleanupStack::PopAndDestroy(); //resourceFilePath - iResFile.Close(); - - LOGGER ( TXT ( "CXMPPAdapter::ConstructL() End" ) ); - - - fs.Close(); - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CXMPPAdapter* CXMPPAdapter::NewL() - { - LOGGER ( TXT ( "CXMPPAdapter::NewL() Start" ) ); - CXMPPAdapter* self = new( ELeave ) CXMPPAdapter; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - LOGGER ( TXT ( "CXMPPAdapter::NewL() End" ) ); - return self; - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::~CXMPPAdapter -// Destructor -// ----------------------------------------------------------------------------- -// -CXMPPAdapter::~CXMPPAdapter() - { - LOGGER ( TXT ( "CXMPPAdapter::~CXMPPAdapter Start" ) ); - delete iUserName; - delete iPassword; - delete iProviderId; - delete iXmppServerAddress; - delete iProtocol; - delete iAppId; - delete iDomainName; - delete iBrandId; - delete iAppref; - - if ( iAppName ) - delete iAppName; - - delete iDefaultName; - delete iTitle; - LOGGER ( TXT ( "CXMPPAdapter::~CXMPPAdapter End" ) ); - } -// ----------------------------------------------------------------------------- -// CXMPPAdapter::ReadResourceLC Reads the resource without having to use a CCoeEnv -// ----------------------------------------------------------------------------- -// -HBufC* CXMPPAdapter::ReadResourceL( TInt aId ) - { - LOGGER ( TXT ( "CXMPPAdapter::ReadResourceL() " ) ); - iResFile.ConfirmSignatureL( aId ); - HBufC8* readBuffer = iResFile.AllocReadLC( aId ); - TResourceReader theReader; - theReader.SetBuffer( readBuffer ); - TPtrC textData = theReader.ReadTPtrC(); - - HBufC* textBuffer = HBufC::NewL( textData.Length() ); - *textBuffer = textData; - - CleanupStack::PopAndDestroy( readBuffer ); - LOGGER ( TXT ( "CXMPPAdapter::ReadResourceL() " ) ); - return textBuffer; - - } -// ----------------------------------------------------------------------------- -// CXMPPAdapter::ItemCount -// ----------------------------------------------------------------------------- -// -TInt CXMPPAdapter::ItemCount() const - { - LOGGER ( TXT ( "CXMPPAdapter::ItemCount() " ) ); - // SummaryTitle(), SummaryText(), SaveL(), SetAsDefaultL() and - // CanSetAsDefault() are called ItemCount() times - return (iUserName && iPassword && iProviderId && iXmppServerAddress && iDomainName && iProtocol) ? 1 : 0; - } - - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::DetailsL -// ----------------------------------------------------------------------------- -// -TInt CXMPPAdapter::DetailsL( TInt /*aItem*/, MWPPairVisitor& /*aVisitor*/ ) - { - LOGGER ( TXT ( "CXMPPAdapter::DetailsL() " ) ); - // Detail view is a feature for later release. - return KErrNotSupported; - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::SaveL -// ----------------------------------------------------------------------------- -// -void CXMPPAdapter::SaveL( TInt /*aItem*/ ) - { - LOGGER ( TXT ( "CXMPPAdapter::CanSetAsDefault() Start" ) ); - - __ASSERT_DEBUG( (iUserName && iPassword && iProviderId && iXmppServerAddress && iDomainName && iProtocol), User::Leave( KErrCorrupt ) ); - - CreateSettingsRecordL(); - LOGGER ( TXT ( "CXMPPAdapter::CanSetAsDefault() End" ) ); - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::CanSetAsDefault -// ----------------------------------------------------------------------------- -// -TBool CXMPPAdapter::CanSetAsDefault( TInt /*aItem*/ ) const - { - LOGGER ( TXT ( "CXMPPAdapter::CanSetAsDefault() t" ) ); - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::SetAsDefault -// ----------------------------------------------------------------------------- -// -void CXMPPAdapter::SetAsDefaultL( TInt /*aItem*/ ) - { - LOGGER ( TXT ( "CXMPPAdapter::SetAsDefaultL () Start" ) ); - // This shouldn't be called because CanSetAsDefault - // always returns EFalse. - LOGGER ( TXT ( "CXMPPAdapter::SetAsDefaultL() End" ) ); - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::VisitL -// ----------------------------------------------------------------------------- -// -void CXMPPAdapter::VisitL( CWPCharacteristic& aCharacteristic ) - { - LOGGER ( TXT ( "CXMPPAdapter::VisitL( CWPCharacteristic& aCharacteristic ) Start" ) ); - switch( aCharacteristic.Type() ) - { - case KWPApplication: - { - - aCharacteristic.AcceptL( *this ); - iIsAppIdOk = ETrue; - break; - } - case KWPResource: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - aCharacteristic.AcceptL( *this ); - } - break; - } - case KWPAppAddr: - { - - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - aCharacteristic.AcceptL( *this ); - } - break; - } - default: - { - break; - } - } - LOGGER ( TXT ( "CXMPPAdapter::VisitL( CWPCharacteristic& aCharacteristic ) End" ) ); - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::VisitL -// -// Used to parse, the following always-on related provisioning settings -// -// -// -// -// -// -// -// ----------------------------------------------------------------------------- -// -void CXMPPAdapter::VisitL( CWPParameter& aParameter ) - { - LOGGER ( TXT ( "CXMPPAdapter::VisitL( CWPParameter& aParameter ) Start" ) ); - switch( aParameter.ID() ) - { - case EWPNamedParameter: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - if(aParameter.Name().Compare(KSsl) == 0) - { - ParseIntegerL(aParameter.Value(),iSSL); - } - if(aParameter.Name().Compare(KPortNbr) == 0) - { - ParseIntegerL(aParameter.Value(),iPortNbr); - } - if(aParameter.Name().Compare(KBrandId) == 0) - { - if (iBrandId) - { - delete iBrandId; - iBrandId = NULL; - } - iBrandId = aParameter.Value().AllocL(); - } - } - break; - } - case EWPParameterName: - { - if ( iAppName ) - { - delete iAppName; - iAppName = NULL; - } - iAppName = aParameter.Value().AllocL(); - break; - } - - case EWPParameterAppID: - { - if (iAppId) - { - delete iAppId; - iAppId = NULL; - } - iAppId = aParameter.Value().AllocL(); - iAppIdPtr.Set(iAppId->Des()); - break; - } - - case EWPParameterAProtocol: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - if (iProtocol) - { - delete iProtocol; - iProtocol = NULL; - } - iProtocol = aParameter.Value().AllocL(); - } - break; - } - case EWPParameterAddr: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - if (iXmppServerAddress) - { - delete iXmppServerAddress; - iXmppServerAddress = NULL; - } - iXmppServerAddress = aParameter.Value().AllocL(); - } - break; - } - case EWPParameterAAuthName: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - - if (iUserName) - { - delete iUserName; - iUserName = NULL; - } - iUserName = aParameter.Value().AllocL(); - } - break; - } - case EWPParameterAAuthSecret: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - if (iPassword) - { - delete iPassword; - iPassword = NULL; - } - - iPassword = aParameter.Value().AllocL(); - } - break; - } - - case EWPParameterProviderID: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - if (iProviderId) - { - delete iProviderId; - iProviderId = NULL; - } - - iProviderId = aParameter.Value().AllocL(); - } - break; - } - case EWPParameterDomain : - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - if (iDomainName) - { - delete iDomainName; - iDomainName = NULL; - } - - iDomainName = aParameter.Value().AllocL(); - } - break; - } - case EWPParameterAppRef: - { - if ( 0 == iAppIdPtr.Compare( KMecoImAppID() ) ) - { - if (iAppref) - { - delete iAppref; - iAppref = NULL; - } - iAppref= aParameter.Value().AllocL(); - } - break; - } - default: - break; - } - LOGGER ( TXT ( "CXMPPAdapter::VisitL( CWPParameter& aParameter ) End" ) ); - } - - -// --------------------------------------------------------------------------- -// From class CWPAdapter. -// CWPGeneralVoIPSettingsAdapter::SummaryTitle -// Returns the summary title of general XMPP settings item. -// --------------------------------------------------------------------------- -// -const TDesC16& CXMPPAdapter::SummaryTitle( - TInt /*aIndex*/ ) const - { - LOGGER ( TXT ( "CXMPPAdapter::SummaryText() " ) ); - if ( iIsAppIdOk ) - { - LOGGER ( TXT ( "returning CXMPPAdapter::SummaryText() " ) ); - //LOGGER ( TXT ( "CXMPPAdapter::ConstructL() Title in SummaryText is %s" ), *iTitle ); - return *iTitle; - } - return KNullDesC16; - } - -// --------------------------------------------------------------------------- -// CWPGeneralVoIPSettingsAdapter::SummaryText -// From class CWPAdapter. -// Returns the summary text of general XMPP settings. -// --------------------------------------------------------------------------- -// -const TDesC16& CXMPPAdapter::SummaryText( - TInt /*aIndex*/ ) const - { - LOGGER ( TXT ( "CXMPPAdapter::SummaryText() " ) ); - if ( iIsAppIdOk ) - { - LOGGER ( TXT ( " returnign CXMPPAdapter::SummaryText() " ) ); - if ( NULL == iAppName ) - { - return *iDefaultName; - } - return *iAppName; - } - LOGGER ( TXT ( "CXMPPAdapter::SummaryText() " ) ); - return KNullDesC16; - } - - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::VisitLinkL -// ----------------------------------------------------------------------------- -// -void CXMPPAdapter::VisitLinkL( CWPCharacteristic& /*aCharacteristic*/ ) - { - LOGGER ( TXT ( "CXMPPAdapter::VisitLinkL() " ) ); - } - -// ----------------------------------------------------------------------------- -// CXMPPAdapter::ParseIntegerL -// ----------------------------------------------------------------------------- -// -void CXMPPAdapter::ParseIntegerL( const TDesC& aPtr, TInt& aInt ) - { - LOGGER ( TXT ( "CXMPPAdapter::ParseIntegerL " ) ); - TLex lex( aPtr ); - User::LeaveIfError( lex.Val( aInt ) ); - } -// ----------------------------------------------------------------------------- -// CXMPPAdapter::CheckforXmppserviceL -// This function will check for the IM Subservice in sp settings table -// if it exists in any of the service it will return ETrue else it will return EFalse -// ----------------------------------------------------------------------------- -// -TBool CXMPPAdapter::CheckforXmppserviceL() - { - // get the existing services from sp settings table - CSPSettings* serviceSettings = CSPSettings::NewLC(); - RIdArray serviceIds; - User::LeaveIfError( serviceSettings->FindServiceIdsL( serviceIds ) ); - TBool xmppexists = EFalse; - TInt servicecount = serviceIds.Count(); - for ( TInt i( 0 ); i < servicecount; i++ ) - { - CSPProperty* property = CSPProperty::NewLC(); - TInt err = serviceSettings->FindPropertyL( serviceIds[ i ],EPropertyIMSubServicePluginId, - *property ); - CleanupStack::PopAndDestroy( property ); - if(!err) - { - xmppexists = ETrue; - break; // just to break the loop - } - } - CleanupStack::PopAndDestroy( serviceSettings ); - return xmppexists; - - } -//------------------------------------------------------------------------ -//CXMPPAdapter::::CreateSettingsRecordL() -//------------------------------------------------------------------------ -void CXMPPAdapter::CreateSettingsRecordL() - { - LOGGER ( TXT ( "CXMPPAdapter::CreateSettingsRecordL() Start" ) ); - CXmppSettingsApi* sapi = CXmppSettingsApi::NewLC(); - iSettingsRecordId=0; - TRAPD(err,sapi->DefaultSettingsRecordL(iSettingsRecordId)); - if( err == KErrNone && iSettingsRecordId > 0) - { - if(CheckforXmppserviceL()) - { - CleanupStack::PopAndDestroy( sapi ); - User::Leave(KErrNotSupported); - } - } - sapi->CreateSettingsRecordL( iSettingsRecordId ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamServerPort(),/*5223 443*/ iPortNbr); - - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamHttpsProxyServerPort(),8080 ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamSnapId(),5 ); - - sapi->SetParamL( iSettingsRecordId, XmppParams:: KXmppParamXmppServerAddress(), - *iXmppServerAddress ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamUsername(),*iUserName ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamPassword(),*iPassword ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamResource(), - _L("gtalk_resource") ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamHttpsProxyServerAddress(), - _L("172.16.42.135") ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamAlais(), _L("") ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamOldSSLRequired(),/*ETrue EFalse */ iSSL ); - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamRegisterRequired(),EFalse ); - - sapi->SetParamL( iSettingsRecordId, - XmppParams::KXmppParamConnMgrBus(), - _L("org.freedesktop.Telepathy.ConnectionManager.gabble" ) ); - - sapi->SetParamL( iSettingsRecordId, - XmppParams::KXmppParamConnMgrPath(), - _L("/org/freedesktop/Telepathy/ConnectionManager/gabble" ) ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamProtocol(),*iProtocol ); - - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamPresenceStatusFreeTextOnline(), - _L("") ); - - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamPresenceStatusFreeTextAway(), - _L("")); - - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamPresenceStatusFreeTextBusy(), - _L("")); - - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamPresenceStatusFreeTextOffline(), - _L("")); - - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamPresenceStatusFreeTextInvisible(), - _L("")); - - sapi->SetParamL( iSettingsRecordId, XmppParams::KXmppParamLastLoggedInUserName(), - _L("")); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamPresenceStatus(),0 ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamAutoAcceptBuddyReq(),EFalse ); - - sapi->SetParamL( iSettingsRecordId,XmppParams::KXmppParamDomain(),*iDomainName ); - UpdateServiceSettingsL(); - - WriteAppSettingsL(); - CleanupStack::PopAndDestroy( sapi ); - LOGGER ( TXT ( "CXMPPAdapter::CreateSettingsRecordL() End" ) ); - } - -// --------------------------------------------------------------------------- -//CXMPPAdapter::UpdateServiceSettingsL -// --------------------------------------------------------------------------- -// -void CXMPPAdapter::UpdateServiceSettingsL() - { - LOGGER ( TXT ( "CXMPPAdapter::UpdateServiceSettingsL() Start" ) ); - CSPSettings* serviceSettings = CSPSettings::NewLC(); - RIdArray serviceIds; - - User::LeaveIfError( serviceSettings->FindServiceIdsL( serviceIds ) ); - - - - if( serviceIds.Count() ) - { - CDesCArrayFlat* serviceNames = new( ELeave ) CDesCArrayFlat( KGranularity ); - CleanupStack::PushL( serviceNames ); - - User::LeaveIfError( serviceSettings->FindServiceNamesL( serviceIds, - *serviceNames) ); - - for ( TInt i=0; i < serviceNames->MdcaCount(); i++ ) - { - if ( ( serviceNames->MdcaPoint(i)).Compare( *iProviderId ) == 0 ) - { - - iServiceProviderId = serviceIds[i]; - break; - } - } - CleanupStack::PopAndDestroy( serviceNames ); - } - - if ( 0 >= iServiceProviderId ) - { - - CSPEntry* entry = CSPEntry::NewLC(); - entry->SetServiceName( *iProviderId ); - TInt entryRetvalue = serviceSettings->AddEntryL( *entry ); - User::LeaveIfError( entryRetvalue ); - iServiceProviderId = entry->GetServiceId(); - CleanupStack::PopAndDestroy( entry ); - } - - - // Add/Update properties - CSPProperty* property = CSPProperty::NewLC(); - - - property->SetName( ESubPropertyIMLaunchUid ); - property->SetValue( 0x200255D0 ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - property->SetName( EPropertyContactViewPluginId ); - property->SetValue( 0x20012423 ); // plugin view id - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - property->SetName( ESubPropertyIMSettingsId ); - property->SetValue( iSettingsRecordId ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - - property->SetName( EPropertyIMSubServicePluginId ); - property->SetValue( KIMConnectivityPluginImplUid ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - property->SetName( ESubPropertyIMPreferredIAPId ); - property->SetValue( iSnapId ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - - property->SetName( ESubPropertyIMPreferredSNAPId ); - property->SetValue( iSnapId ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - property->SetName( ESubPropertyIMEnabled ); - property->SetValue( EOff ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - RBuf brandId; - if( iBrandId ) - { - brandId.CreateL(*iBrandId ); - } - else - { - brandId.CreateL(KNullDesC); - } - CleanupClosePushL( brandId ); - property->SetName( EPropertyBrandId ); - property->SetValue( brandId ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - CleanupStack::PopAndDestroy( &brandId ); - - - property->SetName( EPropertyBrandLanguage ); - - // ELangInternationalEnglish is selected as Default Brand Language Id. - property->SetValue( ELangInternationalEnglish ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - RBuf contactDB; - TBuf <50> string; - // The store name should be service specific, and not hardcoded, hence we use iServiceProviderId to form uniqueness. - string.Format(_L("cntdb://c:vimpststore%d.cdb"), iServiceProviderId); - contactDB.CreateL (string); - CleanupClosePushL( contactDB ); - property->SetName( EPropertyContactStoreId ); - property->SetValue( contactDB ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - CleanupStack::PopAndDestroy( &contactDB ); - - /*PresenceSubservice*/ - property->SetName( ESubPropertyPresenceSettingsId ); - property->SetValue( iSettingsRecordId ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - - property->SetName( EPropertyPresenceSubServicePluginId ); - property->SetValue( KIMConnectivityPluginImplUid ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - property->SetName( ESubPropertyPresencePreferredIAPId ); - property->SetValue( iSnapId ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - - property->SetName( ESubPropertyPresencePreferredSNAPId ); - property->SetValue( iSnapId ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - property->SetName( ESubPropertyPresenceEnabled ); - property->SetValue( EOff ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - - - property->SetName( EPropertyPCSPluginId ); - property->SetValue( 0x101FB3E7 ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - property->SetName( ESubPropertyPresenceAddrScheme ); - property->SetValue( *iDomainName ); - - User::LeaveIfError( serviceSettings->AddOrUpdatePropertyL( iServiceProviderId, - *property ) ); - - //End of Presence Subservice - - CleanupStack::PopAndDestroy( property ); - CleanupStack::PopAndDestroy( serviceSettings ); - LOGGER ( TXT ( "CXMPPAdapter::UpdateServiceSettingsL() End" ) ); - } - -// --------------------------------------------------------------------------- -//CXMPPAdapter::WriteAppSettingsL -// --------------------------------------------------------------------------- -// -void CXMPPAdapter::WriteAppSettingsL() - { - MVIMPSTSettingsStore* settingsStore = CVIMPSTSettingsStore::NewLC(); - // write cancel login not supported : since xmpp doesnot have the support - settingsStore->SetL( iServiceProviderId , EServiceCancelLoginNotSupported , 1 ); - // write change connection not supported : since xmpp doesnot have the support - settingsStore->SetL( iServiceProviderId , EServiceChangeConnectionNotSupported , 1 ); - CleanupStack::PopAndDestroy();//settingStore - } -// End of File