diff -r 000000000000 -r 72b543305e3a email/imum/Utils/Src/ImumMboxInternalDataConverter.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Utils/Src/ImumMboxInternalDataConverter.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,891 @@ +/* +* Copyright (c) 2002 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: ImumMboxInternalDataConverter.cpp +* +*/ + + +// INCLUDE FILES +#include +#include +#include +#include +#include +#include + +#include "ImumMboxInternalDataConverter.h" +#include "ImumInSettingsDataCollection.h" +#include "ImumDaSettingsKeys.h" +#include "ImumInSettingsKeys.h" +#include "ImumDaErrorCodes.h" +#include "ImumPanic.h" +#include "ImumMboxData.h" +#include "ImumInSettingsDataImpl.h" +#include "ImumInSettingsDataCollectionImpl.h" +#include "ImumInMailboxServicesImpl.h" +#include "ImumInternalApiImpl.h" +#include "ComDbUtl.h" +#include "EmailUtils.H" +#include "ImumUtilsLogging.h" + +// EXTERNAL DATA STRUCTURES +// EXTERNAL FUNCTION PROTOTYPES +// CONSTANTS +// MACROS +// LOCAL CONSTANTS AND MACROS +// MODULE DATA STRUCTURES +// LOCAL FUNCTION PROTOTYPES +// FORWARD DECLARATIONS + +// ============================ MEMBER FUNCTIONS =============================== + +// ---------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::CImumMboxInternalDataConverter() +// ---------------------------------------------------------------------------- +// +CImumMboxInternalDataConverter::CImumMboxInternalDataConverter( + CImumInternalApiImpl& aMailboxApi, + const CImumMboxData& aSourceData, + CImumInSettingsData& aTargetData ) + : + iMailboxApi( aMailboxApi ), + iTargetData( aTargetData ), + iSourceData( aSourceData ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::CImumMboxInternalDataConverter, 0, KLogData ); + + } + +// ---------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::~CImumMboxInternalDataConverter() +// ---------------------------------------------------------------------------- +// +CImumMboxInternalDataConverter::~CImumMboxInternalDataConverter() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::~CImumMboxInternalDataConverter, 0, KLogData ); + } + +// ---------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::ConstructL() +// ---------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::ConstructL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::ConstructL, 0, KLogData ); + } + +// ---------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::NewL() +// ---------------------------------------------------------------------------- +// +CImumMboxInternalDataConverter* CImumMboxInternalDataConverter::NewL( + CImumInternalApiImpl& aMailboxApi, + const CImumMboxData& aSourceData, + CImumInSettingsData& aTargetData ) + { + IMUM_STATIC_CONTEXT( CImumMboxInternalDataConverter::NewL, 0, utils, KLogData ); + + CImumMboxInternalDataConverter* self = NewLC( + aMailboxApi, aSourceData, aTargetData ); + CleanupStack::Pop( self ); + + return self; + } + +// ---------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::NewLC() +// ---------------------------------------------------------------------------- +// +CImumMboxInternalDataConverter* CImumMboxInternalDataConverter::NewLC( + CImumInternalApiImpl& aMailboxApi, + const CImumMboxData& aSourceData, + CImumInSettingsData& aTargetData ) + { + IMUM_STATIC_CONTEXT( CImumMboxInternalDataConverter::NewLC, 0, utils, KLogData ); + + CImumMboxInternalDataConverter* self = + new ( ELeave ) CImumMboxInternalDataConverter( + aMailboxApi, aSourceData, aTargetData ); + CleanupStack::PushL( self ); + self->ConstructL(); + + return self; + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::ConvertToInternalMboxDataLC() +// --------------------------------------------------------------------------- +// +CImumInSettingsData* CImumMboxInternalDataConverter::ConvertToInternalMboxDataLC( + CImumInternalApiImpl& aMailboxApi, + const CImumMboxData& aSourceData ) + { + IMUM_STATIC_CONTEXT( CImumMboxInternalDataConverter::ConvertToInternalMboxDataLC, 0, utils, KLogData ); + + TUid protocol = { 0 }; + + // Imap4 settings? + if ( aSourceData.iIsImap4 ) + { + protocol = KSenduiMtmImap4Uid; + } + // Pop3 settings! + else + { + protocol = KSenduiMtmPop3Uid; + } + + CImumInSettingsData* targetData = CreateInternalDataLC( aMailboxApi, protocol ); + + ConvertToInternalMboxDataL( aMailboxApi, aSourceData, *targetData ); + + return targetData; + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::ConvertToInternalMboxDataL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::ConvertToInternalMboxDataL( + CImumInternalApiImpl& aMailboxApi, + const CImumMboxData& aSourceData, + CImumInSettingsData& aTargetData ) + { + IMUM_STATIC_CONTEXT( CImumMboxInternalDataConverter::ConvertToInternalMboxDataL, 0, utils, KLogData ); + + CImumMboxInternalDataConverter* converter = NewLC( + aMailboxApi, aSourceData, aTargetData ); + + converter->DoConvertToInternalMboxDataL(); + + CleanupStack::PopAndDestroy( converter ); + converter = NULL; + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::DoConvertToInternalMboxDataL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::DoConvertToInternalMboxDataL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::DoConvertToInternalMboxDataL, 0, KLogData ); + + SetIdsToInternalDataL(); + + // Imap4 settings? + if ( iSourceData.iIsImap4 ) + { + ConvToInternalImap4DataL(); + } + // Pop3 settings! + else + { + ConvToInternalPop3DataL(); + } + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::CreateInternalDataLC() +// --------------------------------------------------------------------------- +// +CImumInSettingsData* CImumMboxInternalDataConverter::CreateInternalDataLC( + CImumInternalApiImpl& aMailboxApi, + const TUid& aProtocol ) + { + IMUM_STATIC_CONTEXT( CImumMboxInternalDataConverter::CreateInternalDataLC, 0, utils, KLogData ); + + CImumInSettingsData* data = + aMailboxApi.MailboxServicesL().CreateSettingsDataL( aProtocol ); + CleanupStack::PushL( data ); + return data; + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::ConvToInternalImap4DataL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::ConvToInternalImap4DataL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::ConvToInternalImap4DataL, 0, KLogData ); + + DoPopulateInternalImap4SettingsL(); + DoPopulateInternalSmtpSettingsL(); + DoPopulateInternalGeneralSettingsL(); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::ConvToInternalPop3DataL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::ConvToInternalPop3DataL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::ConvToInternalPop3DataL, 0, KLogData ); + + DoPopulateInternalPop3SettingsL(); + DoPopulateInternalSmtpSettingsL(); + DoPopulateInternalGeneralSettingsL(); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::DoPopulateInternalImap4SettingsL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::DoPopulateInternalImap4SettingsL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::DoPopulateInternalImap4SettingsL, 0, KLogData ); + + // CONNECTION SETTINGS + MImumInSettingsDataCollection& connSett = iTargetData.GetInSetL(0); + const CImImap4Settings& imap4 = *iSourceData.iImap4Settings; + + // + FillTextInternalL( + connSett, TImumDaSettings::EKeyServer, + imap4.ServerAddress() ); + + // + FillText8InternalL( + connSett, TImumDaSettings::EKeyUsername, + imap4.LoginName() ); + + // + FillText8InternalL( + connSett, TImumDaSettings::EKeyPassword, + imap4.Password() ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumDaSettings::EKeySecurity, + MsvEmailMtmUiUtils::RestoreSecuritySettings( imap4 ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumDaSettings::EKeyPort, + static_cast( imap4.Port() ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeySyncFlags, + GetInternalImapDownload( imap4.GetMailOptions() ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeyDownloadFlags, + GetInternalImapPartial( imap4.PartialMailOptions() ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeyDownloadBodySize, + imap4.BodyTextSizeLimit() ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeyDownloadAttachmentSize, + imap4.AttachmentSizeLimit() ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeyDownloadMaxEmailSize, + static_cast( imap4.MaxEmailSize() ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeyImapIdle, + imap4.ImapIdle() ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeyImapIdleTimeout, + imap4.ImapIdleTimeout() ) ); + + // + FillText8InternalL( + connSett, TImumDaSettings::EImapFolderPath, + imap4.FolderPath() ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeySyncRate, + imap4.SyncRate() ) ); + + // MAILBOX SETTINGS + + // + TBuf8 buffer; + buffer.Append(imap4.PathSeparator()); + FillText8InternalL( + iTargetData, TImumInSettings::EKeyPathSeparator, + buffer ); + + // + FillText8InternalL( + iTargetData, TImumInSettings::EKeySearchString, + imap4.SearchString() ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyDisconnectedMode, + imap4.DisconnectedUserMode() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeySynchronise, + imap4.Synchronise() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeySubscribe, + imap4.Subscribe() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyAutoSendOnConnect, + imap4.AutoSendOnConnect() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyDeleteEmailsWhenDisconnecting, + imap4.DeleteEmailsWhenDisconnecting() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyAcknowledgeReceipts, + imap4.AcknowledgeReceipts() ) ); + + // + TInt32 val = imap4.InboxSynchronisationLimit(); + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyInboxUpdateLimit, + ( val > 0 ) ? val : KErrNotFound ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyFolderUpdateLimit, + imap4.MailboxSynchronisationLimit() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyUpdatingSeenFlag, + imap4.UpdatingSeenFlags() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyFetchSize, + static_cast( imap4.FetchSize() ) ) ); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::DoPopulateInternalPop3SettingsL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::DoPopulateInternalPop3SettingsL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::DoPopulateInternalPop3SettingsL, 0, KLogData ); + + // CONNECTION SETTINGS + MImumInSettingsDataCollection& connSett = iTargetData.GetInSetL( 0 ); + const CImPop3Settings& pop3 = *iSourceData.iPop3Settings; + + // + FillTextInternalL( + connSett, + TImumDaSettings::EKeyServer, + pop3.ServerAddress() ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumDaSettings::EKeyPort, + static_cast( pop3.Port() ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumDaSettings::EKeySecurity, + MsvEmailMtmUiUtils::RestoreSecuritySettings( pop3 ) ) ); + + // + FillText8InternalL( + connSett, TImumDaSettings::EKeyUsername, + pop3.LoginName() ); + + // + FillText8InternalL( + connSett, TImumDaSettings::EKeyPassword, + pop3.Password() ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumDaSettings::EKeyAPop, pop3.Apop() ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeySyncFlags, + GetInternalPopSyncL( + pop3.GetMailOptions() ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeySyncFlags, + GetInternalPopDownloadL( + pop3.PopulationLimit(), connSett ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumInSettings::EKeyDownloadMaxEmailSize, + pop3.MaxEmailSize() ) ); + + // MAILBOX SETTINGS + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyAutoSendOnConnect, + pop3.AutoSendOnConnect() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyDisconnectedMode, + pop3.DisconnectedUserMode() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyDeleteEmailsWhenDisconnecting, + pop3.DeleteEmailsWhenDisconnecting() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyAcknowledgeReceipts, + pop3.AcknowledgeReceipts() ) ); + + // + TInt32 val = pop3.InboxSynchronisationLimit(); + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyInboxUpdateLimit, + ( val > 0 ) ? val : KErrNotFound ) ); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::DoPopulateInternalSmtpSettingsL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::DoPopulateInternalSmtpSettingsL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::DoPopulateInternalSmtpSettingsL, 0, KLogData ); + + // CONNECTION SETTINGS + MImumInSettingsDataCollection& connSett = iTargetData.GetInSetL( 1 ); + const CImSmtpSettings& smtp = *iSourceData.iSmtpSettings; + + // + FillTextInternalL( + connSett, TImumDaSettings::EKeyServer, + smtp.ServerAddress() ); + + // + FillText8InternalL( + connSett, TImumDaSettings::EKeyUsername, + smtp.LoginName() ); + + // + FillText8InternalL( + connSett, TImumDaSettings::EKeyPassword, + smtp.Password() ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumDaSettings::EKeyPort, + static_cast( smtp.Port() ) ) ); + + // + User::LeaveIfError( connSett.SetAttr( + TImumDaSettings::EKeySecurity, + MsvEmailMtmUiUtils::RestoreSecuritySettings( smtp ) ) ); + + + // MAILBOX SETTINGS + + // + FillTextInternalL( + iTargetData, TImumDaSettings::EKeyEmailAddress, + smtp.EmailAddress() ); + + // + FillTextInternalL( + iTargetData, TImumDaSettings::EKeyUserAlias, + smtp.EmailAlias() ); + + // + FillTextInternalL( + iTargetData, TImumDaSettings::EKeyReplyToAddress, + smtp.ReplyToAddress() ); + + // + FillTextInternalL( + iTargetData, TImumInSettings::EKeyReceiptAddress, + smtp.ReceiptAddress() ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyDefaultMsgCharSet, + smtp.DefaultMsgCharSet().iUid ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyBodyEncoding, + smtp.BodyEncoding() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyAddVCardToEmail, + smtp.AddVCardToEmail() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyIncludeSignature, + smtp.AddSignatureToEmail() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyRequestReceipts, + smtp.RequestReceipts() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeySendCopyToSelf, + smtp.SendCopyToSelf() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeySendDelay, + smtp.SendMessageOption() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeySMTPAuth, + smtp.SMTPAuth() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyInboxLoginDetails, + smtp.InboxLoginDetails() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyToCcIncludeLimit, + smtp.ToCcIncludeLimit() ) ); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::DoPopulateInternalGeneralSettingsL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::DoPopulateInternalGeneralSettingsL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::DoPopulateInternalGeneralSettingsL, 0, KLogData ); + + const CImumMboxDataExtension& ext = *iSourceData.iExtendedSettings; + + // Set access point data here + SetInternalAccessPointL( 0 ); + SetInternalAccessPointL( 1 ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyMailboxName, + iSourceData.iName ) ); + + TImumDaSettings::TTextSignature signature; + iSourceData.iSignature->iRichText->Extract( + signature, 0, KImumDaSignatureLength ); + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeySignature, + signature ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyMailDeletion, + ext.MailDeletion() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyAutoNotifications, + InternalEmnState( ext.EmailNotificationState() ) ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyEmailAlert, + ext.NewMailIndicators() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyHideMsgs, + ext.HideMsgs() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyOpenHtmlMail, + ext.OpenHtmlMail() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeySettingsVersion, + ext.Version() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyAutoRetrieval, + InternalAoState( ext.AlwaysOnlineState() ) ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyAutoRetrievalDays, + static_cast( ext.SelectedWeekDays() ) ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyAutoRetrievalStartHour, + ext.SelectedTimeStart().Int64() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyAutoRetrievalEndHour, + ext.SelectedTimeStop().Int64() ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumDaSettings::EKeyAutoRetrievalInterval, + InternalRetrivalInterval( ext.InboxRefreshTime() ) ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyInfoLastUpdateFailed, + ext.LastUpdateInfo().iLastUpdateFailed ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyInfoLastSuccessfulUpdate, + ext.LastUpdateInfo().iLastSuccessfulUpdate.Int64() ) ); + + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyAoUpdateSuccessfulWithCurSettings, + ext.LastUpdateInfo().iUpdateSuccessfulWithCurSettings ) ); + + // + User::LeaveIfError( iTargetData.SetAttr( + TImumInSettings::EKeyIsPredefinedMailbox, + ext.IsPredefined() ) ); + + // Temporary password status + const TMuiuFlags& statusFlags = ext.StatusFlags(); + // Receive temp password flag + User::LeaveIfError( iTargetData[0].SetAttr( + TImumInSettings::EKeyTemporaryPassword, + statusFlags.Flag( EIMASStatusTempRcvPassword ) ) ); + // Transmit temp password flag + User::LeaveIfError( iTargetData[1].SetAttr( + TImumInSettings::EKeyTemporaryPassword, + statusFlags.Flag( EIMASStatusTempSndPassword ) ) ); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::SetIdsToInternalDataL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::SetIdsToInternalDataL() + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::SetIdsToInternalDataL, 0, KLogData ); + + // Get smtp id + TMsvId id = iSourceData.iExtendedSettings->MailboxId(); + + // Set smtp id + iTargetData[1].SetAttr( TImumDaSettings::EKeyMailboxId, id ); + + // Set Receiving id + TMsvEntry entry = iMailboxApi.MailboxUtilitiesL().GetMailboxEntryL( id ); + iTargetData[0].SetAttr( TImumDaSettings::EKeyMailboxId, entry.iRelatedId ); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::GetInternalImapPartial() +// --------------------------------------------------------------------------- +// +TInt32 CImumMboxInternalDataConverter::GetInternalImapPartial( + const TImImap4PartialMailOptions& /* aPartialOptions */ ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::GetInternalImapPartial, 0, KLogData ); + + return TImumInSettings::EFlagSetDownloadAll; + } + + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::GetInternalImapDownload() +// --------------------------------------------------------------------------- +// +TInt32 CImumMboxInternalDataConverter::GetInternalImapDownload( + const TImap4GetMailOptions& /* aPartialOptions */ ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::GetInternalImapDownload, 0, KLogData ); + + return TImumInSettings::EFlagDownloadHeader; + } + + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::SetInternalAccessPointL() +// --------------------------------------------------------------------------- +// +void CImumMboxInternalDataConverter::SetInternalAccessPointL( + const TInt aIndex ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::SetInternalAccessPointL, 0, KLogData ); + + // Initialize access point type to Iap Id + iTargetData[aIndex].SetAttr( TImumInSettings::EKeyAccessPointType, + TImumInSettings::EValueApIsIapId ); + + // aIndex refers to incoming or outgoing settings + TInt ap = KErrNotFound; + if ( !aIndex ) + { + ap = iSourceData.iIncomingIap; + } + else + { + ap = iSourceData.iOutgoingIap; + } + + // And access point to always ask, which means that default connection + // is used + iTargetData[aIndex].SetAttr( TImumDaSettings::EKeyAccessPoint, ap ); + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::InternalAoState() +// --------------------------------------------------------------------------- +// +TInt CImumMboxInternalDataConverter::InternalAoState( + const TMailAoStates& aAoState ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::InternalAoState, 0, KLogData ); + + switch ( aAoState ) + { + case EMailAoAlways: + return TImumDaSettings::EValueAutoOn; + case EMailAoHomeOnly: + return TImumDaSettings::EValueAutoHomeNetwork; + case EMailAoOff: + return TImumDaSettings::EValueAutoOff; + } + + return TImumDaSettings::EValueAutoOff; + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::InternalEmnState() +// --------------------------------------------------------------------------- +// +TInt CImumMboxInternalDataConverter::InternalEmnState( + const TMailEmnStates& aEmnState ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::InternalEmnState, 0, KLogData ); + + switch ( aEmnState ) + { + case EMailEmnAutomatic: + return TImumDaSettings::EValueNotificationsOn; + case EMailEmnHomeOnly: + return TImumDaSettings::EValueNotificationsHome; + case EMailEmnOff: + return TImumDaSettings::EValueNotificationsOff; + } + + return TImumDaSettings::EValueNotificationsOff; + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::InternalRetrivalInterval() +// --------------------------------------------------------------------------- +// +TInt CImumMboxInternalDataConverter::InternalRetrivalInterval( + TInt aInterval ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::InternalRetrivalInterval, 0, KLogData ); + + switch ( aInterval ) + { + case KIMASAoInterval5Min: + return TImumDaSettings::EValue5Minutes; + case KIMASAoInterval15Min: + return TImumDaSettings::EValue15Minutes; + case KIMASAoInterval30Min: + return TImumDaSettings::EValue30Minutes; + case KIMASAoInterval1Hour: + return TImumDaSettings::EValue1Hour; + case KIMASAoInterval2Hours: + return TImumDaSettings::EValue2Hours; + case KIMASAoInterval4Hours: + return TImumDaSettings::EValue4Hours; + case KIMASAoInterval6Hours: + return TImumDaSettings::EValue6Hours; + } + + return TImumDaSettings::EValue1Hour; + } + + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::GetInternalPopDownloadL() +// --------------------------------------------------------------------------- +// +TInt32 CImumMboxInternalDataConverter::GetInternalPopDownloadL( + const TInt32& aSetting, + MImumInSettingsDataCollection& aInternalDataCollection ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::GetInternalPopDownloadL, 0, KLogData ); + + TInt partial = 0; + if ( aSetting == EIMASMapFullBody ) + { + partial = TImumInSettings::EFlagSetDownloadAll; + } + else if ( aSetting == EIMASMapHeadersOnly ) + { + partial = TImumInSettings::EFlagDownloadHeader; + } + else + { + partial = TImumInSettings::EFlagDownloadPartialCumulative; + aInternalDataCollection.SetAttr( + TImumInSettings::EKeyDownloadBodySize, aSetting ); + } + + return partial; + } + +// --------------------------------------------------------------------------- +// CImumMboxInternalDataConverter::GetInternalPopSyncL() +// --------------------------------------------------------------------------- +// +TInt32 CImumMboxInternalDataConverter::GetInternalPopSyncL( + const TInt32& aSetting ) + { + IMUM_CONTEXT( CImumMboxInternalDataConverter::GetInternalPopSyncL, 0, KLogData ); + + return ( aSetting == EGetPop3EmailMessages ) ? + TImumInSettings::EFlagSetDownloadAll : + TImumInSettings::EFlagDownloadHeader; + } + +// End of File