diff -r ebe688cedc25 -r 7fdbb852d323 email/imum/Mtms/Src/ImumCreatorPredefinedMailbox.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Mtms/Src/ImumCreatorPredefinedMailbox.cpp Wed Sep 01 12:31:54 2010 +0100 @@ -0,0 +1,827 @@ +/* +* Copyright (c) 2006 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: ImumCreatorPredefinedMailbox.cpp +* +*/ + + + +// INCLUDE FILES +#include +#include // SMTP enumerations +#include // IMAP4 mail settings +#include // POP3 mail settings +#include +#include + +#include "ImumDaSettingsKeys.h" +#include "ImumInSettingsKeys.h" +#include "ImumCreatorPredefinedMailbox.h" +#include "ImumPrivateCRKeys.h" // Predefined mailbox keys +#include "EmailUtils.H" +#include "ImumInternalApi.h" // CImumInternalApi +#include "ImumInSettingsData.h" +#include "ImumInSettingsDataCollection.h" +#include "ImumMtmLogging.h" +#include "ImumDaErrorCodes.h" + +// EXTERNAL DATA STRUCTURES +// EXTERNAL FUNCTION PROTOTYPES +// CONSTANTS +const TInt KImumMailboxIndex = 0x100; +const TInt KImumMboxMaxTextLength = 500; +const TInt KImumConvertValue = 0x02; + +// MACROS +// LOCAL CONSTANTS AND MACROS +// MODULE DATA STRUCTURES +// LOCAL FUNCTION PROTOTYPES +// FORWARD DECLARATIONS + +// ============================ MEMBER FUNCTIONS ============================== + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::Newl() +// ---------------------------------------------------------------------------- +// +CImumCreatorPredefinedMailbox* CImumCreatorPredefinedMailbox::NewL( + CImumInternalApi& aMailboxApi ) + { + IMUM_STATIC_CONTEXT( CImumCreatorPredefinedMailbox::NewL, 0, mtm, KImumMtmLog ); + IMUM_IN(); + + // Create the object + CImumCreatorPredefinedMailbox* self = NewLC( aMailboxApi ); + CleanupStack::Pop(); // self + + IMUM_OUT(); + + return self; + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::NewlC() +// ---------------------------------------------------------------------------- +// +CImumCreatorPredefinedMailbox* CImumCreatorPredefinedMailbox::NewLC( + CImumInternalApi& aMailboxApi ) + { + IMUM_STATIC_CONTEXT( CImumCreatorPredefinedMailbox::NewLC, 0, mtm, KImumMtmLog ); + IMUM_IN(); + + // Create the object + CImumCreatorPredefinedMailbox* self = + new ( ELeave ) CImumCreatorPredefinedMailbox( aMailboxApi ); + CleanupStack::PushL( self ); + + // Constuct the object + self->ConstructL(); + + IMUM_OUT(); + + return self; + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::~CImumCreatorPredefinedMailbox() +// ---------------------------------------------------------------------------- +// +CImumCreatorPredefinedMailbox::~CImumCreatorPredefinedMailbox() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::~CImumCreatorPredefinedMailbox, 0, KImumMtmLog ); + IMUM_IN(); + + delete iCenRepSession; + iCenRepSession = NULL; + + iMailboxName.Close(); + iMailboxRcvServer.Close(); + iMailboxSndServer.Close(); + iMailboxEmailAddress.Close(); + iMailboxRcvUsername.Close(); + iMailboxRcvPassword.Close(); + iMailboxSndUsername.Close(); + iMailboxSndPassword.Close(); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CImumCreatorPredefinedMailbox() +// ---------------------------------------------------------------------------- +// +CImumCreatorPredefinedMailbox::CImumCreatorPredefinedMailbox( + CImumInternalApi& aMailboxApi ) + : + iMailboxApi( aMailboxApi ), + iCenRepSession( NULL ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CImumCreatorPredefinedMailbox, 0, KImumMtmLog ); + IMUM_IN(); + + // Clear all fields + ClearFields(); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::ConstructL() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::ConstructL() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ConstructL, 0, KImumMtmLog ); + IMUM_IN(); + + iCenRepSession = CRepository::NewL( KCRUidImum ); + + iMailboxName.CreateMax( KImumMboxMaxTextLength ); + iMailboxRcvServer.CreateMax( KImumMboxMaxTextLength ); + iMailboxSndServer.CreateMax( KImumMboxMaxTextLength ); + iMailboxEmailAddress.CreateMax( KImumMboxMaxTextLength ); + iMailboxRcvUsername.CreateMax( KImumMboxMaxTextLength ); + iMailboxRcvPassword.CreateMax( KImumMboxMaxTextLength ); + iMailboxSndUsername.CreateMax( KImumMboxMaxTextLength ); + iMailboxSndPassword.CreateMax( KImumMboxMaxTextLength ); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::ReadAndCreate() +// ---------------------------------------------------------------------------- +// +TBool CImumCreatorPredefinedMailbox::ReadAndCreate() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadAndCreate, 0, KImumMtmLog ); + IMUM_IN(); + + // Read SMTP settings and validate them + ReadSMTPParameters(); + TBool create = EFalse; + + // Continue settings reading, if everything is fine + if ( ProtocolOk() ) + { + IMUM0( 0, "Protocol information ok, proceed with reading receiving settings" ); + // Read settings based on protocol + if ( !iMailboxProtocol ) + { + IMUM0( 0, "Read POP3 Parameters" ); + + // Read POP3 settings and validate them + ReadPOP3Parameters(); + } + else + { + IMUM0( 0, "Read IMAP4 Parameters" ); + + // Read IMAP4 settings and validate them + ReadIMAP4Parameters(); + } + + create = CompulsoryFilled(); + } + + // Settings are ok + if ( create ) + { + IMUM0( 0, "Mailbox can be created, perform final finetuning" ); + FixSettings(); + } + + IMUM_OUT(); + return create; + } + +// --------------------------------------------------------------------------- +// From class . +// CImumCreatorPredefinedMailbox::ProtocolOk() +// --------------------------------------------------------------------------- +// +TBool CImumCreatorPredefinedMailbox::ProtocolOk() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ProtocolOk, 0, KImumMtmLog ); + IMUM_IN(); + IMUM_OUT(); + + return ( iMailboxProtocol == 0 || iMailboxProtocol == 1 ); + } + + +// --------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CompulsoryFilled() +// --------------------------------------------------------------------------- +// +TBool CImumCreatorPredefinedMailbox::CompulsoryFilled() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CompulsoryFilled, 0, KImumMtmLog ); + IMUM_IN(); + + TBool sendServerOk = iMailboxSndServer.Length() > 0; + TBool rcvServerOk = iMailboxRcvServer.Length() > 0; + TBool nameOk = iMailboxName.Length() > 0; + + IMUM_OUT(); + + return sendServerOk && rcvServerOk && nameOk; + } + +// --------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::FixSettings() +// --------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::FixSettings() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::FixSettings, 0, KImumMtmLog ); + IMUM_IN(); + + // Set correct flag for the attachment setting + TBool set = iMailboxFetchStates > 0; + iMailboxFetchStates = set ? + TImumInSettings::EFlagDownloadHeader: + TImumInSettings::EFlagSetDownloadAll; + + IMUM_OUT(); + } + + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::DefinePredefinedMailboxL() +// ---------------------------------------------------------------------------- +// +TBool CImumCreatorPredefinedMailbox::DefinePredefinedMailboxL( + const TUint aMailbox, + CImumInSettingsData& aSettings ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::DefinePredefinedMailboxL, 0, KImumMtmLog ); + IMUM_IN(); + + // Clear all fields + ClearFields( aMailbox ); + aSettings.ResetAll(); + + // Create settings if things are fine + if ( ReadAndCreate() ) + { + // Check the mailbox type + if ( !iMailboxProtocol ) + { + CreatePOP3MailboxL( aSettings ); + } + else + { + CreateIMAP4MailboxL( aSettings ); + } + } + + IMUM_OUT(); + return !aSettings.Validate(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::ReadSMTPParameters() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::ReadSMTPParameters() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadSMTPParameters, 0, KImumMtmLog ); + IMUM_IN(); + + // Get mailbox name + GetKey( KImumMailName1, iMailboxName ); + + // Get protocol + GetKey( KImumMailProtocol1, iMailboxProtocol ); + + // Get sending server address + GetKey( KImumMailSendingHost1, iMailboxSndServer ); + + // Get access point + GetKey( KImumMailIAP1, iMailboxAccessPoint ); + + // Get own email address + GetKey( KImumMailOwnAddress1, iMailboxEmailAddress ); + + // Get copy email address to CC setting + GetKey( KImumMailCopyToOwn1, iMailboxFillCC ); + + // Get sending delay setting + GetKey( KImumMailSendMessage1, iMailboxMessageSend ); + + // Get sending security setting + GetKey( KImumSmtpSecurity1, iMailboxSndSecurity ); + DoSecurityConversion( iMailboxSndSecurity ); + + // Get OMA Email Notifications setting + GetKey( KImumOmaEmnEnabled1, iMailboxOmaEmnEnabled ); + + // Get username setting + GetKey( KImumMailOutgoingUsername1, iMailboxSndUsername ); + + // Get password setting + GetKey( KImumMailOutgoingPassword1, iMailboxSndPassword ); + + // Get sending port number setting + GetKey( KImumMailOutgoingPortNumber1, iMailboxSndPort ); + + if(iMailboxSndPort <= 0) + { + iMailboxSndPort = GetDefaultSecurityPort( iMailboxSndSecurity, + TImumDaSettings::EValueProtocolSmtp ); + } + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::ReadPOP3Parameters() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::ReadPOP3Parameters() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadPOP3Parameters, 0, KImumMtmLog ); + IMUM_IN(); + + // Get receiving server address + GetKey( KImumMailReceivingHost1, iMailboxRcvServer ); + + // Get APop settings + GetKey( KImumMailAPop1, iMailboxAPop ); + + // Get header fetching setting + GetKey( KImumMailFetchHeaders1, iMailboxHeaderCount ); + + // Get username setting + GetKey( KImumMailIncomingUsername1, iMailboxRcvUsername ); + + // Get password setting + GetKey( KImumMailIncomingPassword1, iMailboxRcvPassword ); + + // Get receiving security setting + GetKey( KImumMailSecurity1, iMailboxRcvSecurity ); + DoSecurityConversion( iMailboxRcvSecurity ); + + // Get receiving port number + GetKey( KImumMailIncomingPortNumber1, iMailboxRcvPort ); + + if(iMailboxRcvPort <= 0) + { + iMailboxRcvPort = GetDefaultSecurityPort( iMailboxRcvSecurity, + TImumDaSettings::EValueProtocolPop3 ); + } + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::ReadIMAP4Parameters() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::ReadIMAP4Parameters() + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ReadIMAP4Parameters, 0, KImumMtmLog ); + IMUM_IN(); + + // Get receiving host + GetKey( KImumMailReceivingHost1, iMailboxRcvServer ); + + // Get attachment fetching setting + GetKey( KImumMailFetchAttachment1, iMailboxFetchStates ); + + // Get header fetching setting + GetKey( KImumMailFetchHeaders1, iMailboxHeaderCount ); + + // Get username setting + GetKey( KImumMailIncomingUsername1, iMailboxRcvUsername ); + + // Get password setting + GetKey( KImumMailIncomingPassword1, iMailboxRcvPassword ); + + // Get receiving security setting + GetKey( KImumMailSecurity1, iMailboxRcvSecurity ); + DoSecurityConversion( iMailboxRcvSecurity ); + + // Get receiving port number + GetKey( KImumMailIncomingPortNumber1, iMailboxRcvPort ); + + if(iMailboxRcvPort <= 0) + { + iMailboxRcvPort = GetDefaultSecurityPort( iMailboxRcvSecurity, + TImumDaSettings::EValueProtocolImap4 ); + } + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CreateIMAP4MailboxL() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::CreateIMAP4MailboxL( + CImumInSettingsData& aSettings ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateIMAP4MailboxL, 0, KImumMtmLog ); + IMUM_IN(); + + CreateIMAP4SettingsL( aSettings ); + CreateSMTPSettingsL( aSettings ); + CreateGeneralSettingsL( aSettings ); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CreatePOP3MailboxL() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::CreatePOP3MailboxL( + CImumInSettingsData& aSettings ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreatePOP3MailboxL, 0, KImumMtmLog ); + IMUM_IN(); + + CreatePOP3SettingsL( aSettings ); + CreateSMTPSettingsL( aSettings ); + CreateGeneralSettingsL( aSettings ); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CreateGeneralSettingsL() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::CreateGeneralSettingsL( + CImumInSettingsData& aSettings ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateGeneralSettingsL, 0, KImumMtmLog ); + IMUM_IN(); + + // Set OMA EMN state + aSettings.SetAttr( + TImumDaSettings::EKeyAutoNotifications, iMailboxOmaEmnEnabled ); + + // Add email address to settings + aSettings.SetAttr( + TImumDaSettings::EKeyEmailAddress, iMailboxEmailAddress ); + + // Set mail address can be empty + aSettings.SetAttr( + TImumInSettings::EKeyAllowEmptyEmailAddress, ETrue ); + + // Set mailbox name + aSettings.SetAttr( + TImumDaSettings::EKeyMailboxName, iMailboxName ); + + // Generate mailbox name when necessary + aSettings.SetAttr( + TImumInSettings::EKeyGenerateMailboxName, ETrue ); + + // Set send message delay + aSettings.SetAttr( + TImumDaSettings::EKeySendDelay, iMailboxMessageSend ); + + // Set send copy to self + aSettings.SetAttr( + TImumDaSettings::EKeySendCopyToSelf, iMailboxFillCC ); + + // Update inbox update limit + aSettings.SetAttr( + TImumDaSettings::EKeyInboxUpdateLimit, + static_cast( iMailboxHeaderCount ) ); + + // Update folder update limit + aSettings.GetInSetL( 0 ).SetAttr( + TImumDaSettings::EKeyFolderUpdateLimit, + static_cast( iMailboxHeaderCount ) ); + + // Set download flags + aSettings.GetInSetL( 0 ).SetAttr( + TImumInSettings::EKeyDownloadFlags, + static_cast( iMailboxFetchStates ) ); + + // Set predefined mailbox flag + aSettings.SetAttr( + TImumInSettings::EKeyIsPredefinedMailbox, ETrue ); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CreateSMTPSettingsL() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::CreateSMTPSettingsL( + CImumInSettingsData& aSettings ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateSMTPSettingsL, 0, KImumMtmLog ); + IMUM_IN(); + + // Create Imap4 settings + MImumInSettingsDataCollection& smtpSettings = + aSettings.AddInSetL( KSenduiMtmSmtpUid ); + + // Add security setting to settings + smtpSettings.SetAttr( + TImumDaSettings::EKeyAccessPoint, iMailboxAccessPoint ); + + // Add access point detail to settings + smtpSettings.SetAttr( + TImumInSettings::EKeyAccessPointType, + TImumInSettings::EValueApIsIapId ); + + // Add server address to settings + smtpSettings.SetAttr( + TImumDaSettings::EKeyServer, iMailboxSndServer ); + + // Add security settings + smtpSettings.SetAttr( + TImumDaSettings::EKeySecurity, iMailboxSndSecurity ); + + // Add sending port number settings + smtpSettings.SetAttr( + TImumDaSettings::EKeyPort, iMailboxSndPort ); + + // Fill in the login info + FillInLoginInfoL( iMailboxSndUsername, iMailboxSndPassword, smtpSettings ); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CreateIMAP4SettingsL() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::CreateIMAP4SettingsL( + CImumInSettingsData& aSettings ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreateIMAP4SettingsL, 0, KImumMtmLog ); + IMUM_IN(); + + // Create Imap4 settings + MImumInSettingsDataCollection& imap4Settings = + aSettings.AddInSetL( KSenduiMtmImap4Uid ); + + // Add security setting to settings + imap4Settings.SetAttr( + TImumDaSettings::EKeyAccessPoint, iMailboxAccessPoint ); + + // Add access point detail to settings + imap4Settings.SetAttr( + TImumInSettings::EKeyAccessPointType, + TImumInSettings::EValueApIsIapId ); + + // Add server address to settings + imap4Settings.SetAttr( + TImumDaSettings::EKeyServer, iMailboxRcvServer ); + + // Add security settings + imap4Settings.SetAttr( + TImumDaSettings::EKeySecurity, iMailboxRcvSecurity ); + + // Add receiving port number settings + imap4Settings.SetAttr( + TImumDaSettings::EKeyPort, iMailboxRcvPort ); + + // Fill in the login info + FillInLoginInfoL( iMailboxRcvUsername, iMailboxRcvPassword, imap4Settings ); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::CreatePOP3SettingsL() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::CreatePOP3SettingsL( + CImumInSettingsData& aSettings ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::CreatePOP3SettingsL, 0, KImumMtmLog ); + IMUM_IN(); + + // Create Imap4 settings + MImumInSettingsDataCollection& pop3Settings = + aSettings.AddInSetL( KSenduiMtmPop3Uid ); + + // Add access point to settings + pop3Settings.SetAttr( + TImumDaSettings::EKeyAccessPoint, iMailboxAccessPoint ); + + // Add access point detail to settings + pop3Settings.SetAttr( + TImumInSettings::EKeyAccessPointType, + TImumInSettings::EValueApIsIapId ); + + // Add server address to settings + pop3Settings.SetAttr( + TImumDaSettings::EKeyServer, iMailboxRcvServer ); + + // Add security settings + pop3Settings.SetAttr( + TImumDaSettings::EKeySecurity, iMailboxRcvSecurity ); + + // Add APOP setting + pop3Settings.SetAttr( + TImumDaSettings::EKeyAPop, iMailboxAPop ); + + // Add receiving port number settings + pop3Settings.SetAttr( + TImumDaSettings::EKeyPort, iMailboxRcvPort ); + + + // Fill in the login info + FillInLoginInfoL( iMailboxRcvUsername, iMailboxRcvPassword, pop3Settings ); + + IMUM_OUT(); + } + +// --------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::FillInLoginInfoL() +// --------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::FillInLoginInfoL( + const TDesC& aUsername, + const TDesC& aPassword, + MImumInSettingsDataCollection& aConnectionSettings ) const + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::FillInLoginInfoL, 0, KImumMtmLog ); + IMUM_IN(); + + // Convert to 8-bit format + RBuf8 temp; + temp.CreateMax( KImumMboxMaxTextLength ); + temp.Copy( aUsername ); + aConnectionSettings.SetAttr( TImumDaSettings::EKeyUsername, temp ); + + temp.Copy( aPassword ); + aConnectionSettings.SetAttr( TImumDaSettings::EKeyPassword, temp ); + + // Reset descriptors + temp.Close(); + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::ClearFields() +// ---------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::ClearFields( const TUint aMailbox ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::ClearFields, 0, KImumMtmLog ); + IMUM1_IN( "Resetting with mailbox: %d", aMailbox ); + + iMailbox = aMailbox; + iMailboxName.Zero(); + iMailboxSndServer.Zero(); + iMailboxRcvServer.Zero(); + iMailboxAccessPoint = KErrUnknown; + iMailboxProtocol = KErrUnknown; + iMailboxEmailAddress.Zero(); + iMailboxFillCC = KErrUnknown; + iMailboxMessageSend = KErrUnknown; + iMailboxSndSecurity = KErrUnknown; + iMailboxAPop = KErrUnknown; + iMailboxRcvSecurity = KErrUnknown; + iMailboxHeaderCount = KErrUnknown; + iMailboxRcvUsername.Zero(); + iMailboxRcvPassword.Zero(); + iMailboxSndUsername.Zero(); + iMailboxSndPassword.Zero(); + iMailboxOmaEmnEnabled = KErrUnknown; + iMailboxRcvPort = KErrUnknown; + iMailboxSndPort = KErrUnknown; + + IMUM_OUT(); + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::GetKey() +// ---------------------------------------------------------------------------- +// +TInt CImumCreatorPredefinedMailbox::GetKey( + TUint32 aId, + TDes& aString ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::GetKey, 0, KImumMtmLog ); + IMUM2_IN( "aId = %d, iMailbox = %d", aId, iMailbox ); + + // Get the mailbox by index + aId += iMailbox * KImumMailboxIndex; + TInt error = iCenRepSession->Get( aId, aString ); + + IMUM3( 0, "Key (%d) loading result: error = %d, aString = %S", aId, error, &aString ); + IMUM_OUT(); + return error; + } + +// ---------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::GetKey() +// ---------------------------------------------------------------------------- +// +TInt CImumCreatorPredefinedMailbox::GetKey( + TUint32 aId, + TInt& aInt) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::GetKey, 0, KImumMtmLog ); + IMUM2_IN( "aId = %d, iMailbox = %d", aId, iMailbox ); + + // Get the mailbox by index + aId += iMailbox * KImumMailboxIndex; + TInt error = iCenRepSession->Get( aId, aInt ); + + IMUM3( 0, "Key (%d) loading result: error = %d, aInt = %d", aId, error, aInt ); + IMUM_OUT(); + return error; + } + +// --------------------------------------------------------------------------- +// CImumCreatorPredefinedMailbox::DoSecurityConversion() +// --------------------------------------------------------------------------- +// +void CImumCreatorPredefinedMailbox::DoSecurityConversion( TInt& aSecurity ) const + { + //Conversion concerns only even numbers + if ( ( aSecurity % 2 ) == 0 ) + { + //convert 0 -> 2 and 2 -> 0 + aSecurity ^= KImumConvertValue; + } + } + +// ---------------------------------------------------------------------------- +// CImumInSettingsDataValidator::GetDefaultSecurityPortL() +// ---------------------------------------------------------------------------- +// +TInt CImumCreatorPredefinedMailbox::GetDefaultSecurityPort( + const TInt aSecurity, + const TInt aProtocol ) + { + IMUM_CONTEXT( CImumCreatorPredefinedMailbox::GetDefaultSecurityPortL, 0, KImumMtmLog ); + IMUM_IN(); + + TInt port( 0 ); + + switch( aSecurity ) + { + case KErrUnknown: //value is not set at all + case TImumDaSettings::EValueSecurityTls: + case TImumDaSettings::EValueSecurityOff: + { + switch ( aProtocol ) + { + case TImumDaSettings::EValueProtocolImap4: + port = TImumDaSettings::EDefaultPortImap4; + break; + + case TImumDaSettings::EValueProtocolPop3: + port = TImumDaSettings::EDefaultPortPop3; + break; + + case TImumDaSettings::EValueProtocolSmtp: + port = TImumDaSettings::EDefaultPortSmtp; + break; + } + break; + } + case TImumDaSettings::EValueSecuritySsl: + { + switch ( aProtocol ) + { + case TImumDaSettings::EValueProtocolImap4: + port = TImumDaSettings::EDefaultSecurityPortImap4; + break; + + case TImumDaSettings::EValueProtocolPop3: + port = TImumDaSettings::EDefaultSecurityPortPop3; + break; + + case TImumDaSettings::EValueProtocolSmtp: + port = TImumDaSettings::EDefaultSecurityPortSmtp; + break; + } + } + break; + } + + IMUM_OUT(); + + return port; + } + + +// End of File +