diff -r 000000000000 -r 72b543305e3a mmsengine/mmssettings/src/cmmssettings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmsengine/mmssettings/src/cmmssettings.cpp Thu Dec 17 08:44:11 2009 +0200 @@ -0,0 +1,749 @@ +// Copyright (c) 2005-2009 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: +// + + + +#include + + + +/** +Allocates and constructs an MMS settings object. + +Initialises all member data to their default values. + +@return +The newly constructed MMS settings object. +*/ +EXPORT_C CMmsSettings* CMmsSettings::NewL() + { + CMmsSettings* self = CMmsSettings::NewLC(); + CleanupStack::Pop(self); + return self; + } + +/** +Allocates and constructs an MMS settings object. + +Initialises all member data to their default values. + +@return +The newly constructed MMS settings object. +*/ +EXPORT_C CMmsSettings* CMmsSettings::NewLC() + { + CMmsSettings* self = new (ELeave) CMmsSettings(); + CleanupStack::PushL(self); + return self; + } + +/** +Constructor. +*/ +CMmsSettings::CMmsSettings() +: iMmsSettingsFlags(0), + iApplicationId(0), + iCreationMode(ECreationModeFree), + iAutomaticDownloadOptions(EAutomaticDownloadOff), + iValidityPeriod(0), + iMaxDownloadSize(0), + iMaxDownloadRetries(0), + iDownloadRetryInterval(0), + iMaxSendMsgSize(0), + iDeviceContentClass(0), + iMaxImageHeight(0), + iMaxImageWidth(0) + { + } + +/** +Destructor. +*/ +EXPORT_C CMmsSettings::~CMmsSettings() + { + delete iAddress; + iProxy.Close(); + iNapId.Close(); + } + +/** +Returns the Application Id. + +@return +Application Id +*/ +EXPORT_C TInt CMmsSettings::ApplicationID( ) const + { + return iApplicationId; + } + +/** +Sets the Application Id. + +@param aAppID +Application Id +*/ +EXPORT_C void CMmsSettings::SetApplicationID(const TInt aAppID) + { + iApplicationId = aAppID; + } + +/** +Returns the absolute MMS Proxy-Relay URL + +@return +The absolute MMS Proxy-Relay URL +*/ +EXPORT_C TPtrC CMmsSettings::Address( ) const + { + if (iAddress) + { + return TPtrC(*iAddress); + } + + return TPtrC(); + } + +/** +Sets the absolute MMS Proxy-Relay URL + +@param aAddress +The absolute MMS Proxy-Relay URL +*/ +EXPORT_C void CMmsSettings::SetAddressL(const TDesC& aAddress) + { + HBufC* newAddress = aAddress.AllocL(); + delete iAddress; + iAddress = newAddress; + } + +/** +Returns the Creation Mode. +Creation Mode specifies how an MMS client should allow insertion of media +items in an MMS. + +@see TCreationMode + +@return +The Creation Mode. +*/ +EXPORT_C TCreationMode CMmsSettings::CreationMode( ) const + { + return iCreationMode; + } + +/** +Sets the Creation Mode. +Creation Mode specifies how an MMS client should allow insertion of media +items in an MMS. + +@see TCreationMode + +@param aCreationMode +The Creation Mode. +*/ +EXPORT_C void CMmsSettings::SetCreationModeL(TCreationMode aCreationMode) + { + iCreationMode = aCreationMode; + } + +/** +Gets the number of Proxies stored in this object. + +@return +The number of Proxies stored. +*/ +EXPORT_C TInt CMmsSettings::ProxyCount( ) const + { + return iProxy.Count(); + } + +/** +Gets the Proxy at the specified index. + +@param aIndex +Index + +@return +Proxy +*/ +EXPORT_C TUid CMmsSettings::GetProxy(TInt aIndex) const + { + return iProxy[aIndex]; + } + +/** +Appends a Proxy to the list. + +@param aProxy +Proxy to be added to the list +*/ +EXPORT_C void CMmsSettings::AddProxyL(const TUid aProxy) + { + iProxy.AppendL(aProxy); + } + +/** +Removes a Proxy from the list. + +@param aIndex +Index +*/ +EXPORT_C void CMmsSettings::RemoveProxy(TInt aIndex) + { + iProxy.Remove(aIndex); + } + +/** +Gets the number of Nap Ids stored in this object. + +@return +The number of Nap Ids stored. +*/ +EXPORT_C TInt CMmsSettings::NapIdCount( ) const + { + return iNapId.Count(); + } + +/** +Gets the Nap Id at the specified index. + +@param aIndex +Index + +@return +Nap Id +*/ +EXPORT_C TUid CMmsSettings::GetNapId (TInt aIndex) const + { + return iNapId[aIndex]; + } + +/** +Appends a Nap Id to the list. + +@param aNapId +Nap Id to be added to the list +*/ +EXPORT_C void CMmsSettings::AddNapIdL(const TUid aNapId) + { + iNapId.AppendL(aNapId); + } + +/** +Removes a Nap Id from the list. + +@param aIndex +Index +*/ +EXPORT_C void CMmsSettings::RemoveNapId(TInt aIndex) + { + iNapId.Remove(aIndex); + } + +/** +Returns whether the Notification Receipt should be displayed immediately to the user. + +@return +Returns ETrue if the Notification Receipt should be displayed to the user. +*/ +EXPORT_C TBool CMmsSettings::DisplayNotification( ) const + { + return (iMmsSettingsFlags & ESmsSettingsDisplayNotification)==ESmsSettingsDisplayNotification; + } + +/** +Specifies whether the Notification Receipt should be displayed immediately to the user. + +@param aFlag +Specify ETrue if the Notification Receipt should be displayed to the user. +*/ +EXPORT_C void CMmsSettings::SetDisplayNotification(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsDisplayNotification) | (aFlag ? ESmsSettingsDisplayNotification : ESmsSettingsNoFlags); + } + +/** +Returns whether the message should be downloaded automatically. + +@see TAutomaticDownloadOptions + +@return +The automatic download option +*/ +EXPORT_C TAutomaticDownloadOptions CMmsSettings::AutomaticDownload( ) const + { + return iAutomaticDownloadOptions; + } + +/** +Sets the automatic download option + +@see TAutomaticDownloadOptions + +@param aDownloadOptions +Automatic download option to be set +*/ +EXPORT_C void CMmsSettings::SetAutomaticDownload(TAutomaticDownloadOptions aDownloadOptions) + { + iAutomaticDownloadOptions = aDownloadOptions; + } + +/** +Returns whether the user allowed to modify the creation mode or not. + +@return +Returns ETrue if the user is allowed to modify the creation mode. +*/ +EXPORT_C TBool CMmsSettings::CreationModeReadOnly( ) const + { + return (iMmsSettingsFlags & ESmsSettingsCreationModeReadOnly)==ESmsSettingsCreationModeReadOnly; + } + +/** +Specifies whether the user allowed to modify the creation mode or not. + +@param aFlag +Specify ETrue if the user is allowed to modify the creation mode. +*/ +EXPORT_C void CMmsSettings::SetCreationModeReadOnly(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsCreationModeReadOnly) | (aFlag ? ESmsSettingsCreationModeReadOnly : ESmsSettingsNoFlags); + } + +/** +Returns the Validity Period of the MMS message. + +@return +Validity Period of the message +*/ +EXPORT_C TInt CMmsSettings::ValidityPeriod( ) const + { + return iValidityPeriod; + } + +/** +Sets the Validity Period of the MMS message. + +@param aValidityPeriod +Validity Period of the message +*/ +EXPORT_C void CMmsSettings::SetValidityPeriod(const TInt aValidityPeriod) + { + iValidityPeriod = aValidityPeriod; + } + +/** +Returns the maximum size of the MMS message that can be downloaded automatically. + +@return +Maximum size of the message that can be downloaded automatically +*/ +EXPORT_C TInt CMmsSettings::MaxDownloadSize( ) const + { + return iMaxDownloadSize; + } + +/** +Sets the maximum size of the MMS message that can be downloaded automatically. + +@param aSize +Maximum size of the message that can be downloaded automatically +*/ +EXPORT_C void CMmsSettings::SetMaxDownloadSize (const TInt aSize) + { + iMaxDownloadSize = aSize; + } + +/** +Returns the Priority value of the MMS message. + +@return +Priority value +*/ +EXPORT_C TBool CMmsSettings::Priority( ) const + { + return (iMmsSettingsFlags & ESmsSettingsPriority)==ESmsSettingsPriority; + } + +/** +Sets the Priority value of the MMS message. + +@param aFlag +Priority value +*/ +EXPORT_C void CMmsSettings::SetPriority (TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsPriority) | (aFlag ? ESmsSettingsPriority : ESmsSettingsNoFlags); + } + +/** +Returns whether the user's number should be hidden when sending an MMS. + +@return +Returns ETrue if the user's number should be hidden. +*/ +EXPORT_C TBool CMmsSettings::HideNumber( ) const + { + return (iMmsSettingsFlags & ESmsSettingsHideNumber)==ESmsSettingsHideNumber; + } + +/** +Specifies whether the user's number should be hidden when sending an MMS. + +@param aFlag +Specify ETrue if the user's number should be hidden. +*/ +EXPORT_C void CMmsSettings::SetHideNumber(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsHideNumber) | (aFlag ? ESmsSettingsHideNumber : ESmsSettingsNoFlags); + } + +/** +Returns whether the Read Reports should be sent back to the network when the user receives an MMS. + +@return +Returns ETrue if the Read Reports should be sent back to the network +*/ +EXPORT_C TBool CMmsSettings::ReadReport( ) const + { + return (iMmsSettingsFlags & ESmsSettingsReadReport)==ESmsSettingsReadReport; + } + +/** +Specifies whether the Read Reports should be sent back to the network when the user receives an MMS. + +@param aFlag +Specify ETrue if the Read Reports should be sent back to the network +*/ +EXPORT_C void CMmsSettings::SetReadReport(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsReadReport) | (aFlag ? ESmsSettingsReadReport : ESmsSettingsNoFlags); + } + +/** +Returns whether the Delivery Reports should be sent back to the network when the user receives an MMS. + +@return +Returns ETrue if the Delivery Reports should be sent back to the network +*/ +EXPORT_C TBool CMmsSettings::DeliveryReport( ) const + { + return (iMmsSettingsFlags & ESmsSettingsDeliveryReport)==ESmsSettingsDeliveryReport; + } + +/** +Specifies whether the Delivery Reports should be sent back to the network when the user receives an MMS. + +@param aFlag +Specify ETrue if the Delivery Reports should be sent back to the network +*/ +EXPORT_C void CMmsSettings::SetDeliveryReport(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsDeliveryReport) | (aFlag ? ESmsSettingsDeliveryReport : ESmsSettingsNoFlags); + } + +/** +Returns whether the original MMS should be included when replying to an MMS + +@return +Returns ETrue if the original MMS should be included when replying to an MMS +*/ +EXPORT_C TBool CMmsSettings::ReplyWithHistory( ) const + { + return (iMmsSettingsFlags & ESmsSettingsReplyWithHistory)==ESmsSettingsReplyWithHistory; + } + +/** +Specifies whether the original MMS should be included when replying to an MMS + +@param aFlag +Specify ETrue if the original MMS should be included when replying to an MMS +*/ +EXPORT_C void CMmsSettings::SetReplyWithHistory (TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsReplyWithHistory) | (aFlag ? ESmsSettingsReplyWithHistory : ESmsSettingsNoFlags); + } + +/** +Returns the Allow Delivery Notification value + +@return +Allow Delivery Notification value +*/ +EXPORT_C TBool CMmsSettings::AllowDeliveryNotification( ) const + { + return (iMmsSettingsFlags & ESmsSettingsAllowDeliveryNotification)==ESmsSettingsAllowDeliveryNotification; + } + +/** +Sets the Allow Delivery Notification value + +@param aFlag +Allow Delivery Notification value +*/ +EXPORT_C void CMmsSettings::SetAllowDeliveryNotification(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsAllowDeliveryNotification) | (aFlag ? ESmsSettingsAllowDeliveryNotification : ESmsSettingsNoFlags); + } + +/** +Returns whether to filter advertisment MMS messages when downloading automatically. + +@return +Returns ETrue if advertisments should be filtered when downloading automatically. +*/ +EXPORT_C TBool CMmsSettings::FilterAdvertisements( ) const + { + return (iMmsSettingsFlags & ESmsSettingsFilterAdvertisements)==ESmsSettingsFilterAdvertisements; + } + +/** +Specifies whether to filter advertisment MMS messages when downloading automatically. + +@param aFlag +Specify ETrue if advertisments should be filtered when downloading automatically. +*/ +EXPORT_C void CMmsSettings::SetFilterAdvertisements(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsFilterAdvertisements) | (aFlag ? ESmsSettingsFilterAdvertisements : ESmsSettingsNoFlags); + } + +/** +Returns the maximum download retries of an MMS message + +@return +Maximum download retries +*/ +EXPORT_C TInt CMmsSettings::MaxDownloadRetries( ) const + { + return iMaxDownloadRetries; + } + +/** +Sets the maximum download retries of an MMS message + +@param aRetries +Maximum download retries +*/ +EXPORT_C void CMmsSettings::SetMaxDownloadRetries(const TInt aRetries) + { + iMaxDownloadRetries = aRetries; + } + +/** +Returns the download retry interval + +@return +Download retry interval +*/ +EXPORT_C TInt CMmsSettings::DownloadRetryInterval( ) const + { + return iDownloadRetryInterval; + } + +/** +Sets the download retry interval + +@param aInterval +Download retry interval +*/ +EXPORT_C void CMmsSettings::SetDownloadRetryInterval(const TInt aInterval) + { + iDownloadRetryInterval = aInterval; + } + +/** +Returns the maximum MMS message size that can be sent + +@return +The maximum MMS message size that can be sent +*/ +EXPORT_C TInt CMmsSettings::MaxSendMsgSize( ) const + { + return iMaxSendMsgSize; + } + +/** +Sets the maximum MMS message size that can be sent + +@param aSize +The maximum MMS message size that can be sent +*/ +EXPORT_C void CMmsSettings::SetMaxSendMsgSize (const TInt aSize) + { + iMaxSendMsgSize = aSize; + } + +/** +Returns whether to display MMS messages in full screen. + +@return +Returns ETrue if MMS messages should be displayed in full screen. +*/ +EXPORT_C TBool CMmsSettings::FullScreenPreview( ) const + { + return (iMmsSettingsFlags & ESmsSettingsFullScreenPreview)==ESmsSettingsFullScreenPreview; + } + +/** +Specifies whether to display MMS messages using full screen. + +@param aFlag +Specify ETrue if MMS messages should be displayed in full screen. +*/ +EXPORT_C void CMmsSettings::SetFullScreenPreview(TBool aFlag) + { + iMmsSettingsFlags = (iMmsSettingsFlags & ~ESmsSettingsFullScreenPreview) | (aFlag ? ESmsSettingsFullScreenPreview : ESmsSettingsNoFlags); + } + +/** +Returns the content class of the device + +@return +The content class of the device +*/ +EXPORT_C TInt CMmsSettings::DeviceContentClass( ) const + { + return iDeviceContentClass; + } + +/** +Sets the content class of the device + +@param aClass +The content class of the device +*/ +EXPORT_C void CMmsSettings::SetDeviceContentClass(const TInt aClass) + { + iDeviceContentClass = aClass; + } + +/** +Returns the maximum image height to be used when sending an MMS message + +@return +The maximum image height +*/ +EXPORT_C TInt CMmsSettings::MaxImageHeight( ) const + { + return iMaxImageHeight; + } + +/** +Sets the maximum image height to be used when sending an MMS message + +@param aHeight +The maximum image height +*/ +EXPORT_C void CMmsSettings::SetMaxImageHeight(const TInt aHeight) + { + iMaxImageHeight = aHeight; + } + +/** +Returns the maximum image width to be used when sending an MMS message + +@return +The maximum image width +*/ +EXPORT_C TInt CMmsSettings::MaxImageWidth( ) const + { + return iMaxImageWidth; + } + +/** +Sets the maximum image width to be used when sending an MMS message + +@param aWidth +The maximum image width +*/ +EXPORT_C void CMmsSettings::SetMaxImageWidth(const TInt aWidth) + { + iMaxImageWidth = aWidth; + } + +/** +Copies the MMS settings stored in the specified object into this object. + +@param aMmsSettings +The MMS Settings to be copied. +*/ +EXPORT_C void CMmsSettings::CopyL(const CMmsSettings& aMmsSettings) + { + iMmsSettingsFlags = aMmsSettings.iMmsSettingsFlags; + iApplicationId = aMmsSettings.iApplicationId; + + delete iAddress; + iAddress = aMmsSettings.Address().AllocL(); + + iCreationMode = aMmsSettings.iCreationMode; + + TInt count = aMmsSettings.ProxyCount(); + iProxy.Reset(); + for(TInt loop=0; loop < count; ++loop) + { + iProxy.Append(aMmsSettings.GetProxy(loop)); + } + + count = aMmsSettings.NapIdCount(); + iNapId.Reset(); + for(TInt loop=0; loop < count; ++loop) + { + iNapId.Append(aMmsSettings.GetNapId(loop)); + } + + iAutomaticDownloadOptions = aMmsSettings.iAutomaticDownloadOptions; + iValidityPeriod = aMmsSettings.iValidityPeriod; + iMaxDownloadSize = aMmsSettings.iMaxDownloadSize; + iMaxDownloadRetries = aMmsSettings.iMaxDownloadRetries; + iDownloadRetryInterval = aMmsSettings.iDownloadRetryInterval; + iMaxSendMsgSize = aMmsSettings.iMaxSendMsgSize; + iDeviceContentClass = aMmsSettings.iDeviceContentClass; + iMaxImageHeight = aMmsSettings.iMaxImageHeight; + iMaxImageWidth = aMmsSettings.iMaxImageWidth; + } + +void CMmsSettings::RemoveAllProxies() + { + iProxy.Reset(); + } + +void CMmsSettings::RemoveAllNapIds() + { + iNapId.Reset(); + } + +/** +Returns MMS settings flag + +@return +MMS settings flag +*/ +TUint32 CMmsSettings::MmsSettingsFlags() const + { + return iMmsSettingsFlags; + } + +/** +Sets MMS settings flag + +@param aMsgFlags +MMS settings flag +*/ +void CMmsSettings::SetMmsSettingsFlags(TUint32 aFlags) + { + iMmsSettingsFlags = aFlags; + }