mmsengine/mmssettings/src/cmmssettings.cpp
changeset 0 72b543305e3a
child 26 ebe688cedc25
--- /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;
+	}