email/imum/Utils/Src/ImumMboxDataExtension.cpp
branchRCL_3
changeset 27 7fdbb852d323
parent 0 72b543305e3a
--- /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