--- /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 <cmmssettings.h>
+
+
+
+/**
+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;
+ }