--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ipsservices/ipssossettings/inc/ipssetutils.h Wed Sep 01 12:28:57 2010 +0100
@@ -0,0 +1,355 @@
+/*
+* Copyright (c) 2007 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: Utility functions for setting UI.
+*
+*/
+
+
+#ifndef IPSSETUTILS_H
+#define IPSSETUTILS_H
+
+
+#include <msvstd.h> // TEntry
+#include <cemailaccounts.h> // CEmailAccounts
+
+class CMsvSession;
+class CBaseMtmUi;
+/**
+ * This class contains simple tools for mailbox handling
+ *
+ * @lib IpsSosSettings.lib
+ * @since FS v1.0
+ */
+class IpsSetUtils
+ {
+public:
+
+// New functions
+
+ /**
+ * Checks if given entry contains mailbox properties
+ *
+ * @param aEntry entry to be checked
+ * @return ETrue The entry is mailbox entry
+ * @return EFalse The entry is not mailbox entry
+ */
+ static TBool IsMailbox(
+ const TMsvEntry& aEntry );
+
+ /**
+ * Checks if given mtm-type matches known mail mtm's
+ *
+ * @param aMtm Mtm to be tested
+ * @param aAllowExtended Other than basic mail mtm's are accepted also
+ * @return EFalse if the mtm is not recognized
+ * @return ETrue if the mtm is supported type (Imap4 / Pop3 / Smtp )
+ */
+ static TBool IsMailMtm( const TUid& aMtm );
+
+ /**
+ * Finds and returns entry of the mailbox with specified id
+ *
+ * @param aMsvSession Session to be used for the search
+ * @param aMailboxId Id of the required mailbox
+ * @return Mailbox entry
+ */
+ static TMsvEntry GetMailboxEntryL(
+ CMsvSession& aMsvSession,
+ const TMsvId aMailboxId );
+
+ /**
+ * Finds and entry of the mailbox with specified id
+ *
+ * @param aMsvSession Session to be used for the search
+ * @param aMailboxId Id of the required mailbox
+ * @param aMailbox The entry the result shall be stored
+ * @return KErrNone when the search is successful
+ */
+ static TInt GetMailboxEntry(
+ CMsvSession& aMsvSession,
+ const TMsvId aMailboxId,
+ TMsvEntry& aMailbox );
+
+ /**
+ * Searches the mailbox entries from specified mailbox id
+ *
+ * @param aMailboxId Id of the required mailbox
+ * @param aMsvSession Session to be used in search
+ * @param aSmtpEntry Entry for Sending part of mailbox
+ * @param aRelatedEntry Entry for Receiving part of mailbox
+ * @return Imap4 or Pop3 mtm, based on the related mail protocol
+ */
+ static TUid GetMailboxEntriesL(
+ const TMsvId aMailboxId,
+ CMsvSession& aMsvSession,
+ TMsvEntry& aSmtpEntry,
+ TMsvEntry& aRelatedEntry );
+
+ /**
+ * Searches the mailbox entries from specified mailbox id
+ *
+ * @param aEntry Entry of the required mailbox
+ * @param aMsvSession Session to be used in search
+ * @param aSmtpEntry Entry for Sending part of mailbox
+ * @param aRelatedEntry Entry for Receiving part of mailbox
+ * @return Imap4 or Pop3 mtm, based on the related mail protocol
+ */
+ static TUid GetMailboxEntriesL(
+ const TMsvEntry& aEntry,
+ CMsvSession& aMsvSession,
+ TMsvEntry& aSmtpEntry,
+ TMsvEntry& aRelatedEntry );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aMailboxId Id of the mailbox to be used for search
+ * @return Account id of the mailbox
+ */
+ static TSmtpAccount GetSmtpAccountIdL(
+ CMsvSession& aMsvSession,
+ const TMsvId aMailboxId );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aMailboxId Id of the mailbox to be used for search
+ * @return Account id of the mailbox
+ */
+ static TImapAccount GetImapAccountIdL(
+ CMsvSession& aMsvSession,
+ const TMsvId aMailboxId );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aMailboxId Id of the mailbox to be used for search
+ * @return Account id of the mailbox
+ */
+ static TPopAccount GetPopAccountIdL(
+ CMsvSession& aMsvSession,
+ const TMsvId aMailboxId );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aEntry Mailbox entry to be used for search
+ * @return Account id of the mailbox
+ */
+ static TSmtpAccount GetSmtpAccountIdL(
+ CMsvSession& aMsvSession,
+ const TMsvEntry& aEntry );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aEntry Mailbox entry to be used for search
+ * @return Account id of the mailbox
+ */
+ static TImapAccount GetImapAccountIdL(
+ CMsvSession& aMsvSession,
+ const TMsvEntry& aEntry );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aEntry Mailbox entry to be used for search
+ * @return Account id of the mailbox
+ */
+ static TPopAccount GetPopAccountIdL(
+ CMsvSession& aMsvSession,
+ const TMsvEntry& aEntry );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aEntry aPopMailboxId Id of the Pop3 mailbox
+ * @return Account id of the mailbox
+ */
+ static TPopAccount GetPopAccountIdL(
+ const TMsvId aPopMailboxId );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aEntry aImapMailboxId Id of the Imap4 mailbox
+ * @return Account id of the mailbox
+ */
+ static TImapAccount GetImapAccountIdL(
+ const TMsvId aImapMailboxId );
+
+ /**
+ * Searches the correct account id to be used to load settings
+ *
+ * @param aEntry aSmtpMailboxId Id of the Smtp mailbox
+ * @return Account id of the mailbox
+ */
+ static TSmtpAccount GetSmtpAccountIdL(
+ const TMsvId aSmtpMailboxId );
+
+ /**
+ * Searches the correct entry of specified protocol for required mailbox
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aEntry Entry for result to be stored
+ * @param aMailboxId Id of the required mailbox
+ * @param aGetSendingService Get either receiving or sending type
+ * @return TInt KErrNone if search is successful
+ */
+ static TInt GetMailboxServiceId(
+ CMsvSession& aMsvSession,
+ TMsvEntry& aEntry,
+ const TMsvId aMailboxId,
+ const TBool aGetSendingService );
+
+ /**
+ * Searches through the provided mailbox for subscribed folders
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aMailboxId Id of the mailbox to be searched
+ * @return Number of subscribed folders
+ */
+ static TInt CountSubscribedFoldersL(
+ CMsvSession& aMsvSession,
+ const TMsvId aMailboxId );
+
+ /**
+ * Checks if the mailbox has any subscribed folders.
+ * Slightly faster than CountSubscribedFoldersL
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aMailboxId Id of the mailbox to be searched
+ * @return ETrue if mailbox has subscribed folders
+ * @return EFalse if mailbox has NOT subscribed folders
+ */
+ static TBool HasSubscribedFoldersL(
+ CMsvSession& aMsvSession,
+ const TMsvId aMailboxId );
+
+ /**
+ * Checks if the offered folder entry is inbox
+ *
+ * @param aMsvSession Session to be used
+ * @param aFolderEntry Folder entry
+ * @return ETrue if the folder is inbox
+ * @return EFalse if the folder is NOT inbox
+ */
+ static TBool IsInbox(
+ CMsvSession& aMsvSession,
+ const TMsvEntry& aFolderEntry );
+
+ /**
+ * Email address check based on RFC2822
+ *
+ * @param aAddress: email address to be checked.
+ * @return Returns ETrue if aAddress is a lexically valid emailaddress.
+ */
+ IMPORT_C static TBool IsValidEmailAddressL( const TDesC& aAddress );
+
+ /**
+ * Server address check based on RFC2822
+ *
+ * @param aDomain: domain to be checked.
+ * @return Returns ETrue if aDomain is a lexically valid domain name.
+ */
+ static TBool IsValidDomainL( const TDesC& aAddress );
+
+ /**
+ * Gets related mailbox ID
+ *
+ * @param aMsvSession Message server session.
+ * @param aMailboxId Unique mailbox entry id with return parameter.
+ * @return KErrNone, when ok.
+ */
+ static TInt GetRelatedMailboxId(
+ CMsvSession& aMsvSession,
+ TMsvId& aMailboxId );
+
+ /**
+ * Retrieves security port.
+ *
+ * @param aSecurity Current security setting.
+ * @param aIncoming Defines security type.
+ * @param aIsImap4 For protocol type.
+ * @return Correct port number.
+ */
+ static TUint32 GetDefaultSecurityPort(
+ const TInt aSecurity,
+ const TBool aIncoming,
+ const TBool aIsImap4 );
+
+ /**
+ * Retrieves msv id of service entry
+ *
+ * @param aAccountId id of TPopAccount or TImapAccount
+ * @param aMtmId KSenduiMtmImap4Uid or KSenduiMtmPop3Uid
+ * @param aMsvId reference to msv id where service id is stored
+ * @param aMsvId reference where smtp msv id is stored
+ */
+ static void GetServiceIdFromAccountIdL(
+ const TUint32 aAccountId,
+ const TUid aMtmId,
+ TMsvId& aServiceId,
+ TMsvId& aSmtpId );
+
+ /**
+ * Creates smtp settings object
+ *
+ * @param aAccountId id of TPopAccount or TImapAccount
+ * @param aMtmId KSenduiMtmImap4Uid or KSenduiMtmPop3Uid
+ * @return pointer to CImSmtpSettings
+ */
+ static CImSmtpSettings* GetSmtpSettingsFromAccountIdL(
+ const TUint32 aAccountId,
+ const TUid aMtmId );
+
+
+
+private:
+
+// New functions
+
+ /**
+ * Calculates the number of subscribed folders
+ *
+ * @param aMsvSession Session to be used in search
+ * @param aFolderId Id of the folder to be searched
+ * @param aCount Variable to store the number of subscribed folders
+ */
+ static void DoCountSubscribedFoldersL(
+ CMsvSession& aMsvSession,
+ const TMsvId aFolderId,
+ TInt& aCount );
+
+ /**
+ * Simplifies the MtmUi's query Mtm
+ *
+ * @param aMailboxId, Mailbox id to be checked
+ * @param aMtmUi, MtmUi to be used for the query
+ * @return The result of the query
+ */
+ static TInt QueryMailboxValidityL(
+ const TMsvId aMailboxId,
+ CBaseMtmUi& aMtmUi );
+ };
+
+#endif // IPSSETUTILS_H
+
+// End of File