diff -r f5050f1da672 -r 04becd199f91 javaextensions/wma/mms/src.s60/cmmsmessageinformation.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/javaextensions/wma/mms/src.s60/cmmsmessageinformation.cpp Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,445 @@ +/* +* Copyright (c) 2008 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: ?Description + * +*/ + + +// INCLUDE FILES +#include "logger.h" +#include "s60commonutils.h" +#include "cmmsmessageinformation.h" + +using namespace java::util; + +namespace java +{ +namespace wma +{ +const TInt KArrayGranularity = 2; + +// ================= MEMBER FUNCTIONS ======================= +//------------------------------------------------------------------------------ + +/******************************************************************************* + *************************** CMidMessageInformation ************************* + ******************************************************************************/ +/*------------------------------------------------------------------------------ + * CMidMessageInformation + * + *------------------------------------------------------------------------------ + */ +CMMSMessageInformation::CMMSMessageInformation() +{ + JELOG2(EWMA); +} + +/*------------------------------------------------------------------------------ + * NewL + * + *------------------------------------------------------------------------------ + */ +CMMSMessageInformation* CMMSMessageInformation::NewL(const TDesC& aFromAddress, + TInt64 aDate, const TDesC8& aApplicationID8, TMsvId aReceivedMsvId) +{ + JELOG2(EWMA); + CMMSMessageInformation *self = new(ELeave) CMMSMessageInformation; + CleanupStack::PushL(self); + self->ConstructL(aFromAddress, aDate, aApplicationID8, aReceivedMsvId); + CleanupStack::Pop(self); + return self; +} +/*------------------------------------------------------------------------------ + * ConstructL + * + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::ConstructL(const TDesC& aFromAddress,TInt64 aDate, + const TDesC8& aApplicationID8, + TMsvId aReceivedMsvId) +{ + JELOG2(EWMA); + S60CommonUtils::ConvertWiderToNarrowL(aFromAddress, (TDesC8*&)mFromAddress8); + S60CommonUtils::CopyNarrowL(aApplicationID8, (TDesC8*&) mApplicationID8); + mDateTime = aDate; + mMessagePriority = EMmsPriorityHigh; + mReceivedMsvId = aReceivedMsvId; + mAttachmentArray + = new(ELeave) CArrayPtrSeg (KArrayGranularity); + mToAddressArray = new(ELeave) CArrayPtrSeg (KArrayGranularity); + mCcAddressArray = new(ELeave) CArrayPtrSeg (1); + mBccAddressArray = new(ELeave) CArrayPtrSeg (1); +} +/*------------------------------------------------------------------------------ + * ~CMidMessageInformation + * This will delete the following + * iFromAddress8; // HBufC* + * iApplicationID8; // HBufC* + * iReplyToApplicationID8; + * iMessageSubject8; //HBufC* + * iToAddressArray Arrays just not their contents + * iBccAddressArray Arrays just not their contents + * iCcAddressArray Arrays just not their contents + *------------------------------------------------------------------------------ + */ +CMMSMessageInformation::~CMMSMessageInformation() +{ + JELOG2(EWMA); + delete mFromAddress8; + mFromAddress8 = NULL; // HBufC* + delete mApplicationID8; + mApplicationID8 = NULL; // HBufC* + delete mReplyToApplicationID8; + mReplyToApplicationID8 = NULL; + delete mMessageSubject8; + mMessageSubject8 = NULL; //HBufC* + // + mDateTime = 0; + mMessageSize = 0; + + if (mAttachmentArray) + { + mAttachmentArray->ResetAndDestroy(); + delete mAttachmentArray; + mAttachmentArray = NULL; + } + + if (mToAddressArray) + { + mToAddressArray->ResetAndDestroy(); + delete mToAddressArray; + mToAddressArray = NULL; + } + if (mBccAddressArray) + { + mBccAddressArray->ResetAndDestroy(); + delete mBccAddressArray; + mBccAddressArray = NULL; + } + if (mCcAddressArray) + { + mCcAddressArray->ResetAndDestroy(); + delete mCcAddressArray; + mCcAddressArray = NULL; + } +} +/*------------------------------------------------------------------------------ + * Attachment + * return null if there is not more attachement + *------------------------------------------------------------------------------ + */ +CMMSMessageAttachment& CMMSMessageInformation::Attachment(TInt aIndex) +{ + JELOG2(EWMA); + CMMSMessageAttachment* attachment = NULL; + if (aIndex >= 0 && aIndex < mAttachmentArray->Count()) + attachment = mAttachmentArray->At(aIndex); + return *attachment; +} +/*------------------------------------------------------------------------------ + * InsertAttachmentL + * Insert Attachment, Attachment will be applended in the array + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::InsertAttachmentL( + CMMSMessageAttachment* aMessageAttachment) +{ + JELOG2(EWMA); + mAttachmentArray->AppendL(aMessageAttachment); +} +/*------------------------------------------------------------------------------ + * SetMessageSubjectL + * set the subject of the message + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetMessageSubjectL(TDesC16& aSubject) +{ + JELOG2(EWMA); + delete mMessageSubject8; + mMessageSubject8 = NULL; + S60CommonUtils::ConvertWiderToNarrowL(aSubject, (TDesC8*&) mMessageSubject8); +} +/*------------------------------------------------------------------------------ + * SetMessageSubjectL + * set the subject of the message + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetMessageSubjectL(TDesC8& aSubject) +{ + JELOG2(EWMA); + delete mMessageSubject8; + mMessageSubject8 = NULL; + S60CommonUtils::CopyNarrowL(aSubject, (TDesC8*&) mMessageSubject8); +} +/*------------------------------------------------------------------------------ + * MessageFromAddress + * Get from Message Address + *------------------------------------------------------------------------------ + */ +TDesC8& CMMSMessageInformation::MessageFromAddressL() +{ + JELOG2(EWMA); + return *mFromAddress8; +} +/*------------------------------------------------------------------------------ + * SetApplicationIdL(const TDesC8& aAppId) + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetApplicationIdL(const TDesC8& aAppId) +{ + JELOG2(EWMA); + delete mApplicationID8; + mApplicationID8 = NULL; + S60CommonUtils::CopyNarrowL(aAppId, (TDesC8*&) mApplicationID8); +} +/*------------------------------------------------------------------------------ + * SetApplicationIdL(const TDesC16& aAppId) + * + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetApplicationIdL(const TDesC16& aAppId) +{ + JELOG2(EWMA); + delete mApplicationID8; + mApplicationID8 = NULL; + S60CommonUtils::ConvertWiderToNarrowL(aAppId, (TDesC8*&) mApplicationID8); +} +/*------------------------------------------------------------------------------ + * TDesC8& ApplicationID + * GetApplicationID + * + *------------------------------------------------------------------------------ + */ +TDesC8& CMMSMessageInformation::ApplicationIdL() +{ + JELOG2(EWMA); + return *mApplicationID8; +} +/*------------------------------------------------------------------------------ + * SetReplyToApplicationIdL(const TDesC16& aReplyAppId) + * Set reply AppId + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetReplyToApplicationIdL( + const TDesC16& aReplyAppId) +{ + JELOG2(EWMA); + delete mReplyToApplicationID8; + mReplyToApplicationID8 = NULL; + S60CommonUtils::ConvertWiderToNarrowL(aReplyAppId, + (TDesC8*&) mReplyToApplicationID8); +} +/*------------------------------------------------------------------------------ + * SetApplicationIdL(const TDesC8& aAppId) + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetReplyToApplicationIdL( + const TDesC8& aReplyToAppId) +{ + JELOG2(EWMA); + delete mReplyToApplicationID8; + mReplyToApplicationID8 = NULL; + S60CommonUtils::CopyNarrowL(aReplyToAppId, (TDesC8*&)mReplyToApplicationID8); +} +/*------------------------------------------------------------------------------ + * TDesC8& ReplyToApplicationIdL + *------------------------------------------------------------------------------ + */ +TDesC8& CMMSMessageInformation::ReplyToApplicationIdL() +{ + JELOG2(EWMA); + return *mReplyToApplicationID8; +} +/*------------------------------------------------------------------------------ + * TDesC8& MessageSubject + * Get the message subject + *------------------------------------------------------------------------------ + */ +TDesC8& CMMSMessageInformation::MessageSubjectL() const +{ + JELOG2(EWMA); + return *mMessageSubject8; +} +/*------------------------------------------------------------------------------ + * TInt SetMessageSize + * Set the message size + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetMessageSize(TInt aSize) +{ + JELOG2(EWMA); + mMessageSize = aSize; +} +/*------------------------------------------------------------------------------ + * TInt AddressesCount + *------------------------------------------------------------------------------ + */ +TInt CMMSMessageInformation::AddressesCount( + TMsvRecipientTypeValues aAddressType) +{ + JELOG2(EWMA); + TInt count = 0; + switch (aAddressType) + { + case EMsvRecipientTo: + { + count = mToAddressArray->Count(); + break; + } + case EMsvRecipientCc: + { + count = mCcAddressArray->Count(); + break; + } + case EMsvRecipientBcc: + { + count = mBccAddressArray->Count(); + break; + } + default: + break; + } + return count; +} +/*------------------------------------------------------------------------------ + * TDesC& MessageAddress + * return type is TDesC + *------------------------------------------------------------------------------ + */ +TDesC& CMMSMessageInformation::MessageAddressL( + TMsvRecipientTypeValues aAddressType, TInt aIndex) +{ + JELOG2(EWMA); + TDesC* address = NULL; + + if (aIndex < 0) // aIndex is less then zero return null; + return *address; + + switch (aAddressType) + { + case EMsvRecipientTo: + { + if (aIndex < mToAddressArray->Count()) + address = mToAddressArray->At(aIndex); + break; + } + case EMsvRecipientCc: + { + if (aIndex < mCcAddressArray->Count()) + address = mCcAddressArray->At(aIndex); + break; + } + case EMsvRecipientBcc: + { + if (aIndex < mBccAddressArray->Count()) + address = mBccAddressArray->At(aIndex); + break; + } + default: + break; + } + return *address; +} + +/*------------------------------------------------------------------------------ + * AddAddressL(TMsvRecipientTypeValues aAddressType, TDesC8& aAddress8) + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::AddAddressL(TMsvRecipientTypeValues aAddressType, + TDesC8& aAddress8) +{ + JELOG2(EWMA); + TDesC16* address = NULL; + S60CommonUtils::ConvertNarrowToWiderLC(aAddress8, address); + AddAddressL(aAddressType, address); + CleanupStack::Pop(address); +} + +/*------------------------------------------------------------------------------ + * AddAddressL(TMsvRecipientTypeValues aAddressType, TDesC16& aAddress) + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::AddAddressL(TMsvRecipientTypeValues aAddressType, + TDesC16* aAddress) +{ + JELOG2(EWMA); + if (!aAddress) + return; + + switch (aAddressType) + { + case EMsvRecipientTo: + { + AddToAddressL(aAddress); + break; + } + case EMsvRecipientCc: + { + AddCcAddressL(aAddress); + break; + } + case EMsvRecipientBcc: + { + AddBccAddressL(aAddress); + break; + } + default: + break; + } +} +/*------------------------------------------------------------------------------ + * AddToAddressL + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::AddToAddressL(TDesC* aAddress) +{ + JELOG2(EWMA); + if (aAddress) + mToAddressArray->AppendL(aAddress); +} +/*------------------------------------------------------------------------------ + * AddCcAddressL + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::AddCcAddressL(TDesC* aAddress) +{ + JELOG2(EWMA); + if (aAddress) + mCcAddressArray->AppendL(aAddress); +} +/*------------------------------------------------------------------------------ + * + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::AddBccAddressL(TDesC* aAddress) +{ + JELOG2(EWMA); + if (aAddress) + mBccAddressArray->AppendL(aAddress); +} +/*------------------------------------------------------------------------------ + * SetMessagePriority + * + *------------------------------------------------------------------------------ + */ +void CMMSMessageInformation::SetMessagePriority(TMmsMessagePriority aPriority) +{ + JELOG2(EWMA); + mMessagePriority = aPriority; +} + +// End of File +} //namespace wma +} //namespace java +