diff -r 000000000000 -r 72b543305e3a email/imum/Utils/Src/ImumMboxDataExtension.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/email/imum/Utils/Src/ImumMboxDataExtension.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,566 @@ +/* +* 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: ImumMboxDataExtension.cpp +* +*/ + + + +// INCLUDE FILES +#include +#include + +#include "EmailUtils.H" +#include "ImumMboxDataExtension.h" +#include "MuiuDynamicSettingItemBase.h" +#include "IMASAccountControl.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 =============================== + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::CImumMboxDataExtension() +// ---------------------------------------------------------------------------- +// +CImumMboxDataExtension::CImumMboxDataExtension() + : + iMailboxId( KErrNotFound ), + iAccountId( 0 ), + iExtensionId( 0 ), + iProtocol( TUid::Uid( 0 ) ), + iOpenHtmlMail( KErrNotFound ), + iVersion( KErrNotFound ), + iAlwaysOnlineState( EMailAoOff ), + iSelectedWeekDays( 0 ), + iSelectedTimeStart( 0 ), + iSelectedTimeStop( 0 ), + iInboxRefreshTime( KErrNotFound ), + iUpdateMode( EMailAoHeadersOnly ), + iEmailAddress( NULL ), + iEmnState( EMailEmnOff ), + iMailDeletion( EIMASMailDeletionAlwaysAsk ) + { + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::~CImumMboxDataExtension() +// ---------------------------------------------------------------------------- +// +CImumMboxDataExtension::~CImumMboxDataExtension() + { + delete iEmailAddress; + iEmailAddress = NULL; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::NewL() +// ---------------------------------------------------------------------------- +// +CImumMboxDataExtension* CImumMboxDataExtension::NewL() + { + CImumMboxDataExtension* self = NewLC(); + CleanupStack::Pop( self ); + + return self; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::NewLC() +// ---------------------------------------------------------------------------- +// +CImumMboxDataExtension* CImumMboxDataExtension::NewLC() + { + CImumMboxDataExtension* self = + new ( ELeave ) CImumMboxDataExtension(); + CleanupStack::PushL( self ); + + self->ConstructL(); + + return self; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::ConstructL() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::ConstructL() + { + iEmailAddress = new ( ELeave ) TMuiuSettingsText(); + iLastUpdateInfo.iLastUpdateFailed = EFalse; + iLastUpdateInfo.iLastSuccessfulUpdate = Time::NullTTime(); + iLastUpdateInfo.iUpdateSuccessfulWithCurSettings = EFalse; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::CopyL() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::CopyL( + const CImumMboxDataExtension& aExtension ) + { + iMailboxId = aExtension.MailboxId(); + iAccountId = aExtension.AccountId(); + iExtensionId = aExtension.ExtensionId(); + iProtocol = aExtension.Protocol(); + iOpenHtmlMail = aExtension.OpenHtmlMail(); + iVersion = aExtension.Version(); + iAlwaysOnlineState = aExtension.AlwaysOnlineState(); + iSelectedWeekDays = aExtension.SelectedWeekDays(); + iSelectedTimeStart = aExtension.SelectedTimeStart(); + iSelectedTimeStop = aExtension.SelectedTimeStop(); + iInboxRefreshTime = aExtension.InboxRefreshTime(); + iUpdateMode = aExtension.UpdateMode(); + iLastUpdateInfo = aExtension.LastUpdateInfo(); + iEmailAddress->Copy( *aExtension.EmailAddress() ); + iEmnState = aExtension.EmailNotificationState(); + iMailDeletion = aExtension.MailDeletion(); + + // Get flags + for ( TInt flag = 0; flag < EMailLastFlag; flag++ ) + { + iFlags.ChangeFlag( flag, iFlags.Flag( flag ) ); + } + + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::IsSettingsValid() +// ---------------------------------------------------------------------------- +// +TBool CImumMboxDataExtension::IsSettingsValid() const + { + // Verify that the account id is set, extension id is set, mailbox id + // is set and the protocol is set to either imap4 or pop3 + + // Make sure the mailbox id is valid + if ( iMailboxId < 0 ) + { + return EFalse; + } + + // Make sure that the account id is between 1 <= id <= 255 + if ( !iAccountId || iAccountId > KIMASMaxAccounts ) + { + return EFalse; + } + + // Check the extension id's for each protocol + IMASAccountControl accountControl; + TUint32 extensionId = accountControl.ExtendedAccountIdToAccountId( + iExtensionId, iProtocol ); + + // Make sure that the extension id is between 1 <= id <= 255 + if ( !extensionId || extensionId > KIMASMaxAccounts ) + { + return EFalse; + } + + // Settings are valid + return ETrue; + } + +/****************************************************************************** + + Extended mail settings + +******************************************************************************/ + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetStatusFlags() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetStatusFlags( + const TMuiuFlags& aStatusFlags ) + { + iStatusFlags = aStatusFlags; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::StatusFlags() +// ---------------------------------------------------------------------------- +// +const TMuiuFlags& CImumMboxDataExtension::StatusFlags() const + { + return iStatusFlags; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetEmailAddress() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetEmailAddress( + const TDesC& aEmailAddress ) + { + iEmailAddress->Copy( aEmailAddress ); + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::EmailAddress() +// ---------------------------------------------------------------------------- +// +const TDesC* CImumMboxDataExtension::EmailAddress() const + { + return iEmailAddress; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetEmailNotificationState() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetEmailNotificationState( + const TMailEmnStates aEmnState ) + { + iEmnState = aEmnState; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::EmailNotificationState() +// ---------------------------------------------------------------------------- +// +TMailEmnStates CImumMboxDataExtension::EmailNotificationState() const + { + return iEmnState; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetNewMailIndicators() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetNewMailIndicators( + const TInt aNewState ) + { + iFlags.ChangeFlag( EMailNewIndicators, aNewState ); + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::NewMailIndicators() +// ---------------------------------------------------------------------------- +// +TBool CImumMboxDataExtension::NewMailIndicators() const + { + return iFlags.Flag( EMailNewIndicators ); + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetHideMsgs() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetHideMsgs( + const TBool aNewState ) + { + iFlags.ChangeFlag( EMailHideMsgsOverLimit, aNewState ); + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::HideMsgs() +// ---------------------------------------------------------------------------- +// +TBool CImumMboxDataExtension::HideMsgs() const + { + return iFlags.Flag( EMailHideMsgsOverLimit ); + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetOpenHtmlMail() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetOpenHtmlMail( + const TInt aOpenHtmlMail ) + { + iOpenHtmlMail = aOpenHtmlMail; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::OpenHtmlMail() +// ---------------------------------------------------------------------------- +// +TInt CImumMboxDataExtension::OpenHtmlMail() const + { + return iOpenHtmlMail; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetOpenHtmlMail() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetMailboxId( + const TMsvId aMailboxId ) + { + iMailboxId = aMailboxId; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::OpenHtmlMail() +// ---------------------------------------------------------------------------- +// +TMsvId CImumMboxDataExtension::MailboxId() const + { + return iMailboxId; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetAccountId() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetAccountId( + const TUint32 aAccountId ) + { + iAccountId = aAccountId; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::AccountId() +// ---------------------------------------------------------------------------- +// +TUint32 CImumMboxDataExtension::AccountId() const + { + return iAccountId; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetExtensionId() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetExtensionId( + const TUint32 aExtensionId ) + { + iExtensionId = aExtensionId; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::ExtensionId() +// ---------------------------------------------------------------------------- +// +TUint32 CImumMboxDataExtension::ExtensionId() const + { + return iExtensionId; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetProtocol() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetProtocol( + const TUid& aProtocol ) + { + iProtocol = aProtocol; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::Protocol() +// ---------------------------------------------------------------------------- +// +TUid CImumMboxDataExtension::Protocol() const + { + return iProtocol; + } + +/****************************************************************************** + + Always Online settings + +******************************************************************************/ + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::Version() +// ---------------------------------------------------------------------------- +// +TInt CImumMboxDataExtension::Version() const + { + IMUM_CONTEXT( CImumMboxDataExtension::Version, 0, KLogData ); + + return iVersion; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetAlwaysOnlineState() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetAlwaysOnlineState( + const TMailAoStates aAlwaysOnlineState ) + { + IMUM_CONTEXT( CImumMboxDataExtension::SetAlwaysOnlineState, 0, KLogData ); + + iAlwaysOnlineState = aAlwaysOnlineState; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::AlwaysOnlineState() +// ---------------------------------------------------------------------------- +// +TMailAoStates CImumMboxDataExtension::AlwaysOnlineState() const + { + return iAlwaysOnlineState; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetSelectedWeekDays() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetSelectedWeekDays( + const TUint aSelectedWeekDays ) + { + iSelectedWeekDays = aSelectedWeekDays; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SelectedWeekDays() +// ---------------------------------------------------------------------------- +// +TUint CImumMboxDataExtension::SelectedWeekDays() const + { + return iSelectedWeekDays; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetSelectedTimeStart() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetSelectedTimeStart( + const TTime aSelectedTimeStart ) + { + iSelectedTimeStart = aSelectedTimeStart; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SelectedTimeStart() +// ---------------------------------------------------------------------------- +// +TTime CImumMboxDataExtension::SelectedTimeStart() const + { + return iSelectedTimeStart; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetSelectedTimeStop() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetSelectedTimeStop( + const TTime aSelectedTimeStop ) + { + iSelectedTimeStop = aSelectedTimeStop; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SelectedTimeStop() +// ---------------------------------------------------------------------------- +// +TTime CImumMboxDataExtension::SelectedTimeStop() const + { + return iSelectedTimeStop; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetInboxRefreshTime() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetInboxRefreshTime( + const TInt aInboxRefreshTime ) + { + iInboxRefreshTime = aInboxRefreshTime; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::InboxRefreshTime() +// ---------------------------------------------------------------------------- +// +TInt CImumMboxDataExtension::InboxRefreshTime() const + { + return iInboxRefreshTime; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetUpdateMode() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetUpdateMode( + const TMailAoUpdateModes aUpdateMode ) + { + iUpdateMode = aUpdateMode; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::UpdateMode() +// ---------------------------------------------------------------------------- +// +TMailAoUpdateModes CImumMboxDataExtension::UpdateMode() const + { + return iUpdateMode; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetLastUpdateInfo() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetLastUpdateInfo( + const TAOInfo& aLastUpdateInfo ) + { + iLastUpdateInfo = aLastUpdateInfo; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::LastUpdateInfo() +// ---------------------------------------------------------------------------- +// +TAOInfo CImumMboxDataExtension::LastUpdateInfo() const + { + return iLastUpdateInfo; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetMailDeletion() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetMailDeletion( + const TIMASMailDeletionMode aMailDeletion ) + { + iMailDeletion = aMailDeletion; + } +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::MailDeletion() +// ---------------------------------------------------------------------------- +// +TIMASMailDeletionMode CImumMboxDataExtension::MailDeletion() const + { + return iMailDeletion; + } + +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::SetIsPredefined() +// ---------------------------------------------------------------------------- +// +void CImumMboxDataExtension::SetIsPredefined( + const TBool& aIsPredefined ) + { + iFlags.ChangeFlag( EMailIsPredefined, aIsPredefined ); + } +// ---------------------------------------------------------------------------- +// CImumMboxDataExtension::IsPredefined() +// ---------------------------------------------------------------------------- +// +TBool CImumMboxDataExtension::IsPredefined() const + { + return iFlags.Flag( EMailIsPredefined ); + } + +// End of File