diff -r 6465d5bb863a -r 13e71d907dc3 gssettingsuis/Gs/GSNetworkPlugin/Inc/GSNetworkPluginModel.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gssettingsuis/Gs/GSNetworkPlugin/Inc/GSNetworkPluginModel.h Thu Nov 04 13:38:47 2010 +0800 @@ -0,0 +1,289 @@ +/* +* Copyright (c) 2006 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: Network Settings model. +* +*/ + + +#ifndef GSNETWORKPLUGINMODEL_H +#define GSNETWORKPLUGINMODEL_H + +#include +#include +#include +#include +#include +#include + +#include "GSNetworkPluginContainer.h" +#include "GsNetworkPlugin.hrh" + +// CONSTANTS + +const TUint32 KGSNetworkModeCapsNotUpdated = KMaxTUint32; + +// Used only for debugging. Init value for network mode debug strings. +const TInt KGSNetworkModeDebugStrLen = 50; + + +// Panic codes for used in this compilation unit +enum TGSTelPluginModelPanicCodes + { + EGSTelPluinModelPanicNullPtr = 1 + }; +// MACROS + +// DATA TYPES + +// FUNCTION PROTOTYPES + +// FORWARD DECLARATIONS +class MPsetNetworkModeObserver; +class CPsetContainer; +class CGSNetworkPluginContainer; +class CGSNetworkPlugin; + +// CLASS DEFINITION +/** +* CGSNetworkPluginModel is the model class of GS network plugin. +* It provides functions to get and set setting values. +* @lib GSNetworkPlugin.lib +* @since Series 60_3.1 + +*/ +class CGSNetworkPluginModel : public CBase, + private MPsetNetworkModeObserver + { + public: // Constructor and destructor + + /** + * Overloaded constructor meant to be used from container + */ + static CGSNetworkPluginModel* NewL( + CGSNetworkPluginContainer* aContainer, + CGSNetworkPlugin* aPlugin ); + + /** + * Destructor + */ + ~CGSNetworkPluginModel(); + + public: // new ones + /** + * Gets CSP status + * + * @return ETrue: CSP is set + * EFalse: CSP is not set + */ + TBool GetCSPStatus(); + + /** + * Sets CSP Active + * @param aValue TBool + * @return ETrue: CSP is set + * EFalse: CSP is not set + */ + void SetCSPActiveL( TBool aValue ); + + /** + * Get the network mode status from Shared data. This value is used + * to display/hide the "network mode UI" list item under network + * folder. Currently, this value is ONLY read and not written. + * @return ETrue if the value is 1 in SD. + */ + TBool IsNetworkModeVisible(); + + /** + * Returns if CSP setting is supported + * @param aSettingNumber TInt + * @return ETrue: CSP is supported + * EFalse: CSP is not supported + */ + TBool IsSettingSupported( TInt aSettingNumber ); + + /* + * Returns MCN value from shared data. + * @param aId value of shared data key + * @return ETrue: no errors + * EFalse: an error has occurred + */ + TBool GetMCNSettingValue( TInt& aId ); + + /* + * Sets MCN value to shared data. + * @param aId value of shared data key + * @return ETrue: no errors + * EFalse: an error has occurred + */ + TBool SetMCNSettingValue( TInt& aId ); + + /* + * Gets the supported network mode list from shared data. + * @return the bit-masked value from shared data + */ + TInt GetSupportedNetworksL(); + + /** + * Check if graphical network list is supported. + * This is handled using GS local variation + * @return ETrue if supported. + */ + TBool GraphicalNetworkListSupportedL(); + + /** + * Return local variation value for automatic network search + * support. Local key = EGSConfigNoAutoToAutoNetworkSearch + * See GeneralSettingsVariant.hrh for details + * @return local variation value + */ + TBool AutomaticNetworkSearchSupportedL(); + + + /** + * Creates phone settings engine. + * @param aContainer Container object as reference + */ + void CreatePhoneSettingsEngineL(); + + /** + * StartAsynGetCurrentNetworkModeSelectionL + */ + void StartAsynGetCurrentNetworkModeSelectionL(); + + /** + * StartSynGetCurrentNetworkModeSelectionL + */ + void StartSynGetCurrentNetworkModeSelectionL(); + + /** + * GetNetworkSelectionMode + */ + MPsetNetworkSelect::TSelectMode GetNetworkSelectionMode(); + + /** + * See iNetworkMode. + * @return TUint32 Current network mode value, RMmCustomAPI::KCapsNetworkModeUmts etc... + */ + TUint32 GetNetworkMode(); + + /** + * SetNetworkModeL + */ + void SetNetworkModeL( TUint32 aNetworkMode ); + + /** + * Prints model state to debug output in case of debug build. + */ + void PrintState(); + + /** + * Used only in debug mode: verifies network state with the UI selection. + * For debugging purposes only. + */ + void CheckState( TGSNetworkModeItems aMode ); + + /** + * Get net work mode change key value. + * @return the net work mode change key value + */ + TInt GetPsmNetworkModeChangeL(); + + + TBool IsCallActive(); + + private: // Private constructors + + /** + * Default C++ contructor + */ + CGSNetworkPluginModel( CGSNetworkPluginContainer* aContainer, + CGSNetworkPlugin* aPlugin ); + + /** + * Symbian OS default constructor + * @return void + */ + void ConstructL(); + + void ConstructBaseItemsL(); + + /** + * Initialize CenRep keys used in this class + */ + void InitializeCentralRepositoryL(); + + /** + * Un-initialize CenRep keys used in this class + */ + void UninitializeCentralRepository(); + + private: // from base class MPsetNetworkModeObserver + + /** + * @@see MPsetNetworkModeObserver::HandleNetworkSystemModeEventsL. + * @since 2.6 + */ + void HandleNetworkSystemModeEventsL( + const MPsetNetworkModeObserver::TServiceRequest aRequest, + const TUint32 aNetworkModeCaps ); + + + /** + * @@see MPsetNetworkModeObserver::HandleNetworkErrorL. + * @since 2.6 + */ + void HandleNetworkErrorL( + const MPsetNetworkModeObserver::TServiceRequest aRequest, + const TInt aError ); + + private: + // Central repository objects + CRepository* iNetworkRepository; + CRepository* iGSVariationRepository; + CPsetCustomerServiceProfile* iCSP; //check if CSP is active + TInt iLocalVariationValues; //local variated constants + + // PhoneSettings engine object for network mode + CPsetNetwork* iPhoneSettingsEngine; + CPsetContainer* iSettingsContainer; + + // Current network mode value from RMmCustomAPI::TNetworkModeCaps. + // enum RMmCustomAPI::TNetworkModeCaps + // { + // KkNetworkModeGsm = 0x01, + // KCapsNetworkModeUmts = 0x02, + // KCapsNetworkModeDual = 0x04 + // }; + // and in addition: KGSNetworkModeCapsNotUpdated + // + // Stores value aNetworkModeCaps from: + // MPsetNetworkModeObserver::HandleNetworkSystemModeEventsL(..., TUint32 aNetworkModeCaps ) + // + TUint32 iNetworkMode; + + // Temporarily value of the requested network mode. Stores requested + // mode which is updated to iNetworkMode in case request succeeds and + // HandleNetworkSystemModeEventsL is called. + TUint32 iRequestedNetworkMode; + + // Pointer for communicating with container. Not owned. + CGSNetworkPluginContainer* iContainer; + + // Reference to network plugin. Not owned. + CGSNetworkPlugin* iPlugin; + }; + +#endif //GSNETWORKPLUGINMODEL_H + +// End of File