--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/mcesettings/inc/MceSettingsEmailSel.h Thu Dec 17 08:44:11 2009 +0200
@@ -0,0 +1,205 @@
+/*
+* Copyright (c) 2002-2004 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: Declarations of the CMceSelectEmailDialog
+*
+*/
+
+
+
+#ifndef __MCESETTINGSEMAILSEL_H__
+#define __MCESETTINGSEMAILSEL_H__
+
+// INCLUDES
+#include <e32base.h>
+#include <msvapi.h>
+#include <MTMStore.h>
+#include <TSendingCapabilities.h>
+#include <e32hashtab.h>
+
+// CONSTANTS
+
+// MACROS
+
+// DATA TYPES
+
+// FUNCTION PROTOTYPES
+
+// FORWARD DECLARATIONS
+
+// CLASS DECLARATION
+
+
+/**
+* CMceSelectEmailDialog
+*/
+class CMceSettingsEmailSel : public CBase, public MMsvSessionObserver
+{
+ public: // constructors and destructor
+
+ /**
+ * Two-phased constructor.
+ */
+ static CMceSettingsEmailSel* NewL();
+
+ // Destructor
+ ~CMceSettingsEmailSel();
+
+
+ // from MMsvSessionObserver
+ void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3 );
+
+ public: // Methods
+
+ IMPORT_C static TBool ShowSelectEmailDlgL( TMsvId& aSelectedService, TUid& aMtmType,
+ TSendingCapabilities aRequiredCapabilities = KCapabilitiesForAllServices );
+
+ protected: // Methods
+
+ private: // Methods
+
+ // Fetch all email mtms
+ void FilterEmailServicesL(
+ CDesCArrayFlat& aListItems,
+ CArrayFix<TUid>& aListItemUids );
+
+ // Constructor
+ CMceSettingsEmailSel();
+
+ //
+ TBool ShowSelectDlgL( TMsvId& aSelectedService,
+ TUid& aMtmType,
+ TSendingCapabilities aRequiredCapabilities );
+
+ // Load the resource for the dll module
+ void LoadResourceL();
+
+ // Unload the resource for the dll module
+ void UnLoadResource();
+
+ /**
+ * By default Symbian 2nd phase constructor is private.
+ */
+ void ConstructL();
+
+ // validate capabilities
+ TBool QueryCapabilitiesAndValidateAccountL( TUid aMtmUid );
+
+ //Functions introduced for CMail changes
+
+ /**
+ * Function to Append the Cmail Boxes to the mail list
+ */
+ void AppendCmailBoxesL(CArrayFix<TInt64 >* atimeItems, CMsvEntry* entry);
+
+ /**
+ * Function to Add the mail Boxes other than default to the mail list
+ */
+ void AddOtherEmailBoxesL( CDesCArrayFlat& aListItems,
+ CArrayFix<TUid>& aListItemUids,
+ CMsvEntry* aEntry);
+
+ /**
+ * Function to check if the email entry is healthy or not
+ * returns ETrue if healthy
+ */
+ TBool IsMailBoxHealthyL(TMsvEntry entry);
+
+ /**
+ * Function to check if the entry is email entry or not
+ * returns ETrue if email
+ */
+ TBool IsEmailEntryL(TMsvEntry entry);
+
+ /**
+ * Function to get and show all mailboxes with cmail also
+ *
+ */
+ TBool ShowCmailSelectDlgL( TMsvId& aSelectedService,
+ TUid& aMtmType,
+ CDesCArrayFlat* aListItems,
+ CArrayFix<TUid>* aListItemUids
+ );
+
+ /**
+ * Function to check if the mail box entry is valid to be
+ * appended or not
+ * returns ETrue if appendable
+ */
+ TBool IsMailBoxAppendable(TMsvEntry aEntry , TUid* aUid);
+
+ /**
+ * Function to check if the mail box entry is already added or not
+ * returns EFalse if already added
+ */
+ TBool IfMailBoxAlreadyAdded(CDesCArrayFlat& aListItems,
+ CDesCArrayFlat* aCmaillist,
+ TMsvEntry aTentry);
+
+ /**
+ * Function to check if the mail box uid is already added or not
+ * returns EFalse if already added
+ */
+ TBool IfMailBoxUidAlreadyAdded(CArrayFix<TUid>* aListItemsUids,
+ TMsvEntry aTentry);
+
+ private: // Data
+
+ CMsvSession* iMsvSessionPtr;
+
+ CMtmStore* iMtmStore;
+
+ TInt iResourceOffset;
+
+ TSendingCapabilities iRequiredCapabilities;
+
+//Variables introduced for CMail changes
+
+ /**
+ * variable to know if CMail Feature is on or not
+ */
+ TBool iEmailFramework;
+
+ /**
+ * Array to hold details of Cmail Mailboxes
+ */
+ CDesCArrayFlat* iCmaillistItems;
+
+ /**
+ * Hash table to hold the mapping of cmail boxes with its position in TMsvEntry
+ */
+ RHashMap<TInt64, TInt >* iCmailBoxes;
+
+ /**
+ * Array is used to map user selection to correct service in case of CMail
+ */
+ CArrayFix<TUid>* iCmaillistItemUids ;
+
+ /*
+ * Variable to hold the default email box index
+ */
+ TInt iDefaultIndex ;
+
+ /*
+ * Variable to hold the default email entry
+ */
+ TMsvEntry iTentryDef;
+
+ /*
+ * Variable to hold the mtm pluginid in case of platform email application registered
+ */
+ TInt iMtmPluginID;
+
+};
+
+#endif // __MCESETTINGSEMAILSEL_H__