diff -r 000000000000 -r 72b543305e3a messagingappbase/mce/inc/MceUtils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/messagingappbase/mce/inc/MceUtils.h Thu Dec 17 08:44:11 2009 +0200 @@ -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 // TMsvId +#include // KMsvNullIndexEntryIdValue +#include // THumanReadableName + +#include +#include // MImumInHealthServices +#include + +// 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