ipsservices/ipssossettings/inc/ipssetutils.h
branchRCL_3
changeset 64 3533d4323edc
parent 0 8466d47a6819
--- /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