--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/email/imum/Utils/Src/ImumMboxDataExtension.cpp Wed Sep 01 12:31:54 2010 +0100
@@ -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 <e32base.h>
+#include <muiuflags.h>
+
+#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