diff -r ac5daea24fb0 -r 9f263f780e41 apengine/apsettingshandlerui/inc/ApSettingsModel.h --- a/apengine/apsettingshandlerui/inc/ApSettingsModel.h Wed Oct 27 17:43:56 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,699 +0,0 @@ -/* -* Copyright (c) 2002 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: Declaration of class CApSettingsModel. -* -*/ - - -#ifndef APSETTINGS_MODEL_H -#define APSETTINGS_MODEL_H - -// INCLUDE FILES -#include -#include -#include - -#include - -#include //for protection of settings - - -// FORWARD DECLARATION -class CActiveApDb; -class CApListItem; -class CApListItemList; -class CApAccessPointItem; -class CApDataHandler; -class CApSelect; -class CAknWaitDialog; -class CApSettingsDeleteOperation; -class CApNetworkItemList; -class CFeatureManagerWrapper; -class CVpnApEngine; -class CEikonEnv; - -class CWEPSecuritySettings; - -class CWPASecuritySettings; - - - -/** -* A structure to hold filtering parameters -* First, it is possible to specify which ISP-type we are looking for. -* The possible values are: -*
-* KEApIspTypeInternetOnly: Filter allows only access points that are -* capable of only internet access. -*
-* KEApIspTypeWAPOnly: Filter allows only access points that are -* capable of only WAP access. -*
-* KEApIspTypeInternetAndWAP:Filter allows only access points that are -* capable of internet AND WAP access. -*
-* KEApIspTypeWAPMandatory: Filter allows only access points that are -* capable of WAP access AND contain mandatory -* WAP settings. -*
-* KEApIspTypeAll: No filtering is done for the isp-type, -* all types of access points are shown. -*
-* It is possible to combine them by simply adding/or-ing together the values, -* filtering will be done in such a way that only access points with the -* listed ISP-types will be shown. -* Second filtering possibility (aBearerFilter) is the desired bearer type. -* The possible values are the values of the TApBearerType enum type and their -* combinations, as in case of the ISP type. -* The ordering of the list can be specified with the aSortType parameter. -* It can have the following values: -* KEApSortUidAscending: The sorting is done according to the ID -* of the access points in ascending order. -* KEApSortUidDescending: The sorting is done according to the ID -* of the access points in descending order. -* KEApSortNameAscending: The sorting is done according to the name -* of the access points in ascending order. -* KEApSortNameDescending: The sorting is done according to the name -* of the access points in descending order. -*/ -typedef struct - { - TInt iIspFilter; - TInt iBearerFilter; - TInt iSortType; - }TApSettingsParams; - - - - - - - -// CLASS DECLARATION - -/** -* Model for the access point settings ui. -*/ -NONSHARABLE_CLASS( CApSettingsModel ) : public CBase - { - public: // Construct / destruct - - /** - * Two-phased constructor. Leaves on failure. - * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP:Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain - * mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, all - * types of access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. - * Second filtering possibility (aBearerFilter) is the desired bearer - * type. The possible values are the values of the TApBearerType enum - * type and their combinations, as in case of the ISP type. - * The ordering of the list can be specified with the aSortType - * parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID - * of the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID - * of the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name - * of the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name - * of the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aVariant The local variant value - * @param aIncludeEasyWlan a TBool indicating whether to include the - * EasyWlan AP in the list or not - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed listbox. - */ - static CApSettingsModel* NewL( - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TVpnFilterType aVpnFilterType, - TInt aVariant, - TBool aIncludeEasyWlan, - TBool aNoEdit - ); - - - /** - * Two-phased constructor. Leaves on failure. - * The following three parameters specify the filtering and ordering - * criteria for the selection list creation. First, it is possible to - * specify which ISP-type we are looking for. The possible values are: - *
- * KEApIspTypeInternetOnly: Filter allows only access points that are - * capable of only internet access. - *
- * KEApIspTypeWAPOnly: Filter allows only access points that are - * capable of only WAP access. - *
- * KEApIspTypeInternetAndWAP:Filter allows only access points that are - * capable of internet AND WAP access. - *
- * KEApIspTypeWAPMandatory: Filter allows only access points that are - * capable of WAP access AND contain - * mandatory WAP settings. - *
- * KEApIspTypeAll: No filtering is done for the isp-type, all - * types of access points are shown. - *
- * It is possible to combine them by simply adding/or-ing together the - * values, filtering will be done in such a way that only access points - * with the listed ISP-types will be shown. - * Second filtering possibility (aBearerFilter) is the desired bearer - * type. The possible values are the values of the TApBearerType enum - * type and their combinations, as in case of the ISP type. - * The ordering of the list can be specified with the aSortType - * parameter. It can have the following values: - * KEApSortUidAscending: The sorting is done according to the ID - * of the access points in ascending order. - * KEApSortUidDescending: The sorting is done according to the ID - * of the access points in descending order. - * KEApSortNameAscending: The sorting is done according to the name - * of the access points in ascending order. - * KEApSortNameDescending: The sorting is done according to the name - * of the access points in descending order. - * Caution! The ordering values can not be combined! - * @param aDb The database to work on - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aVariant The local variant value - * @param aIncludeEasyWlan a TBool indicating whether to include the - * EasyWlan AP in the list or not - * @param aNoEdit Gives wether editing is allowed or not - * @return The constructed listbox model. - */ - static CApSettingsModel* NewL( - CActiveApDb& aDb, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TVpnFilterType aVpnFilterType, - TInt aVariant, - TBool aIncludeEasyWlan, - TBool aNoEdit - ); - - /** - * Destructor. - */ - virtual ~CApSettingsModel(); - - - protected: - /** - * Constructor. - * @param aIspTypeFilter Filtering criteria on ISP type - * @param aBearerFilter Filtering criteria on bearer type - * @param aSortType Specifies the sort order to use. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aVariant The variant - * @param aVpnFilterType a TVpnFilterType representing the possible - * additional VPN filtering. - * @param aVariant The local variant value - * @param aIncludeEasyWlan a TBool indicating whether to include the - * EasyWlan AP in the list or not - * @param aNoEdit Gives wether editing is allowed or not - */ - CApSettingsModel( - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TInt aVariant, - TVpnFilterType aVpnFilterType, - TBool aIncludeEasyWlan, - TBool aNoEdit - ); - - - /** - * Second phase constructor. Leaves on failure. - * @param aDb Database to use if any, NULL otherwise. - */ - virtual void ConstructL( CActiveApDb* aDb ); - - - public: - /** - * Returns the database object - */ - CActiveApDb* Database(); - - - /** - * Gets the APs corresponding to the filtering criteria, - * already ordered. - * @param aFailedLocked a boolean indicating if the operation - * had failed because the DB was locked - * @param aList a reference to the list of APs. - * The passed list will be erased, elements destroyed, - * new elements created in it. The list owns the created elements - * and the caller maintaines ownership of the list. - * @param aIspFilter The isp filter to be used - * @param aBearerFilter The bearer filter to be used - * @param aSortType The ordering to be used. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @return the number of items in the list. - */ - TInt AllListItemDataL - ( - TBool& aFailedLocked, - CApListItemList& aList, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType - ); - - - /** - * Gets the APs corresponding to the filtering criteria, - * already ordered. - * @param aFailedLocked a boolean indicating if the operation - * had failed because the DB was locked - * @param aList a reference to the list of APs. - * The passed list will be erased, elements destroyed, - * new elements created in it. The list owns the created elements - * and the caller maintaines ownership of the list. - * @param aIspFilter The isp filter to be used - * @param aBearerFilter The bearer filter to be used - * @param aSortType The ordering to be used. - * @param aReqIpvType Specifies whether the caller would like to - * have IPv4, IPv6 or both access points. If it is IPv6 or Both, - * in case of IPv6 support is available as a feature, it will be - * supported. If IPv6 feature is not supported by the phone, it - * simply defaults to the normal IPv4 version. - * If it is IPv4, it uses the default IPv4 version independently - * from IPv6 feature beeing available or not. - * @param aVpnFilterType - * @param aIncludeEasyWlan a TBool indicating whether to include the - * EasyWlan AP in the list or not - * @return the number of items in the list. - */ - TInt AllListItemDataL - ( - TBool& aFailedLocked, - CApListItemList& aList, - TInt aIspFilter, - TInt aBearerFilter, - TInt aSortType, - TInt aReqIpvType, - TVpnFilterType aVpnFilterType, - TBool aIncludeEasyWlan - ); - - - /** - * Gets the APs corresponding to the filtering criteria, - * already ordered. - * @param aFailedLocked a boolean indicating if the operation - * had failed because the DB was locked - * @param aList a reference to the list of APs. - * The passed list will be erased, elements destroyed, - * new elements created in it. The list owns the created elements - * and the caller maintaines ownership of the list. - * @return the number of items in the list. - */ - TInt AllListItemDataL( TBool& aFailedLocked, CApListItemList& aList ); - - - /** - * Reads up one access point data - * @param aUid The UID of the access point to read - * @param aApItem A reference to a CApAccessPointItem to hold the - * access point item readed from the database - */ - void AccessPointDataL( TUint32 aUid, CApAccessPointItem& aApItem ); - - - /** - * Updates one access point item in the database - * @param aApItem A reference to a CApAccessPointItem holding the - * access point item to be updated in the database - */ - TBool UpdateAccessPointDataL( CApAccessPointItem& aApItem ); - - - /** - * Returns a pointer to the CApDataHandler object - */ - CApDataHandler* DataHandler(); - - - /** - * Returns a pointer to the CApUtils object - */ - CApUtils* ApUtils(); - - - /** - * Sets the filtering parameters for the model - * @param aParams The filtering parameters to be used - */ - void SetParams( TApSettingsParams aParams ); - - - /** - * Gets the filtering parameters of the model - * @return The used filtering parameters - */ - TApSettingsParams Params(); - - - /** - * Returns a pointer to the VPN engine object - */ - CVpnApEngine* VpnEngine(); - - - /** - * Launches help - */ - void LaunchHelpL(); - - /** - * Deletes an access point specified by its UID - * @param aUid The UID of the access point to delete. - */ - void RemoveApL( TUint32 aUid ); - - - /** - * Starts a transaction - * @param aWrite A boolean indicating whether read or write lock is - * needed. - * @param aShowNote A boolean indicating whether to show - * 'Cannot access database' note or not if DB is locked - * @param aRetry A boolean indicating whether to retry or not - * if DB is locked - * @param aLFFSChecking Whether low disk space is checked or not - * @return TTransactionResult containing whther it is our - * own transaction or not or it has failed with KErrLocked - */ - TTransactionResult StartTransactionLC - ( - TBool aWrite, - TBool aShowNote = ETrue, - TBool aRetry = ETrue, - TBool aLFFSChecking = ETrue - ); - - /** - * Gets write lock on the database - */ - void GetWriteLockL(); - - - /** - * Cleanup function for the transaction. - * In case of leave, it will be called and - * transaction will be rolled back - */ - static void RollbackTransactionOnLeave( TAny* aDb ); - - - /** - * Commits the transaction on the database - */ - TInt CommitTransaction(); - - - /** - * Check if Disk space goes below critical level if allocating - * more disk space. - * @param aShowErrorNote If ETrue, a warning note is shown. - * @param aBytesToWrite Amount of disk space to be allocated (use an - * estimate if exact amount is not known). - * @return ETrue if allocation would go below critical level. - */ - TBool FFSSpaceBelowCriticalLevelL( TBool aShowErrorNote, - TInt aBytesToWrite /*=0*/ ); - - - /** - * Gets the network list - * @param aFailedLocked a boolean indicating if the operation - * had failed because the DB was locked - * @param aList a reference to the list of networks. - * The passed list will be erased, elements destroyed, - * new elements created in it. The list owns the created elements - * and the caller must maintaine ownership of the list. - * Leaves on error (Database and memory errors) - * @return the number of items in the list. - */ - TInt NetWorkListDataL( TBool& aFailedLocked, - CApNetworkItemList& aList ); - - - /** - * Returns the model's required IPv type (4, 6 or both, bitfield) - */ - TInt RequestedIPvType(); - - - /** - * Returns whether the Select menu item should be deleted or not - * @param aResourceId The ID of the current menu resource - * @param aCount The number of items in the list - */ - TBool Need2DeleteSelect( TInt aResourceId, TInt aCount ); - - - /** - * Returns whether the Open menu item should be deleted or not - * @param aResourceId The ID of the current menu resource - * @param aCount The number of items in the list - * @param aUid The UID of the current item in the list - * @param aNeedsNone Gives whether NONE is displayed as an item or not - */ - TBool Need2DeleteOpen( TInt aResourceId, TInt aCount, - TUint32 aUid, TBool aNeedsNone ); - - - /** - * Returns whether the Delete menu item should be deleted or not - * @param aResourceId The ID of the current menu resource - * @param aCount The number of items in the list - * @param aUid The UID of the current item in the list - * @param aNeedsNone Gives whether NONE is displayed as an item or not - */ - TBool Need2DeleteDeleteL( TInt aResourceId, TInt aCount, - TUint32 aUid, TBool aNeedsNone ); - - - /** - * Returns tha the New/Use existing menu item should be deleted or not - * @param aResourceId The ID of the current menu resource - * @param aCount The number of items in the list - */ - TBool Need2DeleteNewUseExisting( TInt aResourceId, TInt aCount ); - - - /** - * @param aResourceId The ID of the current menu resource - * Returns whether the New menu item should be deleted or not - */ - TBool Need2DeleteNewL( TInt aResourceId ); - - - /** - * Returns whether the Help menu item should be deleted or not - */ - TBool Need2DeleteHelp( TInt aResourceId ); - - - protected: - - - - - public: - /** - * Returns the name of the first VPN accesspoint with which the access - * point with the passed WAP UID is associated. - * Name is placed on the CleanupStack if not null. - * Should not be called upon VPN access points!!! - * @param aUid The WAP UID of the normal access point - * @return NULL or a pointer to the name of the associated access point. - */ - HBufC* GetLinkedVpnAccessPointLC( TUint32 aUid ); - - - /* - * Returns the current EikEnvironment - */ - CEikonEnv* EikEnv(); - - - - /** - * Creates a new access point from the passed item. - * @param aApItem A reference to a CApAccessPointItem holding the - * access point item to be added to the database - * @return The UID of the newly created and saved access point. - */ - TUint32 CreateFromDataL( CApAccessPointItem& aApItem ); - - - /** - * Handles WEP security settings - * Leaves on errors - * Return TInt giving exit or shutdown required if any, otherwise, 0 - */ - TInt ChangeWepSettingsL( CApAccessPointItem* aApItem ); - - - /** - * Handles WPA security settings - * Leaves on errors - * Return TInt giving exit or shutdown required if any, otherwise, 0 - */ - TInt ChangeWpaSettingsL( CApAccessPointItem* aApItem ); - - - /** - * Handles 802.1x security settings - * Leaves on errors - * Return TInt giving exit or shutdown required if any, otherwise, 0 - */ - TInt Change8021xSettingsL( CApAccessPointItem* aApItem ); - - /** - * Resets all WEP and WPA settings to NULL, thus forcing their - * re-load - */ - void ClearWEPAndWPASettings(); - - /* - * Writes the WLAN settings part - */ - void WriteWlanL( CApAccessPointItem& aApItem, TBool aIsNew ); - - - /* - * Loads the WLAN settings part - */ - void LoadWlanL( CApAccessPointItem& aApItem ); - - /** - * Returns whether the passed item has the security settings - * filled correctly or not. - */ - TBool HasWlanSecSettingsFilledL( CApAccessPointItem& aApItem ); - - - /** - * Update the security mode to reflect current state. - * Called after the user changed security settings - * @param aApItem The access point item containing the current settings - */ - void UpdateSecurityModeL( CApAccessPointItem& aApItem ); - - - private: // data - CActiveApDb* iDb; - CApDataHandler* iApData; - CApUtils* iUtils; - CApSettingsDeleteOperation* iop; - TApSettingsParams iParams; - TBool iDbOwned; - TInt iReqIpvType; - TVpnFilterType iVpnFilterType; - CVpnApEngine* iVpnApEngine; - TInt iVariant; /// Local variant value - TBool iIncludeEasyWlan; - - CEikonEnv* iEikEnv; /// Eikon environment - - public: - CWEPSecuritySettings* iWepSecSettings; ///< WEP settings data - TInt iWepUiExitReason; ///< WEP UI exit reason - - CWPASecuritySettings* iWpaSecSettings; ///< WPA settings data - TInt iWpaUiExitReason; ///< WPA UI exit reason - TBool iNoEdit; - - /** - * CFeatureManagerWrapper wraps FeatureManager to eliminate maintenance - * of existance of FeatureManager. - * Owned. - */ - CFeatureManagerWrapper* iFeatureManagerWrapper; - - TBool iInRefresh; - TBool iNeedRefresh; - TBool iHelpSupported; - TBool iProtectionSupported; - }; - - -#endif - -// End of file