--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/messagingappbase/mce/inc/MceUtils.h Wed Sep 01 12:31:54 2010 +0100
@@ -0,0 +1,321 @@
+/*
+* Copyright (c) 2002 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:
+* Mixed class to offer different account functions.
+* Implemented by CMceUi.
+*
+*/
+
+
+
+#ifndef MCEUTILS_H
+#define MCEUTILS_H
+
+// INCLUDES
+
+#include <msvstd.h> // TMsvId
+#include <msvstd.hrh> // KMsvNullIndexEntryIdValue
+#include <msvreg.h> // THumanReadableName
+
+#include <bldvariant.hrh>
+#include <ImumInHealthServices.h> // MImumInHealthServices
+#include <PhCltTypes.h>
+
+// DATA TYPES
+enum TMceListType
+ {
+ EMceListTypeMainView,
+ EMceListTypeMessage
+ };
+
+// FORWARD DECLARATIONS
+class CUidNameArray;
+class CMsvSession;
+class CImumInternalApi;
+
+// CLASS DECLARATION
+
+/**
+* Mixed class to offer different account functions.
+* Implemented by CMceUi
+*/
+class MMceAccountManager
+ {
+ public:
+ /**
+ * Create new account.
+ * @param aType type of the account.
+ * @param aOldServiceId id of the service where old settings are copied (this is for 'create from existing')
+ * @return ETrue if account created, EFalse otherwise
+ */
+ virtual TBool CreateNewAccountL(TUid aType, TMsvId aOldServiceId )=0;
+
+ /**
+ * Edit account.
+ * @param aId id of the account to be edited.
+ */
+ virtual void EditAccountL(TMsvId aId)=0;
+
+ /**
+ * Returns array of accounts of desired type.
+ * Callers responsibility to destroy array!
+ * @param aType type of the account.
+ */
+ virtual CUidNameArray* MtmAccountsL( TUid aType )=0;
+
+ /**
+ * Can create create new account of aMtm.
+ * @param aMtm Mtm uid.
+ * @return EFalse if new accounts cannot be created for mtm aMtm.
+ */
+ virtual TBool CanCreateNewAccountL(TUid aMtm) = 0;
+
+ /**
+ * Delete account.
+ * @param aId id of the account to be deleted.
+ */
+ virtual void DeleteAccountL(TMsvId aId) = 0;
+
+ /**
+ * Returns session used.
+ * @return reference to object of CMsvSession class.
+ */
+ virtual CMsvSession& Session() = 0;
+
+ /**
+ * Returns ETrue if aMtm is installed in the device.
+ * @param aMtm: Mtm uid to be checked.
+ * @return EFalse if aMtm is not installed, ETrue if it is installed.
+ */
+ virtual TBool IsPresent( TUid aMtm ) const = 0;
+
+ /**
+ * Returns human readable name of mtm.
+ * @param aMtm: Mtm uid
+ * @return human readable name of mtm.
+ */
+ virtual THumanReadableName MtmName( TUid aMtm ) const = 0;
+
+ };
+
+/**
+* Helper class
+* Includes static functions.
+*/
+class MceUtils
+ {
+ public:
+ /**
+ * Returns ETrue if given entry is one of the default folders:
+ * Inbox, Outbox, Sent items, Draft, Documents, Templates.
+ * @param TMsvId of the entry
+ * @return ETrue / EFalse
+ */
+ static TBool IsEntryFixed( TMsvId aId );
+
+ /**
+ * Replaces tab and enter characters by spaces using AknTextUtils::ReplaceCharacters
+ */
+ static void ReplaceCharacters( TDes& aText );
+
+ /**
+ * Gets ir attachment file name and path for the aEntryId.
+ * @param aSession: session object
+ * @param aEntryId: entry to be checked
+ * @param aFileName: filename buffer to be filled
+ * @param aFileHandle: handle to the file (aFileName)
+ * @param aSize: size of the file (aFileName)
+ */
+ static void GetIrFilePathL( CMsvSession& aSession, TMsvId aEntryId, TFileName& aFileName, RFile& aFileHandle, TInt& aSize );
+
+ /**
+ * Returns ETrue if 'Memory in use' option is enabled in mce/settings
+ */
+ static TBool MemoryInUseOptionL( );
+
+ /**
+ * Gets the array of valid mailboxes.
+ *
+ * @since S60 v3.2
+ * @param aEmailApi: Ptr to the email API
+ * @param aMailboxIdArray: list of valid mailboxes
+ * @param aGetImap4: ETrue if the imap mailboxes are to be included
+ * @param aGetPop3: ETrue if the pop3 mailboxes are to be included
+ * @param aGetSyncML: ETrue if the syncml mailboxes are to be included
+ * @param aGetOther: ETrue if the Other (3rd party) mailboxes are to be included
+ * @return KErrNone if the list of healthy mailboxes list is found
+ */
+ static TInt GetHealthyMailboxListL(
+ const MImumInHealthServices& aHealthServices,
+ MImumInHealthServices::RMailboxIdArray& aMailboxIdArray,
+ TBool aGetImap4,
+ TBool aGetPop3,
+ TBool aGetSyncML,
+ TBool aGetOther );
+
+ /**
+ * Returns ETrue if phonenumber in entry is valid
+ * @since 5.0
+ * @param aEntryId of the entry
+ * @param aSession: Session to message server
+ * @param aPhoneNumber: Phone number
+ * @param aEntryDetails: If this is not NULL,
+ * then KMceVisibleTextLength from the
+ * TMsvEntry.iDetails is copied to aEntryDetails buffer
+ * @Returns ETrue if phonenumber is valid
+ */
+ static TBool ValidPhoneNumberL(
+ TMsvId aEntryId,
+ CMsvSession& aSession,
+ TPhCltTelephoneNumber& aPhoneNumber,
+ TDes* aEntryDetails );
+
+ /**
+ * Returns ETrue if phonenumber in entry is valid
+ * @since 5.0
+ * @param aEntryId of the entry
+ * @param aSession: Session to message server
+ * @Returns ETrue if phonenumber is valid
+ */
+ static TBool ValidPhoneNumberL(
+ TMsvId aEntryId,
+ CMsvSession& aSession );
+
+ /**
+ * Gets phone number from SMS entry
+ * @since 5.0
+ * @param aEntryId of the entry
+ * @param aSession: Session to message server
+ * @param aPhoneNumber: Phone number
+ */
+ static void GetSmsNumberL(
+ TMsvId aEntryId,
+ CMsvSession& aSession,
+ TPhCltTelephoneNumber& aNumber );
+
+ /**
+ * Gets phone number from MMS entry
+ * @since 5.0
+ * @param aEntryId of the entry
+ * @param aSession: Session to message server
+ * @param aPhoneNumber: Phone number
+ */
+ static void GetMmsNumberL(
+ TMsvEntry& aEntry,
+ CMsvSession& aSession,
+ TPhCltTelephoneNumber& aNumber );
+
+
+ /**
+ * Copies text buffer from aSourceString to
+ * aTargetSting and also adds EEllipsis if needed and
+ * performs AknTextUtils::ReplaceCharacters to copied buffer.
+ * @since 5.0
+ * @param aTargetString
+ * @param aSourceString
+ * @param aDescriptionLength
+ * @return: none
+ */
+ static void StripAndAppendStringL(
+ TDes& aTargetString,
+ const TDesC& aSourceString,
+ TInt aDescriptionLength );
+
+ /**
+ * Reads description length value from muiu cenrep file:
+ * KCRUidMuiuSettings / KMuiuDescriptionLength
+ * If some errors, returns KMceVisibleTextLength.
+ * @since 5.0
+ * @return iDescription length value.
+ */
+ static TInt DescriptionLength();
+
+ /**
+ * Reads description length value from muiu cenrep file:
+ * KCRUidMuiuSettings / KMuiuDescriptionLength
+ * If some errors, returns KMceVisibleTextLength.
+ * @since 5.0
+ * @return iDescription length value.
+ * @leave KErrNoMemory
+ */
+ static TInt DescriptionLengthL();
+
+ /**
+ * Returns ETrue if MTM is build in type
+ * @since 5.0
+ * @param aMtmUid
+ * @return ETrue/EFalse
+ */
+ static TBool IsMtmBuiltIn( TUid aMtmUid );
+
+ /**
+ * Reads KCRUidNumberGrouping / KNumberGrouping
+ * from the cenrep and returns ETrue if number
+ * grouping is enabled.
+ * If reading fails then it returns EFalse
+ * @since 5.0
+ */
+ static TBool NumberGroupingEnabled();
+
+ /**
+ * Reads KCRUidNumberGrouping / KNumberGrouping
+ * from the cenrep and returns ETrue if number
+ * grouping is enabled.
+ * If reading fails then it returns EFalse
+ * @since 5.0
+ * @leave if CRepository::NewL leaves.
+ */
+ static TBool NumberGroupingEnabledL();
+
+
+ };
+/**
+* Helper class for flags.
+*/
+class TMceFlags
+ {
+ public:
+ /**
+ * constructor
+ */
+ TMceFlags();
+
+ /**
+ * Sets flag on
+ * @param aFlag: flag to be set
+ */
+ inline void SetMceFlag( TUint32 aFlag );
+
+ /**
+ * Clear flag on
+ * @param aFlag: flag to be cleared
+ */
+ inline void ClearMceFlag( TUint32 aFlag );
+
+ /**
+ * Query for the flag
+ * @param aFlag: flag to be checked
+ */
+ inline TBool MceFlag( TUint32 aFlag ) const;
+
+ private:
+ TUint32 iFlags;
+
+ };
+
+#include "MceUtils.inl"
+
+#endif
+
+// End of file