diff -r 48060abbbeaf -r b3cee849fa46 creator/engine/inc/creator_message.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/creator/engine/inc/creator_message.h Tue Aug 31 15:15:20 2010 +0300 @@ -0,0 +1,197 @@ +/* +* Copyright (c) 2010 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: +* +*/ + + + + + +#ifndef __CREATORMESSAGES_H__ +#define __CREATORMESSAGES_H__ + +#include "engine.h" +#include "creator_modulebase.h" + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +class CCreatorEngine; +class CMessagesParameters; +class CAsyncWaiter; + +enum TMessageType + { + ESMS = 0, + EMMS, + EAMS, + EEmail, + ESmartMessage, + EIrMessage, + EBTMessage + }; + +enum TFolderType + { + EInbox = 0, + EDrafts, + EOutbox, + ESent, + EMailbox + }; + +class CRecipientInfo : public CBase +{ +public: + CRecipientInfo(); + virtual ~CRecipientInfo(); + + void SetPhoneNumber(HBufC* aPhone); + void SetEmailAddress(HBufC* aEmail); + const HBufC* PhoneNumber() const; + const HBufC* EmailAddress() const; + +private: + HBufC* iPhoneNumber; + HBufC* iEmailAddress; +}; + +class CCreatorMessages : public CCreatorModuleBase, public MMsvSessionObserver + { +enum TCreatorMessagesStatus{ + ECreatorMessagesDelete = 0, + ECreatorMessagesStart, + ECreatorMessagesMessageType, + ECreatorMessagesFolderType, + ECreatorMessagesMessageStatus, + ECreatorMessagesCharsInBody, + ECreatorMessagesAttachment, +}; + +public: + static CCreatorMessages* NewL(CCreatorEngine* aEngine); + static CCreatorMessages* NewLC(CCreatorEngine* aEngine); + ~CCreatorMessages(); + +private: + CCreatorMessages(); + void ConstructL(CCreatorEngine* aEngine); // from MCreatorModuleBase + + TInt CreateSMSEntryL(const CMessagesParameters& parameters); + TInt CreateMMSEntryL(const CMessagesParameters& parameters); + TInt CreateAMSEntryL(const CMessagesParameters& parameters); + TInt CreateEmailEntryL(const CMessagesParameters& parameters); + TInt CreateSmartMessageEntryL(const CMessagesParameters& parameters); + TInt CreateObexEntryL(TUid aMtm, const CMessagesParameters& parameters); + void HandleAttachementsL(const CMessagesParameters& parameters, CMsvStore* store, TInt err ); + void HandleAttachementL(CMsvStore* store, TInt err, TFileName& sourceFileName ); + + CMsvEntrySelection* DoGetListOfAccountsL(CMsvSession& aSession, TUid aMtm, TBool aAlwaysListHidden); + TMsvId DefaultServiceForMTML(CMsvSession& aSession, TUid aMtm, TBool aFindFirstServiceIfNoDefault); + + void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); // from MMsvSessionObserver + + void AddRecipientsL(CBaseMtm& aMtm, const CMessagesParameters& aParameters, TBool aUseEmailAddress ); + void GetLinkedAddressesL( RPointerArray& aAddressArray, + const RArray& aLinkIds, + TBool aUseEmailAddress, + TInt aNumOfExistingAddresses ); + + void GetAllRecipientsL(RPointerArray& aRecipientArray, const CMessagesParameters& aParameters, TBool aUseEmailAddress ); + void SetSenderToEntryDetailsL(TMsvEntry& aMsgEntry, const CMessagesParameters& aParameters, TBool aUseEmailAddress); + void SetRecipientToEntryDetailsL(TMsvEntry& aMsgEntry, const CMessagesParameters& aParameters, TBool aUseEmailAddress); + void AddSenderToMtmAddresseeL(CBaseMtm& aMtm, const CMessagesParameters& aParameters, TBool aUseEmailAddress ); + void AddMtmSenderL(CMmsClientMtm& aMtm, const CMessagesParameters& aParameters, TBool aUseEmailAddress ); + void GetSendersL(RPointerArray& aSenderArray, const CMessagesParameters& aParameters, TBool aUseEmailAddress, TInt aMaxNum ); + void DeleteAllMessagesL( TBool aOnlyCreatedWithCreator ); + void DeleteAllFromFolderL( const TMsvId aContext, CMsvSession* aSession, CSmsClientMtm* aClientMtm, TBool aOnlyCreatedWithCreator = EFalse ); + +public: + TBool AskDataFromUserL( TInt aCommand ); // from MCreatorModuleBase + void QueryDialogClosedL(TBool aPositiveAction, TInt aUserData); //from MUIObserver + + TInt CreateMessageEntryL(CMessagesParameters *aParameters, TBool aTakeUserGivenParameters=EFalse); + TInt CreateRandomMessageEntryL(TInt aCommand); + void DeleteAllL(); + void DeleteAllCreatedByCreatorL(); + +private: + CMessagesParameters* iParameters; + TMessageType iMessageType; + TFolderType iFolderType; + TInt iDefinedMessageLength; + CArrayFixFlat* iAttachments; + //RPointerArray iAttachmentPaths; + TBool iCreateAsUnread; + TMsvId iUserSelectedMailbox; + HBufC* iTmpPhoneNumber; + HBufC* iTmpEmail; + RArray iEntryIds; // TMsvId ( == TInt32 ) TMsvEntry::Id() + CAsyncWaiter* iWaiter; + RPointerArray iSenderArray; + RPointerArray iRecipientArray; +public: + }; + + +class CMessagesParameters : public CCreatorModuleBaseParameters + { +public: + TMessageType iMessageType; + TFolderType iFolderType; + HBufC* iSenderAddress; + HBufC* iRecipientAddress; + RPointerArray iRecipientAddressArray; + HBufC* iMessageSubject; + HBufC* iMessageBodyText; + CArrayFixFlat* iAttachments; + RPointerArray iAttachmentPaths; + TInt iDefinedMessageLength; + TUid iBIOMessageType; + TBool iCreateAsUnread; + RArray iRecipientLinkIds; + RArray iSenderLinkIds; + TInt iNumberOfExistingRecipients; + TInt iNumberOfExistingSenders; + +public: + CMessagesParameters(); + ~CMessagesParameters(); + }; + + + +#endif // __CREATORMESSAGES_H__