Revision: 201011 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Wed, 31 Mar 2010 23:17:49 +0300
branchRCL_3
changeset 12 981afc7d3841
parent 11 8b0eae1b1d71
child 13 858c6c491d0e
Revision: 201011 Kit: 201013
hotspotfw/hsfw_sis/cenrep.pkg
hotspotfw/hsfw_sis/hotspot.pkg
package_definition.xml
wlanutilities/wlanindicatorplugin/group/wlanindicatorplugin.mmp
wlanutilities/wlanindicatorplugin/inc/wlanindicatorpluginimplementation.h
wlanutilities/wlanindicatorplugin/src/wlanindicatorpluginimplementation.cpp
wlanutilities/wlansniffer/aihelper/inc/wsfaihelperdocument.h
wlanutilities/wlansniffer/aihelper/inc/wsfaihelperdocument.inl
wlanutilities/wlansniffer/aihelper/src/wsfaihelperdocument.cpp
wlanutilities/wlansniffer/aiplugin/group/aiplugin.mmp
wlanutilities/wlansniffer/aiplugin/inc/wsfactivewrappers.h
wlanutilities/wlansniffer/aiplugin/inc/wsfaicontroller.h
wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugin.h
wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugincontentmodel.h
wlanutilities/wlansniffer/aiplugin/inc/wsfaipublishobserver.h
wlanutilities/wlansniffer/aiplugin/inc/wsfdbobserver.h
wlanutilities/wlansniffer/aiplugin/inc/wsflaunchaihelperactivewrapper.h
wlanutilities/wlansniffer/aiplugin/src/wsfactivewrappers.cpp
wlanutilities/wlansniffer/aiplugin/src/wsfaicontroller.cpp
wlanutilities/wlansniffer/aiplugin/src/wsfaiplugin.cpp
wlanutilities/wlansniffer/aiplugin/src/wsfaiview.cpp
wlanutilities/wlansniffer/aiplugin/src/wsfdbobserver.cpp
wlanutilities/wlansniffer/aiplugin/src/wsflaunchaihelperactivewrapper.cpp
wlanutilities/wlansniffer/aiplugin/src/wsfsearchwlansdialog.cpp
wlanutilities/wlansniffer/engine/server/inc/wsfwlanscaninfodefines.h
wlanutilities/wlansniffer/engine/server/inc/wsfwlanscanner.h
wlanutilities/wlansniffer/engine/server/src/wsfengine.cpp
wlanutilities/wlansniffer/engine/server/src/wsfwlanscanner.cpp
wlanutilities/wlansniffer/mainapplication/data/wlansniffer.rss
wlanutilities/wlansniffer/mainapplication/inc/wsfdetailsviewmodel.h
wlanutilities/wlansniffer/mainapplication/inc/wsfmainview.h
wlanutilities/wlansniffer/mainapplication/src/wsfdetailsviewmodel.cpp
wlanutilities/wlansniffer/mainapplication/src/wsfmaincontroller.cpp
wlanutilities/wlansniffer/mainapplication/src/wsfmainview.cpp
wlanutilities/wlansniffer/model/bwins/wsfmodelu.def
wlanutilities/wlansniffer/model/eabi/wsfmodelu.def
wlanutilities/wlansniffer/model/inc/wsfmodel.h
wlanutilities/wlansniffer/model/src/wsfmodel.cpp
wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/00/wsfwidget.css
wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/37/wsfwidget.css
wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/50/wsfwidget.css
wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/57/wsfwidget.css
wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/94/wsfwidget.css
--- a/hotspotfw/hsfw_sis/cenrep.pkg	Mon Mar 15 12:44:54 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-;
-; Copyright (c) 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:  ; Languages
-;
-
-; ============================================================================
-;  Name     : cenrep_armv5.pkg
-;  ---------------------------------------------------------------------------
-;  Version history:
-; ============================================================================
-;
-; Languages
-
-; ============================================================================
-;  Name     : cenrep_armv5.pkg
-;  ---------------------------------------------------------------------------
-;  Version history:
-; ============================================================================
-;
-; Languages
-&EN
-
-; Header
-#{"HotSpot ICTS Repository"}, (0x10202BE9), 1, 0, 0, TYPE=SISPATCH
-
-; Supports Series 60 v 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-; Localised Vendor name
-%{"Nokia"}
-
-; Unique Vendor name
-:"Nokia"
-
-;Files
-"..\InternetConnectivityTestService\cenrep\10282EC7.txt"-"c:\private\10202BE9\10282EC7.txt"
\ No newline at end of file
--- a/hotspotfw/hsfw_sis/hotspot.pkg	Mon Mar 15 12:44:54 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,63 +0,0 @@
-;
-; Copyright (c) 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:  ;Languages
-;
-&EN
-
-;Header
-#{"Hotspot FW demo"},(0x10282ECB),1,0,0
-
-; Supports Series 60 v 3.0
-[0x101F7961], 0, 0, 0, {"Series60ProductID"}
-
-; Localised Vendor Name
-%{"Nokia"}
-
-;Unique Vendor Name
-:"Nokia"
-
-; Uninstall
-"\EPOC32\RELEASE\ARMV5\UREL\HotspotUninstall.exe"-"c:\sys\bin\HotspotUninstall.exe", FR, RR, RW
-
-; Server
-"\EPOC32\RELEASE\ARMV5\UREL\HotSpotServer.exe"-"c:\sys\bin\HotSpotServer.exe"
-
-; Client API
-"\EPOC32\RELEASE\ARMV5\UREL\hotspotclient.dll"-"c:\sys\bin\hotspotclient.dll"
-
-; ECOM plugin
-"\EPOC32\DATA\Z\Resource\Plugins\NetCfgExtnHotSpot.RSC"-"c:\resource\plugins\NetCfgExtnHotSpot.RSC"
-"\EPOC32\RELEASE\ARMV5\UREL\NetCfgExtnHotSpot.dll"-"c:\sys\bin\NetCfgExtnHotSpot.dll"
-
-; ECOM plugin
-"\EPOC32\DATA\Z\Resource\Plugins\HssMgmtImpl.rsc"-"c:\resource\plugins\HssMgmtImpl.rsc"
-"\EPOC32\RELEASE\ARMV5\UREL\hssmgmtimpl.dll"-"c:\sys\bin\hssmgmtimpl.dll"
-
-; ICTS 
-"\EPOC32\RELEASE\ARMV5\UREL\ictsclientinterface.dll"-"c:\sys\bin\ictsclientinterface.dll"
-
-"\EPOC32\RELEASE\ARMV5\UREL\wlanagthotspotimpl.dll"-"c:\sys\bin\wlanagthotspotimpl.dll"
-"\EPOC32\RELEASE\ARMV5\UREL\wlanagt2.agt"-"c:\sys\bin\WlanAgt2.agt"
-"\EPOC32\DATA\Z\Resource\Plugins\WlanAgtHotSpotImpl.RSC"-"c:\resource\plugins\WlanAgtHotSpotImpl.RSC"
-
-; Hotspot browser logon application 
-"\epoc32\release\armv5\urel\HsBrowser.exe"			-"c:\sys\bin\HsBrowser.exe"
-
-; Hotspot browser logon application, resources and bitmaps
-"\epoc32\data\z\resource\apps\hsbrowser.rsc"		-"c:\Resource\apps\hsbrowser.rsc"
-"\epoc32\data\z\private\10003a3f\apps\hsbrowser_reg.RSC"	-"c:\private\10003a3f\import\apps\hsbrowser_reg.rsc"
-
-; Embedded SIS-files
-@"ictscenrep.sisx"             ,(0x10202BE9)
-"backup_registration.xml"-"c:\private\10282ECB\backup_registration.xml"
--- a/package_definition.xml	Mon Mar 15 12:44:54 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,52 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<SystemDefinition schema="3.0.0">
-  <package id="wirelessacc" name="Wireless Access" levels="framework generic ui">
-    <collection id="hotspotfw" name="HotSpot Framework" level="framework">
-      <component id="hsserver" filter="s60" name="HotSpot Server">
-      	<!-- needs bld.inf extracted from the hotspotfw/group one, or this component should be removed-->
-      </component>
-      <component id="hsclient" filter="s60" name="HotSpot Client">
-      	<!-- needs bld.inf extracted from the hotspotfw/group one, or this component should be removed-->
-      </component>
-      <component id="internetconnectivitytestservice" filter="s60" name="Internet Connectivity Test Service">
-      	<!-- needs bld.inf un-#included from hotspotfw/group/bld.inf, or this component should be removed-->
-        <!-- <unit bldFile="hotspotfw/internetconnectivitytestservice/group"/> -->
-      </component>
-      <component id="ictsdialogs" filter="s60" name="Internet Connectivity Test Service Dialogs" deprecated="^3">
-      	<!-- needs bld.inf un-#included from hotspotfw/group/bld.inf, or this component should be removed-->
-        <!-- <unit bldFile="hotspotfw/ictsdialogs/group"/> -->
-      </component>
-      <component id="hspluginforagent" filter="s60" name="HotSpot Plugin for Agent" class="plugin">
-      	<!-- needs bld.inf un-#included from hotspotfw/group/bld.inf, or this component should be removed-->
-        <!-- <unit bldFile="hotspotfw/hspluginforagent/group"/> -->
-      </component>
-      <component id="hsbrowser" filter="s60" name="HotSpot Browser">
-      	<!-- needs bld.inf un-#included from hotspotfw/group/bld.inf, or this component should be removed-->
-        <!-- <unit bldFile="hotspotfw/hsbrowser/group"/> -->
-      </component>
-      <component id="hotspotfw_build" filter="s60" name="Hotspot Framework Build">
-      	<!--  should break up this bld.inf into the above components, or collapse them all into a single component -->
-        <unit bldFile="hotspotfw/group"/>
-      </component>
-    </collection>
-    <collection id="wlanutilities" name="WLAN Utilities" level="generic">
-      <component id="wlanplugin" filter="s60" name="WLAN Plugin" class="plugin">
-        <unit bldFile="wlanutilities/wlanplugin/group"/>
-      </component>
-      <component id="wlansettingsui" filter="s60" name="WLAN Settings UI">
-        <unit bldFile="wlanutilities/wlansettingsui/group"/>
-      </component>
-      <component id="wlansniffer" filter="s60" name="WLAN Sniffer">
-        <unit bldFile="wlanutilities/wlansniffer/group"/>
-      </component>
-      <component id="wlanindicatorplugin" filter="s60" name="WLAN Indicator Plugin" class="plugin">
-        <unit bldFile="wlanutilities/wlanindicatorplugin/group"/>
-      </component>
-    </collection>
-    <collection id="wirelessacc_info" name="Wireless Access Info" level="ui">
-      <component id="hsfw_plat" name="HotSpot Framework Platform Interfaces" filter="s60" class="api">
-        <unit bldFile="hsfw_plat/group"/>
-      </component>
-    </collection>
-  </package>
-</SystemDefinition>
--- a/wlanutilities/wlanindicatorplugin/group/wlanindicatorplugin.mmp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlanindicatorplugin/group/wlanindicatorplugin.mmp	Wed Mar 31 23:17:49 2010 +0300
@@ -55,10 +55,8 @@
 LIBRARY                 apgrfx.lib
 LIBRARY                 cone.lib
 LIBRARY                 commonengine.lib
-LIBRARY                 commdb.lib
 LIBRARY                 charconv.lib
 LIBRARY                 connmon.lib
 LIBRARY                 cmmanager.lib
-LIBRARY                 cmmanagerdatabase.lib
 LIBRARY                 bafl.lib
 
--- a/wlanutilities/wlanindicatorplugin/inc/wlanindicatorpluginimplementation.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlanindicatorplugin/inc/wlanindicatorpluginimplementation.h	Wed Mar 31 23:17:49 2010 +0300
@@ -22,30 +22,11 @@
 
 //  INCLUDES
 #include <AknIndicatorPlugin.h> // CAknIndicatorPlugin
-#include <wlanmgmtcommon.h>
-#include <wlanmgmtclient.h>
 #include <rconnmon.h>
 
-//  CONSTANTS
-const TInt KWlanMaxAccessPointNameLength = 50;
-
 //  FORWARD DECLARATIONS
 class CCoeEnv;
 
-//  CLASS DECLARATIONS
-struct TWliWlanInfo
-    {
-    // Network name (unknown: SSID, known: IAP name), TBuf8
-    TWlanSsid iSsid;
-
-    //Internet Access Point Id. 0 if the IAP has not been defined. 
-    TUint32 iIapId;
-
-    // The name of the WLAN IAP, TBuf16
-    TBuf<KWlanMaxAccessPointNameLength> iNetworkName;
-};
-
-
 /**
 *  WLAN Indicator Plug-in implementation
 *
@@ -97,11 +78,8 @@
     private: // new functions
 
         /**
-        * Creates text for the cases
-        * - "WLAN network found"
-        * - "WLAN networks found"
-        * - "'myNetwork' found"
-        * @return Descriptor for the current "wlan available" case
+        * Creates text for the case "wlan networks available"
+        * @return Descriptor for the "wlan available" case
         */
         HBufC* CreateWlanNetworksFoundTextL();
         
@@ -110,21 +88,7 @@
         * @return Descriptor containing the "'myNetwork' connected" text
         */
         HBufC* CreateWlanConnectedTextL();
-        
-        /**
-         * Finds the required info for the "networks available" case:
-         * - name of the known network (null if all unknown)
-         * - number of available networks
-         * @param aAvailableCount Number of available networks
-         */
-        HBufC* AvailableNetworksInfoL( TInt& aAvailableCount );
-         
-        /**
-         * Finds the network name based on the IAP id
-         * @param Struct for storing the IAP information
-         */
-        void GetWlanInfoFromIapL( TWliWlanInfo& aWlanInfo );
-        
+                     
         /**
          * Finds the WLAN connection name.
          * @return Descriptor containing the name of the connected WLAN nw.
@@ -164,12 +128,6 @@
          */
         RConnectionMonitor iConnMonitor;
         
-        /**
-         * Owned. Used for getting WLAN available networks info
-         */
-        CWlanMgmtClient* iWlanMgmtClient;
-        
-
     };
 
 #endif      // CWLANINDICATORPLUGINIMPLEMENTATION_H
--- a/wlanutilities/wlanindicatorplugin/src/wlanindicatorpluginimplementation.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlanindicatorplugin/src/wlanindicatorpluginimplementation.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -30,11 +30,6 @@
 #include <rconnmon.h>
 #include <cmmanager.h>
 #include <cmconnectionmethod.h>
-#include <wlanmgmtclient.h>
-#include <wlanscaninfo.h>
-#include <cdblen.h>
-#include <commdb.h>
-#include <WlanCdbCols.h>
 #include <utf.h>
 #include <wlanindicator.rsg>
 #include "wlanindicatorpluginimplementation.h"
@@ -77,9 +72,7 @@
     iResource = iCoeEnv->AddResourceFileL( fileName );
     
     iConnMonitor.ConnectL();
-    
-    iWlanMgmtClient = CWlanMgmtClient::NewL();
-    
+        
     }
 
 // -----------------------------------------------------------------------------
@@ -107,9 +100,7 @@
     iCoeEnv->DeleteResourceFile( iResource );
  
     iConnMonitor.Close();
-               
-    delete iWlanMgmtClient;
-    
+                   
     }
 
 
@@ -149,7 +140,8 @@
 //    
 HBufC* CWlanIndicatorPluginImplementation::TextL( const TInt aUid,
                                                  TInt& aTextType )
-    {   
+    {
+    
     HBufC* textBuf = NULL;
     
     switch ( aUid )
@@ -190,37 +182,10 @@
     {
     
     HBufC* dynText = NULL;
-    HBufC* knownNetworkName = NULL;   
-    TInt availableCount( 0 );
 
-    knownNetworkName = AvailableNetworksInfoL( availableCount );
-    
-    CleanupStack::PushL( knownNetworkName ); 
-    
-    if ( !knownNetworkName )
-        {
-        if ( availableCount == 1 )
-            {
-            // dynText: "qtn_uni_ind_wlan_avail_unknown        WLAN network found"
-            dynText = StringLoader::LoadL (
-                    R_QTN_UNI_IND_WLAN_AVAIL_UNKNOWN, iCoeEnv );
-            }
-        else
-            {
-            // dynText: "qtn_uni_ind_wlan_avail_unknown_many    WLAN networks found"
-            dynText = StringLoader::LoadL (
-                    R_QTN_UNI_IND_WLAN_AVAIL_UNKNOWN_MANY, iCoeEnv );            
-            }
-        }
-    else
-        {
-        // dynText: "qtn_uni_ind_wlan_avail_known        '%U' found"
-        dynText = StringLoader::LoadL ( 
-                R_QTN_UNI_IND_WLAN_AVAIL_KNOWN, *knownNetworkName, iCoeEnv );
-                       
-        }
-    
-    CleanupStack::PopAndDestroy( knownNetworkName );
+    // "qtn_uni_ind_wlan_avail_unknown_many    WLAN networks found"
+    dynText = StringLoader::LoadL (
+            R_QTN_UNI_IND_WLAN_AVAIL_UNKNOWN_MANY, iCoeEnv );
 
     return dynText;
     }
@@ -254,99 +219,6 @@
 
 
 // ---------------------------------------------------------------------------
-// CWlanIndicatorPluginImplementation::AvailableNetworksInfoL()
-// ---------------------------------------------------------------------------
-//
-HBufC* CWlanIndicatorPluginImplementation::AvailableNetworksInfoL(
-    TInt& aAvailableCount )
-    {
-    
-    HBufC* knownNetworkName = NULL; 
- 
-    // get available iaps
-    RArray<TUint> availableIaps;
-    TInt iapError( 0 );
-    iapError = iWlanMgmtClient->GetAvailableIaps( availableIaps );
-        
-    if ( iapError == KErrNone )
-        {
-        // if there are known networks, get the name of the first one
-        // in an alphabetical order
-        if ( availableIaps.Count() )
-            {
-            // get all network names and put them into a sorted array
-        
-            // use one TWliWlanInfo struct to point to each IAP in a loop
-            TWliWlanInfo* availableInfo = new ( ELeave ) TWliWlanInfo();
-            CleanupStack::PushL( availableInfo );
-        
-            // descriptor array with granularity 2
-            CDesCArray* networkNames = new (ELeave)CDesCArrayFlat( 2 );
-            CleanupStack::PushL( networkNames );
-      
-            for ( TInt i = 0; i < availableIaps.Count() ; i++ )
-                {
-                availableInfo->iIapId = availableIaps[i];
-                GetWlanInfoFromIapL( *availableInfo );
-            
-                // insert the name into the proper place
-                // in alphabetical order
-                networkNames->InsertIsqL(
-                    ( availableInfo->iNetworkName ), ECmpFolded );
-                }
-        
-            knownNetworkName = ( networkNames->MdcaPoint(0) ).AllocL();
-        
-            CleanupStack::PopAndDestroy( networkNames );
-            CleanupStack::PopAndDestroy( availableInfo );
-               
-            }
-            
-        else // unknown networks only        
-            {
-            CWlanScanInfo* scanInfo = CWlanScanInfo::NewL();                    
-
-            TInt scanError( 0 );
-            scanError = iWlanMgmtClient->GetScanResults( *scanInfo );
-            if ( scanError == KErrNone )
-                {
-                // Find if we have 1 or more networks available,
-                // we don't have to know the exact amount
-                scanInfo->Next() ? aAvailableCount = 2 : aAvailableCount = 1;
-                }
-            
-            delete scanInfo;
-        
-            }
-        }    
-    
-    availableIaps.Close();
-    
-    return knownNetworkName;
-
-    }
-
-// ---------------------------------------------------------------------------
-// CWlanIndicatorPluginImplementation::GetWlanInfoFromIapL()
-// ---------------------------------------------------------------------------
-//
-void CWlanIndicatorPluginImplementation::GetWlanInfoFromIapL( TWliWlanInfo& aWlanInfo )
-    {
-    CCommsDatabase* commsDb = CCommsDatabase::NewL();    
-    CleanupStack::PushL( commsDb );
-    
-    CCommsDbTableView* commsDbIapTableView = commsDb->OpenViewMatchingUintLC(
-        TPtrC( IAP ), TPtrC( COMMDB_ID ), aWlanInfo.iIapId );
-
-    User::LeaveIfError( commsDbIapTableView->GotoFirstRecord() );
-
-    commsDbIapTableView->ReadTextL( TPtrC( COMMDB_NAME ), aWlanInfo.iNetworkName );
-    
-    CleanupStack::PopAndDestroy( commsDbIapTableView );
-    CleanupStack::PopAndDestroy( commsDb );
-    }
-
-// ---------------------------------------------------------------------------
 // CWlanIndicatorPluginImplementation::ConnectionNameL()
 // ---------------------------------------------------------------------------
 //
--- a/wlanutilities/wlansniffer/aihelper/inc/wsfaihelperdocument.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aihelper/inc/wsfaihelperdocument.h	Wed Mar 31 23:17:49 2010 +0300
@@ -128,20 +128,6 @@
          */
         inline TWsfWlanInfo& WlanInfo();
         
-        /**
-        * Returns whether Connect or Start Web browsing was selected
-        * @since S60 5.0
-        * @return ETrue if Connect was selected (browser doesn't need to be 
-        *         launched, EFalse otherwise.
-        */
-        inline TBool ShouldConnectOnly();
-        
-        /**
-        * Returns whether default connection should be used
-        * @return ETrue if default should be used, EFalse otherwise.
-        */
-        inline TBool UseDefaultConnection();
-        
     
     private:    // data
     
@@ -155,16 +141,6 @@
          */
         TWsfWlanInfo iWlanInfo;
         
-        /**
-         * Indicates whether Connect or Start Web browsing was selected
-         */
-        TBool iConnectOnly;
-        
-        /**
-         * Indicates whether default connection should be used
-         */
-        TBool iUseDefaultConnection;
-        
     };
 
 
--- a/wlanutilities/wlansniffer/aihelper/inc/wsfaihelperdocument.inl	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aihelper/inc/wsfaihelperdocument.inl	Wed Mar 31 23:17:49 2010 +0300
@@ -39,22 +39,3 @@
     }
 
 
-// ---------------------------------------------------------------------------
-// CWsfAiHelperDocument::ShouldConnectOnly()
-// ---------------------------------------------------------------------------
-//
-TBool CWsfAiHelperDocument::ShouldConnectOnly()
-    {
-    return iConnectOnly;
-    }
-
-// ---------------------------------------------------------------------------
-// CWsfAiHelperDocument::UseDefaultConnection()
-// ---------------------------------------------------------------------------
-//
-TBool CWsfAiHelperDocument::UseDefaultConnection()
-    {
-    return iUseDefaultConnection;
-    }
-
-
--- a/wlanutilities/wlansniffer/aihelper/src/wsfaihelperdocument.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aihelper/src/wsfaihelperdocument.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -105,15 +105,11 @@
     // Read the afilename arg
     // Take that into a TWlanInfo and start creation of accesspoint
     TPckgBuf<TWsfWlanInfo> info;
-    TPckgBuf<TBool> connecting;
-    TPckgBuf<TBool> connectOnly;
+
     info.Copy( aFilename.Left( sizeof( TWsfWlanInfo ) ) );
-    connecting.Copy( aFilename.Mid( sizeof( TWsfWlanInfo ), sizeof( TBool ) ) );
-    connectOnly.Copy( aFilename.Right( sizeof( TBool ) ) );
     
     iWlanInfo = info();
-    iUseDefaultConnection = connecting();
-    iConnectOnly = connectOnly();
+    
     static_cast<CWsfAiHelperAppUi*>( iAppUi )->NotifyFileName();
 
     return NULL;
--- a/wlanutilities/wlansniffer/aiplugin/group/aiplugin.mmp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/group/aiplugin.mmp	Wed Mar 31 23:17:49 2010 +0300
@@ -42,7 +42,8 @@
 SOURCE          wsfrefreshscanactivewrapper.cpp
 SOURCE          wsfdisconnectactivewrapper.cpp
 SOURCE          wsfconnectactivewrapper.cpp
-SOURCE 		wsfactivewrappers.cpp
+SOURCE          wsfactivewrappers.cpp
+SOURCE          wsflaunchaihelperactivewrapper.cpp
 
 
 // Plugin's own resources.
--- a/wlanutilities/wlansniffer/aiplugin/inc/wsfactivewrappers.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsfactivewrappers.h	Wed Mar 31 23:17:49 2010 +0300
@@ -34,6 +34,7 @@
 class CWsfRefreshScanActiveWrapper;
 class CWsfDisconnectActiveWrapper;
 class CWsfConnectActiveWrapper;
+class CWsfLaunchAiHelperActiveWrapper;
 
 // CLASS DECLARATION
 
@@ -59,15 +60,15 @@
      * Two-phased constructor.
      * @since S60 5.2  
      */
-    static CWsfActiveWrappers* NewL(CWsfModel* aModel,
-            TWsfAiController &aController);
+    static CWsfActiveWrappers* NewL( CWsfModel* aModel,
+            TWsfAiController &aController );
 
     /**
      * Two-phased constructor.
      * @since S60 5.2 
      */
     static CWsfActiveWrappers* NewLC(CWsfModel* aModel,
-            TWsfAiController &aController);
+            TWsfAiController &aController );
 
 public:
 
@@ -81,7 +82,7 @@
      * Starts connecting
      * @since S60 5.2     
      */
-    void Connect(TUint aIapID, TWsfIapPersistence aPersistence);
+    void Connect( TUint aIapID, TWsfIapPersistence aPersistence );
 
     /**
      * Starts refresh scan
@@ -95,6 +96,18 @@
      * @param aStarUp is this called called from plugin start up   
      */
     void RefreshWLANList( TBool aStarUp );
+    
+    /**
+     * Starts launching of ai helper 
+     * @since S60 5.2   
+     * @param aWlanInfo The WlanInfo object to be passed to the helper app
+     * @param aConnectOnly ETrue if we are only connecting, 
+     *                     EFalse if we should also launch the browser  
+     * @param aTestAccessPoint ETrue if ICT is executed, 
+     *                         EFalse if ICT is not executed 
+     */
+    void LaunchHelperApplicationL( TWsfWlanInfo& aInfo, TBool aConnectOnly, 
+                                   TBool aTestAccessPoint );
 
     /**
      * Returns the list of found WLANs. 
@@ -150,6 +163,12 @@
      */
     CWsfConnectActiveWrapper* iConnectActiveWrapper;
 
+    /**
+     * Pointer to CWsfLaunchAiHelperActiveWrapper
+     * Own.
+     */
+    CWsfLaunchAiHelperActiveWrapper* iLaunchAiHelperActiveWrapper;
+
     };
 
 #endif // WSFACTIVEWRAPPERS_H
--- a/wlanutilities/wlansniffer/aiplugin/inc/wsfaicontroller.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsfaicontroller.h	Wed Mar 31 23:17:49 2010 +0300
@@ -109,18 +109,12 @@
          */
         void StartupRefresh();
         
-		/**
+        /**
          * Propagates the network data from the engine
          * to the AI model
          * @since S60 5.2
          */
         void StartupRefreshDataReadyL();
-
-        /**
-        * Dismisses the AI menu/other dialogs if there was any open
-        * @since S60 5.0
-        */
-        void DismissDialogsL();
         
         /**
         * Refreshes the refreshing icon
@@ -134,13 +128,25 @@
         */
         void RefreshConnectingL();
         
-		/**
+        /**
          * Propagates the network data from the engine
          * to the AI model
          * @since S60 5.2
          */
         void WlanListDataReadyL();
         
+        /**
+        * Connect to the given wlan
+        * @since S60 5.2
+        * @param aInfo Wlaninfo to connect with
+        * @param aConnectOnly ETrue if we are only connecting, 
+        *                     EFalse if we should also launch the browser
+        * @param aTestAccessPoint ETrue if ICT is executed, 
+        *                         EFalse if ICT is not executed   
+        */
+        void ConnectL( TWsfWlanInfo& aInfo, TBool aConnectOnly, 
+                       TBool aTestAccessPoint );
+        
 
     public:     // From MWsfStateChangeObserver
 
@@ -239,26 +245,12 @@
         * @param aInfo Wlaninfo to connect with
         */ 
         void StartWebBrowserL( TWsfWlanInfo& aInfo );
-
-        /*
-        * Connect to the given wlan
-        * @since S60 5.0
-        * @param aInfo Wlaninfo to connect with
-        */ 
-        void ConnectL( TWsfWlanInfo& aInfo, TBool aShoulConnectOnly );
         
         /**
         * Cleanup function to release connecting state
         * @param aPtr Pointer for this class
         */
         static void CleanUpConnectingL( TAny* aPtr );
-        
-        /**
-        * Launches and helper application to create an accesspoint 
-        * @since S60 5.2
-        * @param aWlanInfo The WlanInfo object to be passed to the helper app
-        */
-        void LaunchAiHelperAppL( TWsfWlanInfo& aInfo );
 
         /*
         * Brings browser to the foreground
@@ -381,7 +373,7 @@
          */
         TBool iTestAccessPoint;
         
-		/**
+        /**
         * A pointer to CWsfActiveWrappers
         */
         CWsfActiveWrappers* iActiveWrappers;
--- a/wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugin.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugin.h	Wed Mar 31 23:17:49 2010 +0300
@@ -163,14 +163,6 @@
                               CEikLabel* aText1 );
         
         /**
-        * Sets signal strenght and the security string
-        * @since S60 5.0  
-        * @param aStrength siganl strength string
-        * @param aSecure security string
-        */
-        void SetStrengthAndSecure( TDesC* aStrength, TDesC* aSecure );
-        
-        /**
         * Sets Scanning status on/off.
         * @since S60 5.0
         * @param aScanState Scanning satus flag
@@ -309,7 +301,7 @@
         CWsfAiView* iUi;
    
         /**
-        * The database observer obseving changes in
+        * The database observer observing changes in
         * show WLAN availablity
         */
         CWsfDbObserver* iDbObserver;
@@ -320,24 +312,6 @@
         TInt iResourceFileOffset;
     
         /**
-        * Constants for Signal Strength text
-        * Own.
-        */
-        HBufC* iCurrentSignalStrength;
-    
-        /**
-        * Constants for Secure Information text
-        * Own.
-        */
-        HBufC* iCurrentSecureInfo;
-    
-        /**
-        * Constants for Title text
-        * Own.
-        */
-        HBufC* iWlanTitle;
-    
-        /**
         * Constants for MSK activate text
         * Own.
         */
--- a/wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugincontentmodel.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsfaiplugincontentmodel.h	Wed Mar 31 23:17:49 2010 +0300
@@ -37,17 +37,9 @@
  */
 enum TWsfAiWizardContentIds
     {
-     EAiWizardContentFullText
-    ,EAiWizardContentNaviBarIcon
-    ,EAiWizardContentTitleText
-    ,EAiWizardContentStatusIcon
-    ,EAiWizardContentStatusText
-    ,EAiWizardContentTypeIcon       // Transparent icon
-    ,EAiWizardContentTypeText
-    ,EAiWizardContentStrengthIcon
-    ,EAiWizardContentStrengthText    
+     EAiWizardContentStatusIcon
+    ,EAiWizardContentStrengthIcon   
     ,EAiWizardContentSecureIcon
-    ,EAiWizardContentSecureText
     ,EAiWizardContentNetworkStatus
     ,EAiWizardContentNetworkName
     };
@@ -57,17 +49,9 @@
  */
 const TAiContentItem KAiWizardContent[] =
     {
-     { EAiWizardContentFullText,      L"FullText",     KAiContentTypeText }
-    ,{ EAiWizardContentNaviBarIcon,   L"NaviBarIcon",  KAiContentTypeBitmap }
-    ,{ EAiWizardContentTitleText,     L"TitleText",    KAiContentTypeText }
-    ,{ EAiWizardContentStatusIcon,    L"StatusIcon",   KAiContentTypeBitmap }
-    ,{ EAiWizardContentStatusText,    L"StatusText",   KAiContentTypeText }
-    ,{ EAiWizardContentTypeIcon,      L"TypeIcon",     KAiContentTypeBitmap }
-    ,{ EAiWizardContentTypeText,      L"TypeText",     KAiContentTypeText }
+     { EAiWizardContentStatusIcon,    L"StatusIcon",   KAiContentTypeBitmap }
     ,{ EAiWizardContentStrengthIcon,  L"StrengthIcon", KAiContentTypeBitmap }
-    ,{ EAiWizardContentStrengthText,  L"StrengthText", KAiContentTypeText }
     ,{ EAiWizardContentSecureIcon,    L"SecureIcon",   KAiContentTypeBitmap }
-    ,{ EAiWizardContentSecureText,    L"SecureText",   KAiContentTypeText }
     ,{ EAiWizardContentNetworkStatus, L"NetworkStatus",KAiContentTypeText }
     ,{ EAiWizardContentNetworkName,   L"NetworkName",  KAiContentTypeText }
     };
--- a/wlanutilities/wlansniffer/aiplugin/inc/wsfaipublishobserver.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsfaipublishobserver.h	Wed Mar 31 23:17:49 2010 +0300
@@ -42,15 +42,6 @@
                                   CEikLabel* aText1 ) = 0;
     
     /**
-    * Sets signal strenght and the security string
-    * @since S60 5.0  
-    * @param aStrength siganl strength string
-    * @param aSecure security string
-    */
-    virtual void SetStrengthAndSecure( TDesC* aStrength, 
-                                       TDesC* aSecure ) = 0;
-    
-    /**
     * Sets Scanning status on/off.
     * @since S60 5.0
     * @param aScanState Scanning satus flag
@@ -65,7 +56,7 @@
     virtual void SetRefreshingL( TBool aRefreshing ) = 0;
     
     /**
-    * Sets refreshing status on/off.
+    * Sets connecting status on.
     * @since S60 5.0
     * @param aScanState Refreshing status flag
     */
--- a/wlanutilities/wlansniffer/aiplugin/inc/wsfdbobserver.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsfdbobserver.h	Wed Mar 31 23:17:49 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description: 
-*        Header file for CWlanPluginDbObserver class.
+*        Header file for CWsfDbObserver class.
 *
 */
 
@@ -39,15 +39,13 @@
     public:
         /**
         * The Constructor.
-        * @param aState Pointer to the WLAN State object.
         */
-    	CWsfDbObserver(  );
+    	CWsfDbObserver();
         
         /**
         * First phase of two phased construction.
-        * @param aState Pointer to the WLAN State object.
         */
-        static CWsfDbObserver* NewL(  );
+        static CWsfDbObserver* NewL();
         
         /**
         * This function activates this object as an active object.
@@ -86,6 +84,11 @@
         * is called.
         */
         void DoCancel();
+        
+        /**
+         * @see CActive
+         */
+        TInt RunError( TInt aError );
  
     private:
         /**
@@ -100,12 +103,6 @@
 
     private:  
         /**
-        * @var Pointer to the WLAN state object to ask and set scanning
-        * state.
-        */ 
-        //CWlanPluginWlanState * iWlanState;
-        
-        /**
         * A CommsDat session fod database access.
         */
         CMDBSession* iSession;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlansniffer/aiplugin/inc/wsflaunchaihelperactivewrapper.h	Wed Mar 31 23:17:49 2010 +0300
@@ -0,0 +1,171 @@
+/*
+ * Copyright (c) 2007-2008 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:  Implementation of CWsfLaunchAiHelperActiveWrapper.
+ *
+ */
+
+#ifndef CWSFLAUNCHAIHELPERACTIVEWRAPPER_H
+#define CWSFLAUNCHAIHELPERACTIVEWRAPPER_H
+
+//  EXTERNAL INCLUDES
+#include <e32base.h>
+
+//  INTERNAL INCLUDES
+#include "wsfaicontroller.h"
+
+//  FORWARD DECLARATIONS
+class CWsfModel;
+
+/**
+ *  Active object launches ai helper
+ *
+ *  @lib wsfaiplugin.lib
+ *  @since S60 v5.2
+ */
+class CWsfLaunchAiHelperActiveWrapper : public CActive
+    {
+public: // Constructors and destructor
+
+    /**
+     * Destructor
+     * @since S60 5.2     
+     */
+    ~CWsfLaunchAiHelperActiveWrapper();
+
+    /**
+     * Two-phased constructor.
+     * @since S60 5.2     
+     */
+    static CWsfLaunchAiHelperActiveWrapper* NewL( CWsfModel* aModel,
+                                            TWsfAiController &aController );
+
+    /**
+     * Two-phased constructor.
+     * @since S60 5.2     
+     */
+    static CWsfLaunchAiHelperActiveWrapper* NewLC( CWsfModel* aModel, 
+                                             TWsfAiController &aController );
+
+public:
+    /**
+     * Function for making the initial request
+     * @since S60 5.2
+     * @param aWlanInfo The WlanInfo object to be passed to the helper app
+     * @param aConnectOnly ETrue if we are only connecting, 
+     *                     EFalse if we should also launch the browser   
+     * @param aTestAccessPoint ETrue if ICT is executed, 
+     *                         EFalse if ICT is not executed  
+     */
+    void Start( TWsfWlanInfo& aInfo, TBool aConnectOnly, 
+                TBool aTestAccessPoint );
+
+private:
+    
+    /**
+     * constructor
+     */
+    CWsfLaunchAiHelperActiveWrapper();
+
+    /**
+     * Factory function.
+     * @since S60 5.2
+     * @param aModel Whether to react to screensaver events 
+     * @param aController Whether to react to screensaver events
+     */
+    void ConstructL( CWsfModel* aModel, TWsfAiController &aController );
+
+private: // From CActive
+
+    /**
+     * @see CActive
+     */
+    void RunL();
+
+    /**
+     * @see CActive
+     */
+    void DoCancel();
+
+    /**
+     * @see CActive
+     */
+    TInt RunError( TInt aError );
+
+private:
+
+    /**
+     * States of the active object
+     */
+    enum TCWsfWLANListActiveWrapperState
+        {
+        EUninitialized, // Uninitialized
+        EInitialized, // Initalized
+        EError // Error condition
+        };
+
+private:
+
+    /**
+     * State of the active object
+     */
+    TInt iState; 
+
+    /**
+     * Reference to Model
+     */
+    CWsfModel* iModel;
+
+    /**
+     * Pointer to TWsfAiController
+     */
+    TWsfAiController *iController;
+    
+    /**
+    * Handle to the ai helper exit code property value
+    */
+    RProperty iAiHelperAppExitCode;
+    
+    /**
+    * Handle to the ai helper iap id property value
+    */
+    RProperty iAiHelperAppIapId;
+    
+    /**
+    * Cache of the used info
+    */
+    TWsfWlanInfo iUsedInfo;
+    
+    /**
+    * Indicates if "Connect" or "Start Web browsing" is selected.
+    */
+    TBool iConnectOnly;
+    
+    /**
+    * Indicates if ICT needs to be executed
+    */
+    TBool iTestAccessPoint;
+    
+    /**
+    * Indicates if ai helper was stopped
+    */
+    TBool iStoppingHelper;
+    
+    /**
+    * Timer to wait for ai helper to close
+    */
+    RTimer iTimer; 
+
+    };
+
+#endif // CWSFLAUNCHAIHELPERACTIVEWRAPPER_H
--- a/wlanutilities/wlansniffer/aiplugin/src/wsfactivewrappers.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/src/wsfactivewrappers.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -24,6 +24,7 @@
 #include "wsfrefreshscanactivewrapper.h"
 #include "wsfdisconnectactivewrapper.h"
 #include "wsfconnectactivewrapper.h"
+#include "wsflaunchaihelperactivewrapper.h"
 
 
 // ----------------------------------------------------------------------------
@@ -46,6 +47,7 @@
     delete iRefreshScanActiveWrapper;
     delete iDisconnectActiveWrapper;
     delete iConnectActiveWrapper;
+    delete iLaunchAiHelperActiveWrapper;
     }
 
 
@@ -57,9 +59,9 @@
         TWsfAiController &aController )
     {
     LOG_ENTERFN( "CWsfActiveWrappers::NewLC" );
-    CWsfActiveWrappers* self = new (ELeave) CWsfActiveWrappers();
+    CWsfActiveWrappers* self = new ( ELeave ) CWsfActiveWrappers();
     CleanupStack::PushL( self );
-    self->ConstructL( aModel,aController );
+    self->ConstructL( aModel, aController );
     return self;
     }
 
@@ -94,6 +96,9 @@
     iDisconnectActiveWrapper = CWsfDisconnectActiveWrapper::NewL( aModel );
     
     iConnectActiveWrapper = CWsfConnectActiveWrapper::NewL( aModel );
+    
+    iLaunchAiHelperActiveWrapper = CWsfLaunchAiHelperActiveWrapper::NewL( 
+                                                          aModel, aController );
     }
 
 
@@ -142,6 +147,19 @@
 
 
 // ----------------------------------------------------------------------------
+// CWsfActiveWrappers::LaunchHelperApplicationL
+// ----------------------------------------------------------------------------
+//
+void CWsfActiveWrappers::LaunchHelperApplicationL( TWsfWlanInfo& aInfo, 
+                                                   TBool aConnectOnly,
+                                                   TBool aTestAccessPoint )
+    {
+    LOG_ENTERFN( "CWsfActiveWrappers::LaunchHelperApplicationL" );
+    iLaunchAiHelperActiveWrapper->Start( aInfo, aConnectOnly, aTestAccessPoint );
+    }
+
+
+// ----------------------------------------------------------------------------
 // CWsfActiveWrappers::GetWLANList
 // ----------------------------------------------------------------------------
 //
--- a/wlanutilities/wlansniffer/aiplugin/src/wsfaicontroller.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/src/wsfaicontroller.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -66,12 +66,7 @@
 //  LOCAL DEFINITIONS
 LOCAL_D const TInt KFirstItemArrayIndex = 0;
 
-// Category UID of AiHelper property
-static const TUid KWsfAiHelperCategoryUid = { 0x10281CEB };
-
-// key numbers within the property 
-static const TUint KWsfAiHelperExitCodeKey = 0;
-static const TUint KWsfAiHelperIapIdKey = 1;
+// index value to suppress 1 second refreshing state
 static const TInt KSuppressRefreshIndex = 1024;
 
 
@@ -227,9 +222,6 @@
     
     MDesCArray* data = iAiModel->FormatSingleLineWlanListL( iInfoArray );
     
-    // index value to suppress 1 second refreshing state
-    const TInt KSuppressRefreshIndex = 1024;
-    
     iUi->UpdateHotSpotsL( data, KSuppressRefreshIndex );    
     }
 
@@ -292,20 +284,6 @@
 
 
 // --------------------------------------------------------------------------
-// TWsfAiController::DismissDialogsL
-// --------------------------------------------------------------------------
-//
-void TWsfAiController::DismissDialogsL()
-    {
-    LOG_ENTERFN("TWsfAiController::DismissDialogsL" );
-    TKeyEvent key;
-    key.iCode = EKeyEscape;
-    key.iModifiers = 0;
-    iEnv->SimulateKeyEventL( key, EEventKey );
-    }
-
-
-// --------------------------------------------------------------------------
 // TWsfAiController::WlanListChangedL
 // --------------------------------------------------------------------------
 //
@@ -528,7 +506,7 @@
     
     if ( !iUsedInfo.Connected() )
         {
-        ConnectL( iUsedInfo, EFalse );
+        ConnectL( iUsedInfo, EFalse, EFalse );
         }
     else
         {
@@ -574,13 +552,14 @@
 // TWsfAiController::ConnectL
 // --------------------------------------------------------------------------
 //
-void TWsfAiController::ConnectL( TWsfWlanInfo& aInfo, TBool aShoulConnectOnly )
+void TWsfAiController::ConnectL( TWsfWlanInfo& aInfo, TBool aConnectOnly, 
+                                 TBool aTestAccessPoint )
     {
     LOG_ENTERFN( "TWsfAiController::ConnectL" );
     
     _ASS_D( iModel );
-    iTestAccessPoint = EFalse;
-    iShouldConnectOnly = aShoulConnectOnly;
+    iTestAccessPoint = aTestAccessPoint;
+    iShouldConnectOnly = aConnectOnly;
     iUsedInfo = aInfo;
     
     // Prevent connections to ad-hoc + WPA 
@@ -629,9 +608,10 @@
         {
         // let the helper app do the query if necessary
         LOG_WRITE("AiHelper needs to be launched");
-        LaunchAiHelperAppL( iUsedInfo );
-        ConnectingL( iUsedInfo.iIapId );
         iTestAccessPoint = ETrue;
+        iActiveWrappers->LaunchHelperApplicationL( iUsedInfo, 
+                                                   iShouldConnectOnly,
+                                                   iTestAccessPoint );
         }
     
     // Connect
@@ -646,7 +626,6 @@
             {
             iActiveWrappers->Connect( iUsedInfo.iIapId, EIapPersistent );
             }
-
         }
     // pop cleanup item 
     CleanupStack::Pop();
@@ -668,54 +647,6 @@
 
 
 // --------------------------------------------------------------------------
-// TWsfAiController::LaunchAiHelperAppL
-// --------------------------------------------------------------------------
-//
-void TWsfAiController::LaunchAiHelperAppL( TWsfWlanInfo& aInfo )
-    {
-    LOG_ENTERFN( "TWsfAiController::LaunchAiHelperAppL" );
-
-    CWsfActiveWaiter* waiter = CWsfActiveWaiter::NewL();
-    CleanupStack::PushL( waiter );
-    
-    RProperty aiHelperApp;
-    User::LeaveIfError( aiHelperApp.Attach( 
-                                       KWsfAiHelperCategoryUid, 
-                                       KWsfAiHelperExitCodeKey ) );
-    CleanupClosePushL( aiHelperApp );
-    
-    aiHelperApp.Subscribe( waiter->iStatus );
-
-    LOG_WRITE("launching...");
-    iModel->LaunchHelperApplicationL( aInfo, ETrue, EFalse );
-    waiter->WaitForRequest();
-    
-    TInt exitCode( KErrNone );
-    aiHelperApp.Get( exitCode );
-    
-    LOG_WRITEF("AiHelper returned %d", exitCode );   
-    
-    if ( exitCode == KErrNone )
-        {
-        User::LeaveIfError( aiHelperApp.Attach( 
-                                       KWsfAiHelperCategoryUid, 
-                                       KWsfAiHelperIapIdKey ) );
-        TInt iapId( 0 );
-        aiHelperApp.Get( iapId );
-        aInfo.iIapId = TUint32( iapId );
-        LOG_WRITEF("AiHelper iap id = %d", iapId );
-        }
-    else
-        {
-        User::Leave( exitCode );
-        }
-    
-    CleanupStack::PopAndDestroy( &aiHelperApp );
-    CleanupStack::PopAndDestroy( waiter );
-    }
-
-
-// --------------------------------------------------------------------------
 // TWsfAiController::ContinueBrowsingL
 // --------------------------------------------------------------------------
 //
@@ -1092,13 +1023,14 @@
                 
                 if ( LaunchSearchDialogL( info ) )
                     {
-                    ConnectL( info, ETrue );
+                    ConnectL( info, ETrue, EFalse );
                     }
                 }
             else
                 {
                 // there are known networks
-                ConnectL( *wlanArray->At( KFirstItemArrayIndex ), ETrue );
+                ConnectL( *wlanArray->At( KFirstItemArrayIndex ), ETrue, 
+                          EFalse );
                 }
             
             break;
@@ -1120,7 +1052,7 @@
             
             if ( LaunchSearchDialogL( info ) )
                 {
-                ConnectL( info, ETrue );
+                ConnectL( info, ETrue, EFalse );
                 }
 
             break;
@@ -1243,8 +1175,15 @@
 void TWsfAiController::RefreshRefreshingL()
 	{
 	LOG_ENTERFN( "TWsfAiController::RefreshRefreshingL" );
-	MDesCArray *data = iAiModel->FormatRefreshingL();
-    iUi->UpdateViewL( data );
+	if ( !iUi->MultilineControl() )
+	    {
+        MDesCArray *data = iAiModel->FormatRefreshingL();
+        iUi->UpdateViewL( data );
+	    }
+	else
+	    {
+        LOG_WRITE( "Multiline control in use - no update done" );
+	    }
 	}
 
 // --------------------------------------------------------------------------
@@ -1254,8 +1193,15 @@
 void TWsfAiController::RefreshConnectingL()
     {
     LOG_ENTERFN( "TWsfAiController::RefreshConnectingL" );
-    MDesCArray *data = iAiModel->FormatConnectingL();
-    iUi->UpdateViewL( data );
+    if ( !iUi->MultilineControl() )
+        {
+        MDesCArray *data = iAiModel->FormatConnectingL();
+        iUi->UpdateViewL( data );
+        }
+    else       
+        {
+        LOG_WRITE( "Multiline control in use - no update done" );
+        }
     }
 
 // End of file
--- a/wlanutilities/wlansniffer/aiplugin/src/wsfaiplugin.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/src/wsfaiplugin.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -15,6 +15,8 @@
 *
 */
 
+
+
 //  EXTERNAL INCLUDES
 #include <aicontentobserver.h>
 #include <aiutility.h>
@@ -50,8 +52,6 @@
 
 
 // define icon id for Navigation Bar icon
-LOCAL_D const TInt KNaviBarIcon = EWlanOffIcon;
-LOCAL_D const TInt KTransparentIcon = ETransparentIcon;
 LOCAL_D const TUid KUidSnifferApp = {0x10281CAA};
 LOCAL_D const TInt KRefreshStepTime = 200 * 1000;
 LOCAL_D const TInt KConnectingStepTime = 200 * 1000;
@@ -98,14 +98,6 @@
     delete iModel;
     delete iAiModel;
     delete iUi;
-
-    delete iCurrentSignalStrength;
-    delete iCurrentSecureInfo;
-    
-    if ( iWlanTitle )
-        {
-        delete iWlanTitle;
-        }
     
     if ( iMskActivate )
         {
@@ -184,7 +176,6 @@
     TInt rightBoundary( 0 );
     TChar boundary('\'');
     HBufC* localCurrentStatusText( NULL );
-    HBufC* localCurrentTypeText( NULL );
     
     HBufC* localCurrentNetworkStatus( NULL );
     HBufC* localCurrentNetworkName( NULL );
@@ -201,19 +192,18 @@
          leftBoundary != KErrNotFound && 
          rightBoundary != KErrNotFound )
         {
+        LOG_WRITE( "status name exists" );
         TPtrC begin = fullText.Mid( leftBoundary, 
                                     rightBoundary - leftBoundary + 1 );
         localCurrentStatusText = begin.AllocLC();
         localCurrentNetworkName = begin.AllocLC();
 
         TPtrC end = fullText.Mid( rightBoundary + 1 );
-        localCurrentTypeText = end.AllocLC();
        }
     else
         {
+        LOG_WRITE( "status name does not exist" );
         localCurrentStatusText = fullText.AllocLC();
-        delete localCurrentTypeText;
-        localCurrentTypeText = NULL;
         }
     
     //Connected
@@ -221,6 +211,7 @@
         {
         if ( iAiModel->Connected() )
             {
+            LOG_WRITE( "ai model is connected" );
             if ( !iConnectedTo )
                 {
                 iConnectedTo = StringLoader::LoadL( 
@@ -235,11 +226,13 @@
                 iKnownNetworkFound = StringLoader::LoadL( 
                         R_QTN_SNIFFER_PLUG_IN_WLAN_NETWORK_FOUND );
                 }
+            LOG_WRITE( "there is known network" );
             localCurrentNetworkStatus = iKnownNetworkFound;
             }
         }
     else
         {
+        LOG_WRITE( "use current status text" );
         localCurrentNetworkStatus = localCurrentStatusText;
         }
 
@@ -252,93 +245,40 @@
           iCurrentObserverIndex < iObservers.Count(); 
           ++iCurrentObserverIndex )
         {
+        LOG_WRITEF( "Start publish - index = %d", iCurrentObserverIndex );
+        
         MAiContentObserver* observer = iObservers[iCurrentObserverIndex];
         observer->StartTransaction( reinterpret_cast<TInt32>( this ) );
         // make sure we cancel the tracsaction if leaves
         CleanupStack::PushL( TCleanupItem( PublishCleanup, this ) );
 
-        // Publish Full Text if Classic or Navigation Bar Classic used
-        if ( localFullText )
-            {
-            published = PublishText( observer, 
-                                     EAiWizardContentFullText,
-                                     *localFullText ) || published;
-            }
-
-        // Publish Navigation Bar Icon: EAiWizardContentNaviBarIcon
-        published = PublishIconL( observer, 
-                                  EAiWizardContentNaviBarIcon,
-                                  KNaviBarIcon ) || published;
-
-        // Publish Application Title: EAiWizardContentTitleText
-        if ( !iWlanTitle )
-            {
-            iWlanTitle = StringLoader::LoadL( R_QTN_AI_WIZARD_TITLE );
-            }
-        if ( iWlanTitle )
-            {
-            published = PublishText( observer, 
-                                     EAiWizardContentTitleText,
-                                     *iWlanTitle ) || published;
-            }
-
         if ( localCurrentStatusText )
             {
+            LOG_WRITE( "Publish -> status icon" );
             // Publish Status icon: EAiWizardContentStatusIcon
             iconId = aPublishIconArray->At( 0 );
             published = PublishIconL( observer, 
                                       EAiWizardContentStatusIcon,
                                       iconId ) || published;
-            
-            // Publish Status text: EAiWizardContentStatusText
-            published = PublishText( observer, 
-                                     EAiWizardContentStatusText,
-                                     *localCurrentStatusText ) || published;
             }
 
-        if ( localCurrentTypeText )
-            {
-            // Publish Type icon: EAiWizardContentTypeIcon
-            published = PublishIconL( observer, 
-                                      EAiWizardContentTypeIcon,
-                                      KTransparentIcon ) || published;
-
-            // Publish Type text: EAiWizardContentTypeText
-            published = PublishText( observer, 
-                                     EAiWizardContentTypeText,
-                                     *localCurrentTypeText ) || published;
-            }
-
+        LOG_WRITE( "Publish -> Strength icon" );
         // Publish Strength icon: EAiWizardContentStrengthIcon
         iconId = aPublishIconArray->At( 2 );
         published = PublishIconL( observer, 
                                   EAiWizardContentStrengthIcon,
                                   iconId ) || published;
 
-        // Publish Strength text: EAiWizardContentStrengthText
-        if ( iCurrentSignalStrength && iScanState )
-            {
-            published = PublishText( observer, 
-                                     EAiWizardContentStrengthText,
-                                     *iCurrentSignalStrength ) || published;
-            }
-
+        LOG_WRITE( "Publish -> secure icon" );
         // Publish Secure icon: EAiWizardContentSecureIcon
         iconId = aPublishIconArray->At( 1 );
         published = PublishIconL( observer, 
                                   EAiWizardContentSecureIcon,
                                   iconId ) || published;
-
-        // Publish Secure text: EAiWizardContentSecureText
-        if ( iCurrentSecureInfo && iScanState )
-            {
-            published = PublishText( observer, 
-                                     EAiWizardContentSecureText,
-                                     *iCurrentSecureInfo ) || published;
-            }
         
         if ( localCurrentNetworkName )
             {
+            LOG_WRITE( "Publish -> localCurrentNetworkName" );
             // Publish NetworkName text: EAiWizardContentNetworkName
             published = PublishText( observer, 
                                      EAiWizardContentNetworkName,
@@ -347,6 +287,7 @@
         
         if ( localCurrentNetworkStatus )
             {
+            LOG_WRITE( "Publish -> localCurrentNetworkStatus" );
             // Publish NetworkName text: EAiWizardContentNetworkName
             published = PublishText( observer, 
                                      EAiWizardContentNetworkStatus,
@@ -357,20 +298,19 @@
         // otherwise cancel transaction
         if ( published )
             {
+            LOG_WRITE( "Commit" );
             observer->Commit( reinterpret_cast<TInt32>( this ) );
             published = EFalse;
             }
         else
             {
+            LOG_WRITE( "Cancel transaction" );
             observer->CancelTransaction( reinterpret_cast<TInt32>( this ) );
             }
         CleanupStack::Pop( 1 ); // PublishCleanup()
         }
     
-    if ( localCurrentTypeText ) 
-        {
-        CleanupStack::PopAndDestroy( localCurrentTypeText );
-        }
+    LOG_WRITE( "Publishing ready" );
     
     if ( localCurrentNetworkName ) 
         {
@@ -469,9 +409,6 @@
             delete iAnimationPeriodic;
             iAnimationPeriodic = NULL;
             }
-                
-        // HS went to background -> dismiss open dialogs/menus
-        TRAP_IGNORE( iController.DismissDialogsL() );
         }
     }
 
@@ -570,58 +507,21 @@
 
         observer->StartTransaction( reinterpret_cast<TInt32>( this ) );
 
-        observer->Clean( *this, EAiWizardContentNaviBarIcon, 
-                                EAiWizardContentNaviBarIcon );
-        observer->Clean( *this, EAiWizardContentTitleText, 
-                                EAiWizardContentTitleText );
         observer->Clean( *this, EAiWizardContentStatusIcon, 
                                 EAiWizardContentStatusIcon );
-        observer->Clean( *this, EAiWizardContentStatusText, 
-                                EAiWizardContentStatusText );
-        observer->Clean( *this, EAiWizardContentTypeIcon,
-                                EAiWizardContentTypeIcon );
-        observer->Clean( *this, EAiWizardContentTypeText, 
-                                EAiWizardContentTypeText );
         observer->Clean( *this, EAiWizardContentStrengthIcon, 
                                 EAiWizardContentStrengthIcon );
-        observer->Clean( *this, EAiWizardContentStrengthText, 
-                                EAiWizardContentStrengthText );
         observer->Clean( *this, EAiWizardContentSecureIcon, 
                                 EAiWizardContentSecureIcon );
-        observer->Clean( *this, EAiWizardContentSecureText, 
-                                EAiWizardContentSecureText );
         observer->Clean( *this, EAiWizardContentNetworkName, 
                                 EAiWizardContentNetworkName );
+        
         observer->Commit( reinterpret_cast<TInt32>( this ) );
         }
     }
 
 
 // --------------------------------------------------------------------------
-// CWsfAiPlugin::SetStrengthAndSecure
-// --------------------------------------------------------------------------
-//
-void CWsfAiPlugin::SetStrengthAndSecure( TDesC* aStrength, TDesC* aSecure )
-    {
-    LOG_ENTERFN( "CWsfAiPlugin::SetStrengthAndSecure" );
-    delete iCurrentSignalStrength;
-    iCurrentSignalStrength = NULL;
-    if ( aStrength && aStrength->Length() > 0)
-        {
-        iCurrentSignalStrength = aStrength->Alloc();
-        }
-
-    delete iCurrentSecureInfo;
-    iCurrentSecureInfo = NULL;
-    if ( aSecure && aSecure->Length() > 0)
-        {
-        // r_qtn_sniffer_plug_in_content_secure
-        iCurrentSecureInfo = aSecure->Alloc();
-        }
-    }
-
-
-// --------------------------------------------------------------------------
 // CWsfAiPlugin::SetScanningState
 // --------------------------------------------------------------------------
 //
@@ -847,10 +747,15 @@
 //
 void CWsfAiPlugin::PublishCleanup( TAny* aPtr )
     {
-    LOG_ENTERFN( "CWsfAiPlugin::PublishClearup" );
+    LOG_ENTERFN( "CWsfAiPlugin::PublishCleanup" );
     CWsfAiPlugin* self = static_cast<CWsfAiPlugin*>( aPtr );
-    self->iObservers[self->iCurrentObserverIndex]
+    
+    if ( self && self->iCurrentObserverIndex < self->iObservers.Count() )
+        {
+        LOG_WRITE( "Cancel transaction" );
+        self->iObservers[self->iCurrentObserverIndex]
                      ->CancelTransaction( reinterpret_cast<TInt32>( self ) );
+        }
     }
 
 
--- a/wlanutilities/wlansniffer/aiplugin/src/wsfaiview.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/src/wsfaiview.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -198,7 +198,13 @@
         }
 
     iPublishObserver->SetScanningState( ETrue );
-    iPublishObserver->PublishContentL( iPublishIconArray, iTextLabel );
+
+    TRAPD( error, 
+           iPublishObserver->PublishContentL( iPublishIconArray, iTextLabel ) );
+    if ( error )
+        {
+        LOG_WRITEF( "Publish failed - %d error ignored", error );
+        }
     }
 
 
@@ -222,15 +228,18 @@
     LOG_ENTERFN( "CWsfAiView::ForceRefreshingL" );
     }
 
+
 // --------------------------------------------------------------------------
 // CWsfAiPlugin::SetRefreshingL
 // --------------------------------------------------------------------------
 //
 void CWsfAiView::StartConnectingAnimationL()
     {
+    LOG_ENTERFN( "CWsfAiView::StartConnectingAnimationL" );
     iPublishObserver->StartConnectingL();    
     }
 
+
 // --------------------------------------------------------------------------
 // CWsfAiView::MultilineControl
 // --------------------------------------------------------------------------
@@ -267,8 +276,6 @@
                                         delimiter ) + secondTabPos + 1;
 
     // ok we have the tab positions read the values...
-
-    TInt secVal = 0;
     //read the icons
     TLex( aString.Mid( 0, firstTabPos )).Val( (TInt&)statusIcon );
     TLex( aString.Mid(
@@ -278,16 +285,6 @@
     TLex( aString.Mid(
         thirdTabPos+1 , aString.Length() - ( thirdTabPos + 1 ) )
         ).Val( (TInt&) secureicon );
-    
-    secVal = secureicon;
-    HBufC* secureString = NULL;
-
-    iPublishObserver->SetStrengthAndSecure( NULL, secureString );
-    if ( secVal == ESecureNetworkIcon )
-        {
-        delete secureString;
-        secureString = NULL;
-        }
 
     // and the label text
     TPtrC labelText = aString.Mid( firstTabPos+1, 
@@ -328,7 +325,14 @@
     iUpdateStatusIconDeferred = iSavedUpdateStatusIconDeferred;
     
     MakePublishIconsL();
-    iPublishObserver->PublishContentL( iPublishIconArray, iTextLabel );
+    
+    TRAPD( error, 
+           iPublishObserver->PublishContentL( iPublishIconArray, iTextLabel ) );
+    if ( error )
+        {
+        LOG_WRITEF( "Publish failed - %d error ignored", error );
+        }
+    
     iPublishObserver->SetRefreshingL( EFalse );
     }
 
@@ -368,7 +372,13 @@
     iUpdateStatusIconDeferred = EWlanOffIcon;
     iPublishObserver->SetScanningState( EFalse );
     MakePublishIconsL();
-    iPublishObserver->PublishContentL( iPublishIconArray, iTextLabel );
+    
+    TRAPD( error, 
+           iPublishObserver->PublishContentL( iPublishIconArray, iTextLabel ) );
+    if ( error )
+        {
+        LOG_WRITEF( "Publish failed - %d error ignored", error );
+        }
     }
 
 
@@ -401,7 +411,6 @@
         iPublishIconArray->AppendL( iUpdateSecureIconDeferred );
         iPublishIconArray->AppendL( iUpdateSignalStrengthIconDeferred );
         }
-
     }
 
 
@@ -426,6 +435,11 @@
     iUpdateSignalStrengthIconDeferred = tmp3;
     }
 
+
+// --------------------------------------------------------------------------
+// CWsfAiView::UpdateViewL()
+// --------------------------------------------------------------------------
+//
 void CWsfAiView::UpdateViewL( MDesCArray* aItemTextArray )
 	{
 	LOG_ENTERFN( "CWsfAiView::UpdateViewL" );
--- a/wlanutilities/wlansniffer/aiplugin/src/wsfdbobserver.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/src/wsfdbobserver.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -18,6 +18,7 @@
 */
 
 
+
 //User includes
 #include "wsfdbobserver.h"
 #include "wsfaicontroller.h"
@@ -31,9 +32,9 @@
 
 const TInt KWlanSettingsUiDefaultScanNetwork = 300;
 
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::CWlanPluginDbObserver
-// Constructor
+// CWsfDbObserver::CWsfDbObserver
 // ---------------------------------------------------------
 CWsfDbObserver::CWsfDbObserver(  ) 
 : CActive( EPriorityNormal ),
@@ -41,8 +42,9 @@
     {
     }
     
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::NewL
+// CWsfDbObserver::NewL
 // ---------------------------------------------------------    
 CWsfDbObserver* CWsfDbObserver::NewL(  )
     {
@@ -52,9 +54,10 @@
     CleanupStack::Pop();
     return self;
     }
-       
+
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::ConstructL
+// CWsfDbObserver::ConstructL
 // ---------------------------------------------------------   
 void CWsfDbObserver::ConstructL()
     {
@@ -64,18 +67,15 @@
     
     FeatureManager::InitializeLibL(); 
          
-    CActiveScheduler::Add(this);
+    CActiveScheduler::Add( this );
+    }
 
-  }
-    
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::~CWlanPluginDbObserver
-// Destructor
+// CWsfDbObserver::~CWsfDbObserver
 // ---------------------------------------------------------       
 CWsfDbObserver::~CWsfDbObserver()
     {
-    
-    
     Cancel();
     
     delete iRecord;
@@ -84,24 +84,23 @@
             
     delete iWlanMgmtClient;
     
- 		FeatureManager::UnInitializeLib();  
+    FeatureManager::UnInitializeLib();  
     }
 
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::RunL
+// CWsfDbObserver::RunL
 // ---------------------------------------------------------       
 void CWsfDbObserver::RunL()
     {
     LOG_ENTERFN( "CWsfDbObserver::RunL" );        
-    //iSession->OpenTransactionL();
-    //iRecord->RefreshL( *iSession );
     iRecord->LoadL( *iSession );
-    //iSession->CommitTransactionL();        
     
     //if scanning state changed start or stop the server
     TInt i = iRecord->iBgScanInterval;
     TInt j = iRecord->iSavedBgScanInterval;
-    LOG_WRITEF( "CWsfDbObserver::RunL -- Bg:%d bg2:%d O:%d", i, j, iOuterScanState );
+    LOG_WRITEF( "CWsfDbObserver::RunL -- Bg:%d bg2:%d O:%d", i, j, 
+                                                              iOuterScanState );
     if ( iRecord->iBgScanInterval == 0 && iOuterScanState )
         {
         LOG_WRITE( "CWsfDbObserver::RunL -- Scan disabled" );
@@ -118,34 +117,33 @@
     SetActive();
     
     iRecord->RequestNotification(*iSession,iStatus);
-    
     }
 
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::DoCancel
+// CWsfDbObserver::DoCancel
 // ---------------------------------------------------------       
 void CWsfDbObserver::DoCancel()
     {
-    
     iRecord->CancelNotification( *iSession, iStatus );       
-    
     }
 
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::ActivateIt
+// CWsfDbObserver::ActivateIt
 // ---------------------------------------------------------       
 void CWsfDbObserver::ActivateItL()
     {
+    LOG_ENTERFN( "CWsfDbObserver::ActivateItL" );
     
     iSession = CMDBSession::NewL( KCDLatestVersion );
-    
+
     TMDBElementId tableId = 0;
-    
+
     tableId = CCDWlanDeviceSettingsRecord::TableIdL( *iSession );
-        
-    iRecord = new( ELeave )
-            CCDWlanDeviceSettingsRecord( tableId );         
-    
+
+    iRecord = new (ELeave) CCDWlanDeviceSettingsRecord( tableId );
+
     iRecord->iWlanDeviceSettingsType = KWlanUserSettings;
     
     
@@ -165,91 +163,114 @@
     
     }
 
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::SetController
+// CWsfDbObserver::SetController
 // ---------------------------------------------------------  
 void CWsfDbObserver::SetController( TWsfAiController* aController )
 	{
 	iController = aController;
 	}
 
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::EnableScanL
+// CWsfDbObserver::EnableScanL
 // ---------------------------------------------------------  
 void CWsfDbObserver::EnableScanL()
     {
-	if( !iOuterScanState )
+    LOG_ENTERFN( "CWsfDbObserver::EnableScanL" );
+    if ( !iOuterScanState )
         {
-        iSession->OpenTransactionL();
         iRecord->RefreshL( *iSession );
         if ( iRecord->iBgScanInterval == 0 ) // not scanning
-        	{
-        	TInt j;
-        	j = iRecord->iSavedBgScanInterval;
-        	if( j == 0 )
-        		{
-        		j = DefaultScanIntervalL();        		
-        		}
-        	iRecord->iBgScanInterval = j;
-        	iRecord->ModifyL( *iSession );
-        	iOuterScanState = ETrue;
-        	}
-        iSession->CommitTransactionL();
+            {
+            TInt j;
+            j = iRecord->iSavedBgScanInterval;
+            if ( j == 0 )
+                {
+                j = DefaultScanIntervalL();
+                }
+            iRecord->iBgScanInterval = j;
+            iRecord->ModifyL( *iSession );
+            iOuterScanState = ETrue;
+            }
 #ifndef __WINS__
         // Notifying WLAN Engine about changes in settings
         iWlanMgmtClient->NotifyChangedSettings();
 #endif
         }
     }
-        
+       
+
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::DisableScanL
+// CWsfDbObserver::DisableScanL
 // ---------------------------------------------------------     
 void CWsfDbObserver::DisableScanL()
-	{
-	if( iOuterScanState )
-		{
-		iSession->OpenTransactionL();
-		iRecord->RefreshL( *iSession );
+    {
+    LOG_ENTERFN( "CWsfDbObserver::DisableScanL" );
+    if ( iOuterScanState )
+        {
+        iRecord->RefreshL(*iSession);
         if ( iRecord->iBgScanInterval != 0 ) // scanning
-        	{
-        	TInt i;
-        	i = iRecord->iBgScanInterval;
-        	iRecord->iBgScanInterval = 0;
-        	iRecord->iSavedBgScanInterval = i;
-        	iRecord->ModifyL( *iSession );
-        	iOuterScanState = EFalse;
-        	}
-        iSession->CommitTransactionL();
+            {
+            TInt i;
+            i = iRecord->iBgScanInterval;
+            iRecord->iBgScanInterval = 0;
+            iRecord->iSavedBgScanInterval = i;
+            iRecord->ModifyL( *iSession );
+            iOuterScanState = EFalse;
+            }
 #ifndef __WINS__
         // Notifying WLAN Engine about changes in settings
         iWlanMgmtClient->NotifyChangedSettings();
 #endif
-		}
-	}
+        }
+    }
+
 
 // ---------------------------------------------------------
-// CWlanPluginDbObserver::DefaultScanInterval
+// CWsfDbObserver::DefaultScanInterval
 // ---------------------------------------------------------     
 TInt CWsfDbObserver::DefaultScanIntervalL()
-    {  
-	  	TBool iPsmSupported = FeatureManager::FeatureSupported( KFeatureIdPowerSave );
-			if ( iPsmSupported )
-				{
-    		// Read the default value from CenRep (different in PSM mode)
-    		TInt defaultScanInterval( KWlanSettingsUiDefaultScanNetwork );
-    
-    		CRepository* repository = CRepository::NewLC( KCRUidWlanDeviceSettingsRegistryId ); 
-    		if ( repository )
-    			{
-      	  	repository->Get( KWlanDefaultBGScanInterval, defaultScanInterval );
-    			}     
-    		 CleanupStack::PopAndDestroy( repository );
-   			 return  defaultScanInterval; 
- 				 } 
-  		else
-				{
-   			 return KWlanSettingsUiDefaultScanNetwork;
-  			}	
-     }
+    {
+    LOG_ENTERFN( "CWsfDbObserver::DefaultScanIntervalL" );
+    TBool iPsmSupported = FeatureManager::FeatureSupported(
+                                                        KFeatureIdPowerSave );
+    if ( iPsmSupported )
+        {
+        // Read the default value from CenRep (different in PSM mode)
+        TInt defaultScanInterval( KWlanSettingsUiDefaultScanNetwork );
 
+        CRepository* repository = CRepository::NewLC( 
+                KCRUidWlanDeviceSettingsRegistryId );
+        if ( repository )
+            {
+            repository->Get( KWlanDefaultBGScanInterval, defaultScanInterval );
+            }
+        CleanupStack::PopAndDestroy( repository );
+        return defaultScanInterval;
+        }
+    else
+        {
+        return KWlanSettingsUiDefaultScanNetwork;
+        }
+    }
+
+
+// ----------------------------------------------------------------------------
+// CWsfDbObserver::RunError
+// ----------------------------------------------------------------------------
+//
+#ifdef _DEBUG
+TInt CWsfDbObserver::RunError( TInt aError )
+    {
+    LOG_ENTERFN( "CWsfDbObserver::RunError" );
+    LOG_WRITEF( "aError = %d", aError );
+#else
+TInt CWsfDbObserver::RunError( TInt /*aError*/ )
+    {
+#endif
+    return KErrNone;
+    }
+
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wlanutilities/wlansniffer/aiplugin/src/wsflaunchaihelperactivewrapper.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2007-2008 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:  Implementation of CWsfLaunchAiHelperActiveWrapper.
+ *
+ */
+
+
+// INCLUDE FILES
+#include "wsflogger.h"
+#include "wsfmodel.h"
+#include "wsfaicontroller.h"
+#include "wsflaunchaihelperactivewrapper.h"
+
+// Category UID of AiHelper property
+static const TUid KWsfAiHelperCategoryUid = { 0x10281CEB };
+
+// key numbers within the property 
+static const TUint KWsfAiHelperExitCodeKey = 0;
+static const TUint KWsfAiHelperIapIdKey = 1;
+
+/**
+* Delay that we wait for the aihelper to terminate
+*/
+static const TInt KTimerTickInterval = 1 * 1000 * 1000; 
+
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::CWsfLaunchAiHelperActiveWrapper
+// ----------------------------------------------------------------------------
+//
+CWsfLaunchAiHelperActiveWrapper::CWsfLaunchAiHelperActiveWrapper() :
+    CActive( EPriorityStandard ) // Standard priority
+    {
+    }
+
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::NewLC
+// ----------------------------------------------------------------------------
+//
+CWsfLaunchAiHelperActiveWrapper* CWsfLaunchAiHelperActiveWrapper::NewLC( 
+                              CWsfModel* aModel, TWsfAiController &aController )
+    {
+    LOG_ENTERFN( "CWsfLaunchAiHelperActiveWrapper::NewLC" );
+    CWsfLaunchAiHelperActiveWrapper* self =
+            new (ELeave) CWsfLaunchAiHelperActiveWrapper();
+    CleanupStack::PushL( self );
+    self->ConstructL( aModel, aController );
+    return self;
+    }
+
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::NewL
+// ----------------------------------------------------------------------------
+//
+CWsfLaunchAiHelperActiveWrapper* CWsfLaunchAiHelperActiveWrapper::NewL( 
+                            CWsfModel* aModel, TWsfAiController &aController )
+    {
+    LOG_ENTERFN( "CWsfLaunchAiHelperActiveWrapper::NewL" );
+    CWsfLaunchAiHelperActiveWrapper* self = 
+            CWsfLaunchAiHelperActiveWrapper::NewLC( aModel, aController );
+    CleanupStack::Pop(); // self;
+    return self;
+    }
+
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::ConstructL
+// ----------------------------------------------------------------------------
+//
+void CWsfLaunchAiHelperActiveWrapper::ConstructL( CWsfModel* aModel,
+                                            TWsfAiController &aController )
+    {
+    LOG_ENTERFN( "CWsfLaunchAiHelperActiveWrapper::ConstructL" );
+    CActiveScheduler::Add( this ); // Add to scheduler
+    iModel = aModel;
+    iController = &aController;
+    User::LeaveIfError( iTimer.CreateLocal() );
+    User::LeaveIfError( iAiHelperAppExitCode.Attach( KWsfAiHelperCategoryUid, 
+                                                    KWsfAiHelperExitCodeKey ) );
+    
+    User::LeaveIfError( iAiHelperAppIapId.Attach( KWsfAiHelperCategoryUid, 
+                                                  KWsfAiHelperIapIdKey ) );
+    }
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::~CWsfLaunchAiHelperActiveWrapper
+// ----------------------------------------------------------------------------
+//
+CWsfLaunchAiHelperActiveWrapper::~CWsfLaunchAiHelperActiveWrapper()
+    {
+    LOG_ENTERFN( 
+               "CWsfLaunchAiHelperActiveWrapper::~CWsfWLANListActiveWrapper" );
+    Cancel(); // Cancel any request, if outstanding
+    // Delete instance variables if any
+    iAiHelperAppExitCode.Close();
+    iAiHelperAppIapId.Close();
+    iTimer.Close();
+    }
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::DoCancel
+// ----------------------------------------------------------------------------
+//
+void CWsfLaunchAiHelperActiveWrapper::DoCancel()
+    {
+    iAiHelperAppExitCode.Cancel();
+    iAiHelperAppIapId.Cancel();
+    iTimer.Cancel();
+    iStoppingHelper = iModel->CloseHelperApplication();
+    }
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::Start
+// ----------------------------------------------------------------------------
+//
+void CWsfLaunchAiHelperActiveWrapper::Start( TWsfWlanInfo& aInfo, 
+                                             TBool aConnectOnly,
+                                             TBool aTestAccessPoint )
+    {
+    LOG_ENTERFN( "CWsfLaunchAiHelperActiveWrapper::Start" );
+    iStoppingHelper = EFalse;
+    Cancel(); // Cancel any request, just to be sure
+    iState = EUninitialized;
+    iUsedInfo = aInfo;
+    iConnectOnly = aConnectOnly;
+    iTestAccessPoint = aTestAccessPoint;
+    
+    if ( iStoppingHelper )
+        {
+        LOG_WRITE( "Helper was stopped - wait for a while" );
+        iTimer.Cancel();
+        iTimer.After( iStatus, KTimerTickInterval );
+        }
+    else
+        {
+        LOG_WRITE( "Helper was not alive" );
+        TRequestStatus* status = &iStatus;
+        User::RequestComplete(status, KErrNone);
+        }
+    SetActive();
+    }
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::RunL
+// ----------------------------------------------------------------------------
+//
+void CWsfLaunchAiHelperActiveWrapper::RunL()
+    {
+    LOG_ENTERFN( "CWsfLaunchAiHelperActiveWrapper::RunL" );
+    if ( iStatus == KErrNone )
+        {
+        if ( iState == EUninitialized )
+            {
+            LOG_WRITE( "Start launching ai helper" );
+            // register for notification
+            iAiHelperAppExitCode.Subscribe( iStatus );
+            iModel->LaunchHelperApplicationL( iUsedInfo );
+            iState = EInitialized;
+            SetActive(); // Tell scheduler a request is active
+            }
+        else if (iState == EInitialized)
+            {
+            TInt exitCode( KErrNone );
+            iAiHelperAppExitCode.Get( exitCode );
+
+            LOG_WRITEF( "AiHelper returned %d", exitCode );
+
+            if ( exitCode == KErrNone )
+                {
+                TInt iapId(0);
+                iAiHelperAppIapId.Get( iapId );
+                iUsedInfo.iIapId = TUint32( iapId );
+                LOG_WRITEF( "AiHelper iap id = %d", iapId );
+                if ( iUsedInfo.iIapId )
+                    {
+                    LOG_WRITE( "Iap id exist - connect" );
+                    iController->ConnectL( iUsedInfo, iConnectOnly, 
+                                           iTestAccessPoint );
+                    }
+                else
+                    {
+                    LOG_WRITE( "No iap id from ai helper" );
+                    }
+                }
+            else
+                {
+                User::Leave(exitCode);
+                }
+            }
+        else
+            {
+            LOG_WRITEF( "iState = %d", iState );
+            }
+        }
+    else
+        {
+        LOG_WRITEF( "CWsfLaunchAiHelperActiveWrapper iStatus = %d", 
+                                                               iStatus.Int() );
+        }
+    }
+
+// ----------------------------------------------------------------------------
+// CWsfLaunchAiHelperActiveWrapper::RunError
+// ----------------------------------------------------------------------------
+//
+#ifdef _DEBUG
+TInt CWsfLaunchAiHelperActiveWrapper::RunError( TInt aError )
+    {
+    LOG_ENTERFN( "CWsfLaunchAiHelperActiveWrapper::RunError" );
+    LOG_WRITEF( "aError = %d", aError );
+#else
+TInt CWsfLaunchAiHelperActiveWrapper::RunError( TInt /*aError*/ )
+    {
+#endif
+    return KErrNone;
+    }
+
--- a/wlanutilities/wlansniffer/aiplugin/src/wsfsearchwlansdialog.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/aiplugin/src/wsfsearchwlansdialog.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -16,6 +16,7 @@
 */
 
 
+
 //  EXTERNAL INCLUDES
 #include <badesca.h>
 #include <coemain.h>
@@ -24,8 +25,10 @@
 #include <eikclb.h>
 #include <AknIconArray.h>
 #include <wsfaipluginrsc.rsg>
+
 //  INTERNAL INCLUDES
 #include "wsfsearchwlansdialog.h"
+#include "wsflogger.h"
 
 //  MACROS
 #ifdef _DEBUG    
@@ -48,7 +51,8 @@
     CleanupStack::Pop( thisPtr );
     return thisPtr;
     }
-    
+
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::NewLC
 // --------------------------------------------------------------------------
@@ -62,6 +66,7 @@
     return thisPtr;
     }
 
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::~CWsfSearchWlansDialog
 // --------------------------------------------------------------------------
@@ -69,7 +74,8 @@
 CWsfSearchWlansDialog::~CWsfSearchWlansDialog()
     {
     }
-    
+
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::CWsfSearchWlansDialog
 // --------------------------------------------------------------------------
@@ -79,7 +85,8 @@
     iSelectedItem( &aSelectedItem )
     {
     }
-    
+
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::ConstructL
 // --------------------------------------------------------------------------
@@ -88,16 +95,19 @@
     {
     // nothing at the moment...
     }
-    
+
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::ProcessCommandL
 // --------------------------------------------------------------------------
 //    
 void CWsfSearchWlansDialog::ProcessCommandL( TInt aCommandId )
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::ProcessCommandL" );
     CAknListQueryDialog::ProcessCommandL( aCommandId );    
     }
-    
+
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::UpdateHotSpotsL
 // --------------------------------------------------------------------------
@@ -105,6 +115,7 @@
 void CWsfSearchWlansDialog::UpdateHotSpotsL( MDesCArray* aItemTextArray,
                                              TInt aCurrentItem )
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::UpdateHotSpotsL" );
     _ASS_D( ListBox() );
     
     SetItemTextArray( aItemTextArray );
@@ -119,32 +130,38 @@
         ListBox()->SetCurrentItemIndex( aCurrentItem );     
         }    
     }
-    
+
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::SelectedItem
 // --------------------------------------------------------------------------
 //    
 TInt CWsfSearchWlansDialog::SelectedItem()
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::SelectedItem" );
     _ASS_D( ListBox() );
 
     return ListBox()->CurrentItemIndex();
     }
 
+
 // --------------------------------------------------------------------------
-// CWsfAiPlugin::StartConnectingAnimationL
+// CWsfSearchWlansDialog::StartConnectingAnimationL
 // --------------------------------------------------------------------------
 //
 void CWsfSearchWlansDialog::StartConnectingAnimationL()
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::StartConnectingAnimationL" );
     }
 
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::ForceRefreshingL
 // --------------------------------------------------------------------------
 //    
 void CWsfSearchWlansDialog::ForceRefreshingL()
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::ForceRefreshingL" );
     }
 
 
@@ -153,10 +170,11 @@
 // --------------------------------------------------------------------------
 //
 TBool CWsfSearchWlansDialog::MultilineControl() 
-    { 
+    {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::MultilineControl" );
     return ETrue; 
     }
-      
+
 
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::UpdateViewL
@@ -164,24 +182,27 @@
 //    
 void CWsfSearchWlansDialog::UpdateViewL( MDesCArray* /*aItemTextArray*/ )
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::UpdateViewL" );
     }
 
+
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::DisplayEngineOffL
 // --------------------------------------------------------------------------
 //    
 void CWsfSearchWlansDialog::DisplayEngineOffL()
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::DisplayEngineOffL" );
     }
 
 
-    
 // --------------------------------------------------------------------------
 // CWsfSearchWlansDialog::PreLayoutDynInitL
 // --------------------------------------------------------------------------
 //    
 void CWsfSearchWlansDialog::PreLayoutDynInitL()
     {
+    LOG_ENTERFN( "CWsfSearchWlansDialog::PreLayoutDynInitL" );
     _ASS_D( ListBox() );
     // add the empty text here....
     HBufC* noWlansAvailable = iCoeEnv->AllocReadResourceLC( 
--- a/wlanutilities/wlansniffer/engine/server/inc/wsfwlanscaninfodefines.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/engine/server/inc/wsfwlanscaninfodefines.h	Wed Mar 31 23:17:49 2010 +0300
@@ -63,6 +63,7 @@
     E802Dot11ChallengeTextIE        = 16,
     // Reserved for challenge text extension 17 - 31
     E802Dot11ErpInformationIE       = 42,
+    E802Dot11HtCapabilitiesIE       = 45,
     E802Dot11ExtendedRatesIE        = 50,
     E802Dot11AironetIE              = 133,
     E802Dot11ApIpAddressIE          = 149,
--- a/wlanutilities/wlansniffer/engine/server/inc/wsfwlanscanner.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/engine/server/inc/wsfwlanscanner.h	Wed Mar 31 23:17:49 2010 +0300
@@ -35,6 +35,72 @@
 #include "wsfwlaninfo.h"
 
 
+const TUint8 TX_RATE_BASIC_MASK = 0x80;
+
+
+/**
+ * Defines the possible TX rate values.
+ */
+typedef enum _core_tx_rate_e
+    {
+    core_tx_rate_none       = 0x00000000,
+    core_tx_rate_1mbit      = 0x00000001,
+    core_tx_rate_2mbit      = 0x00000002,
+    core_tx_rate_5p5mbit    = 0x00000004,
+    core_tx_rate_6mbit      = 0x00000008,
+    core_tx_rate_9mbit      = 0x00000010,
+    core_tx_rate_11mbit     = 0x00000020,
+    core_tx_rate_12mbit     = 0x00000040,
+    core_tx_rate_18mbit     = 0x00000080,
+    core_tx_rate_22mbit     = 0x00000100,
+    core_tx_rate_24mbit     = 0x00000200,
+    core_tx_rate_33mbit     = 0x00000400,
+    core_tx_rate_36mbit     = 0x00000800,
+    core_tx_rate_48mbit     = 0x00001000,
+    core_tx_rate_54mbit     = 0x00002000
+    } core_tx_rate_e;
+
+const TUint32 CORE_TX_RATES_802P11B =
+    core_tx_rate_1mbit |
+    core_tx_rate_2mbit |
+    core_tx_rate_5p5mbit |
+    core_tx_rate_11mbit;
+
+const TUint32 CORE_TX_RATES_802P11G =
+    core_tx_rate_6mbit |
+    core_tx_rate_9mbit |
+    core_tx_rate_12mbit |
+    core_tx_rate_18mbit |
+    core_tx_rate_22mbit |
+    core_tx_rate_24mbit |
+    core_tx_rate_33mbit |
+    core_tx_rate_36mbit |
+    core_tx_rate_48mbit |
+    core_tx_rate_54mbit;
+
+/**
+ * Define the possible TX rate value as units of 500kbit/s.
+ */
+typedef enum _core_tx_rate_value_e
+    {
+    core_tx_rate_value_none    = 0,
+    core_tx_rate_value_1mbit   = 2,
+    core_tx_rate_value_2mbit   = 4,
+    core_tx_rate_value_5p5mbit = 11,
+    core_tx_rate_value_6mbit   = 12,
+    core_tx_rate_value_9mbit   = 18,
+    core_tx_rate_value_11mbit  = 22,
+    core_tx_rate_value_12mbit  = 24,
+    core_tx_rate_value_18mbit  = 36,
+    core_tx_rate_value_22mbit  = 44,
+    core_tx_rate_value_24mbit  = 48,
+    core_tx_rate_value_33mbit  = 66,
+    core_tx_rate_value_36mbit  = 72,
+    core_tx_rate_value_48mbit  = 96,
+    core_tx_rate_value_54mbit  = 108,
+    } _core_tx_rate_value_e;
+
+
 //  FORWARD DECLARATIONS
 class CWlanMgmtClient;
 class CWlanScanInfo;
@@ -297,11 +363,20 @@
         void RefreshSecurityMode( TWsfWlanInfo& aWlanInfo );
 
         /**
-        * Parses the scan results for the transfer rate
-        * @since S60 5.0
+        * Convert the given rate value (500kbit/s per unit) 
+        * to a corresponding enum.
+        * @since S60 5.2
+        * @param aRate Rate value to be converted.
+        * @return Corresponding rate enum.
+        */
+        core_tx_rate_e ConvertTxRateToTxRateEnum( TUint8 aRate );
+
+        /**
+        * Parses the scan results for the technology information
+        * @since S60 5.2
         * @param aWlanInfo The wlaninfo to put the results in
         */
-        void RefreshMaxRate( TWsfWlanInfo& aWlanInfo );
+        void RefreshTechnology( TWsfWlanInfo& aWlanInfo );
 
         /**
         * Prepares for direct scanning
--- a/wlanutilities/wlansniffer/engine/server/src/wsfengine.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/engine/server/src/wsfengine.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -631,6 +631,13 @@
             iIapPersistence = EIapExpireOnBrowserExit;
             }
         }
+    else if ( result != KErrNone )
+        {
+        LOG_WRITE( "abort connection did not stopped connection" );
+        // Try to disconnect via normal disconnect if engine is  
+        // connected and and there is connection id
+        DisconnectWlan();
+        }
     }
     
 
--- a/wlanutilities/wlansniffer/engine/server/src/wsfwlanscanner.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/engine/server/src/wsfwlanscanner.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -642,6 +642,8 @@
     LOG_ENTERFN( "CWsfWlanScanner::RestartScanning" );
 
     TBool restarted( EFalse );
+    LOG_WRITEF( "iScanState = %d isActive = %d iShowAvailability = %d",
+               iScanState, IsActive(), iShowAvailability );
     
     if ( iScanState == EIdle && ( IsActive() || iShowAvailability ) )
         {
@@ -656,6 +658,7 @@
         restarted = ETrue;
         }
     
+    LOG_WRITEF( "restarted = %d", restarted );
     return restarted;
     }
 
@@ -862,7 +865,7 @@
                 TWsfWlanInfo* temp = matchArray[i];
                 ++temp->iCoverage;
                 RefreshSignalStrength( *temp );
-                RefreshMaxRate( *temp );
+                RefreshTechnology( *temp );
              	}
             }
         // Close() for matchArray
@@ -1035,7 +1038,7 @@
             // not hidden
             RefreshNetworkMode( *wlanInfo );
             RefreshSecurityMode( *wlanInfo );
-            RefreshMaxRate( *wlanInfo );
+            RefreshTechnology( *wlanInfo );
 
             // check if we already have an entry/entries corresponding to a scan result
             // (multiple entries for one scan result possible if GetAvailableIaps()
@@ -1052,7 +1055,7 @@
                 {
                 wlanInfo->iCoverage = 1;
                 RefreshSignalStrength( *wlanInfo );
-                RefreshMaxRate( *wlanInfo );
+                RefreshTechnology( *wlanInfo );
                 ++nElem; // new entry, inc index in array
                 }
             else // if found inc coverage and refresh signal strength and rate
@@ -1062,7 +1065,7 @@
                     TWsfWlanInfo* temp = matchArray[i];
                     ++temp->iCoverage;
                     RefreshSignalStrength( *temp );
-                    RefreshMaxRate( *temp );
+                    RefreshTechnology( *temp );
 
                     if ( temp->iIapId )
                         {
@@ -1576,56 +1579,154 @@
     }
 
 
+// -----------------------------------------------------------------------------
+// CWsfWlanScanner::ConvertTxRateToTxRateEnum
+// -----------------------------------------------------------------------------
+//
+core_tx_rate_e CWsfWlanScanner::ConvertTxRateToTxRateEnum( TUint8 aRate )
+    {
+    LOG_ENTERFN( "CWsfWlanScanner::ConvertTxRateToTxRateEnum" );
+
+    switch ( aRate )
+        {
+        case core_tx_rate_value_1mbit:
+            return core_tx_rate_1mbit;
+        case core_tx_rate_value_2mbit:
+            return core_tx_rate_2mbit;
+        case core_tx_rate_value_5p5mbit:
+            return core_tx_rate_5p5mbit;
+        case core_tx_rate_value_6mbit:
+            return core_tx_rate_6mbit;
+        case core_tx_rate_value_9mbit:
+            return core_tx_rate_9mbit;
+        case core_tx_rate_value_11mbit:
+            return core_tx_rate_11mbit;
+        case core_tx_rate_value_12mbit:
+            return core_tx_rate_12mbit;
+        case core_tx_rate_value_18mbit:
+            return core_tx_rate_18mbit;
+        case core_tx_rate_value_22mbit:
+            return core_tx_rate_22mbit;
+        case core_tx_rate_value_24mbit:
+            return core_tx_rate_24mbit;
+        case core_tx_rate_value_33mbit:
+            return core_tx_rate_33mbit;
+        case core_tx_rate_value_36mbit:
+            return core_tx_rate_36mbit;
+        case core_tx_rate_value_48mbit:
+            return core_tx_rate_48mbit;
+        case core_tx_rate_value_54mbit:
+            return core_tx_rate_54mbit;
+        default:
+            return core_tx_rate_none;
+        }
+    }
+
+
 // ---------------------------------------------------------------------------
-// CWsfWlanScanner::RefreshMaxRate
+// CWsfWlanScanner::RefreshTechnology
 // ---------------------------------------------------------------------------
 //
-void CWsfWlanScanner::RefreshMaxRate( TWsfWlanInfo& aWlanInfo )
+void CWsfWlanScanner::RefreshTechnology( TWsfWlanInfo& aWlanInfo )
     {
-    LOG_ENTERFN( "CWsfWlanScanner::RefreshMaxRate" );
+    LOG_ENTERFN( "CWsfWlanScanner::RefreshTechnology" );
 
-    TUint8 ieLen( 0 );
+    TUint8 ieLen(0);
     const TUint8* ieData;
     TUint8 dataRates[KMaxNumberOfRates];
-    TUint8 maxDataRate( aWlanInfo.iTransferRate * 2 );
+
+    if ( iScanInfo->InformationElement( E802Dot11HtCapabilitiesIE, ieLen,
+            &ieData ) == 0 )
+        {
+        // 802.11n supported
+        aWlanInfo.iTransferRate = 0x8;
+        }
+    else
+        {
+        Mem::FillZ( &dataRates[0], sizeof( dataRates ) );
+        core_tx_rate_e rate( core_tx_rate_none );
+        TUint32 basic_rates( 0 );
+        TUint32 supported_rates( 0 );
+
+        // Supported Rates
+        iScanInfo->InformationElement( E802Dot11SupportedRatesIE, ieLen,
+                &ieData );
+
+        Mem::Copy( dataRates, ieData, ieLen );
 
-    Mem::FillZ( &dataRates[0], sizeof( dataRates ) );
+        TUint32 temp_basic_rates( 0 );
+        TUint32 temp_supported_rates( 0 );
+
+        for ( TInt a = 0; a < ieLen; a++ )
+            {
+            rate = ConvertTxRateToTxRateEnum( dataRates[a]
+                    & ~TX_RATE_BASIC_MASK );
+
+            temp_supported_rates |= rate;
 
-    // Supported Rates
-    iScanInfo->InformationElement( E802Dot11SupportedRatesIE, ieLen, &ieData );
+            if ( dataRates[a] & TX_RATE_BASIC_MASK )
+                {
+                /**
+                 * The highest bit is enabled, the rate is both a basic rate
+                 * and a supported rate.
+                 */
+                temp_basic_rates |= rate;
+                }
+            }
+
+        basic_rates |= temp_basic_rates;
+        supported_rates |= temp_supported_rates;
 
-    Mem::Copy( dataRates, ieData, ieLen );
+        // Extended Supported Rates
+        Mem::FillZ( &dataRates[0], sizeof( dataRates ) );
+
+        iScanInfo->InformationElement( E802Dot11ExtendedRatesIE, ieLen,
+                &ieData );
+
+        Mem::Copy( dataRates, ieData, ieLen );
+
+        if ( ieData )
+            {
+            temp_basic_rates = 0;
+            temp_supported_rates = 0;
+
+            for ( TInt a = 0; a < ieLen; a++ )
+                {
+                rate = ConvertTxRateToTxRateEnum( dataRates[a]
+                        & ~TX_RATE_BASIC_MASK );
+
+                temp_supported_rates |= rate;
 
-    for ( TInt a = 0; a < ieLen; a++ )
-        {
-        // ignore the highest bit
-        dataRates[a] &= 0x7f;
-        if ( maxDataRate < dataRates[a] )
+                if ( dataRates[a] & TX_RATE_BASIC_MASK )
+                    {
+                    /**
+                     * The highest bit is enabled, the rate is both a basic rate
+                     * and a supported rate.
+                     */
+                    temp_basic_rates |= rate;
+                    }
+                }
+
+            basic_rates |= temp_basic_rates;
+            supported_rates |= temp_supported_rates;
+            }
+
+        aWlanInfo.iTransferRate = 0x4; // 802.11bg
+
+        // AP is 802.11b only if only 802.11b rates 
+        // are advertised as supported rates.
+        if ( !( supported_rates & ~CORE_TX_RATES_802P11B ) )
             {
-            maxDataRate = dataRates[a];
+            aWlanInfo.iTransferRate = 0x1; // 802.11b
+            }
+        // AP is 802.11g only if any of the 802.11g rates is a basic rate.
+        else if ( basic_rates & CORE_TX_RATES_802P11G )
+            {
+            aWlanInfo.iTransferRate = 0x2; // 802.11g
             }
         }
 
-    // Extended Supported Rates
-    Mem::FillZ( &dataRates[0], sizeof( dataRates ) );
-
-    iScanInfo->InformationElement( E802Dot11ExtendedRatesIE, ieLen, &ieData );
-
-    Mem::Copy( dataRates, ieData, ieLen );
-
-    if ( ieData )
-        {
-        for ( TInt a = 0; a < ieLen; a++ )
-            {
-            dataRates[a] &= 0x7f;
-            if ( maxDataRate < dataRates[a] )
-                {
-                maxDataRate = dataRates[a];
-                }
-            }
-        }
-    aWlanInfo.iTransferRate = maxDataRate / 2;
-    LOG_WRITEF( "maxRate = %d", aWlanInfo.iTransferRate );
+    LOG_WRITEF( "technology = %d", aWlanInfo.iTransferRate );
     }
 
 
--- a/wlanutilities/wlansniffer/mainapplication/data/wlansniffer.rss	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/mainapplication/data/wlansniffer.rss	Wed Mar 31 23:17:49 2010 +0300
@@ -430,6 +430,32 @@
 
 //-----------------------------------------------------------------------------
 //
+// Details View Wlan technology definitions  
+//
+//-----------------------------------------------------------------------------
+
+RESOURCE TBUF r_qtn_sniffer_wlan_sett_technology_802_11b
+    {
+    buf = "802.11b";
+    }
+
+RESOURCE TBUF r_qtn_sniffer_wlan_sett_technology_802_11g
+    {
+    buf = "802.11g";
+    }
+
+RESOURCE TBUF r_qtn_sniffer_wlan_sett_technology_802_11bg
+    {
+    buf = "802.11b/g";
+    }
+
+RESOURCE TBUF r_qtn_sniffer_wlan_sett_technology_802_11n
+    {
+    buf = "802.11n";
+    }
+    
+//-----------------------------------------------------------------------------
+//
 // Connected Details Pop-up heading text:
 //
 //-----------------------------------------------------------------------------
--- a/wlanutilities/wlansniffer/mainapplication/inc/wsfdetailsviewmodel.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/mainapplication/inc/wsfdetailsviewmodel.h	Wed Mar 31 23:17:49 2010 +0300
@@ -231,11 +231,11 @@
         HBufC* FormatCoverageLC();
     
         /**
-         * Formats wlan speed to string 
-         * @since S60 v5.0
+         * Formats wlan technology to string 
+         * @since S60 v5.2
          * @return formated string
          */        
-        HBufC* FormatSpeedLC();
+        HBufC* FormatTechnologyLC();
     
         /**
         * Calculate number of visible (Not hidden) WLANs
--- a/wlanutilities/wlansniffer/mainapplication/inc/wsfmainview.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/mainapplication/inc/wsfmainview.h	Wed Mar 31 23:17:49 2010 +0300
@@ -171,10 +171,9 @@
         * Check if the Browser application is already running and 
         * using the selected connection.
         * @since S60 5.0 
-        * @return EFalse if Start Web Browsing menu item should be shown
-        *         ETrue if Start Web Browsing menu item should not be shown
+        * @return IapId that browser is using
         */
-        TBool IsBrowserUsingWlanL();
+        TInt BrowserIapIdL();
         
     private:
 
@@ -201,9 +200,9 @@
         TBool iSelectionKey;
         
         /**
-         * If Browser is using the WLAN connection or not.
+         * IapId that browser is using
          */
-        TBool iIsBrowserUsingWlan;
+        TInt iBrowserIapId;
         
     };
 
--- a/wlanutilities/wlansniffer/mainapplication/src/wsfdetailsviewmodel.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/mainapplication/src/wsfdetailsviewmodel.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -490,7 +490,7 @@
 void CWsfDetailsViewModel::FormatAndAppenSpeedL()
     {
     LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenSpeedL" );
-    HBufC* speed = FormatSpeedLC();
+    HBufC* speed = FormatTechnologyLC();
     HBufC* listBoxItem = FormatListBoxItemLC( 
                                 R_QTN_SNIFFER_HEADING_WLAN_NW_MAX_RATE, 
                                 *speed );
@@ -651,24 +651,45 @@
         }
     }
 
-// ---------------------------------------------------------------------------
-// CWsfDetailsViewModel::FormatSpeedLC
-// ---------------------------------------------------------------------------
+// ---------------------------------------------------------
+// CWsfDetailsViewModel::FormatTechnologyLC
+// ---------------------------------------------------------
 //
-HBufC* CWsfDetailsViewModel::FormatSpeedLC()
+HBufC* CWsfDetailsViewModel::FormatTechnologyLC()
     {
-    LOG_ENTERFN( "CWsfDetailsViewModel::FormatSpeedLC" );
-    //if data rate is allowed to be a fraction, 
-    //rewrite this format string
-    _LIT( KRateFmt, "%d" );
+    LOG_ENTERFN( "CWsfDetailsViewModel::FormatTechnologyLC" );
+    TInt resourceId( 0 );
+    
+    switch( iWlanInfo.iTransferRate )
+        {
+        
+        case 1:
+            {
+            resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11B;
+            break;
+            }
+        case 2:
+            {
+            resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11G;
+            break;
+            }
+        case 4:
+            {
+            resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11BG;
+            break;
+            }
+        case 8:
+            {
+            resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11N;
+            break;
+            }
+        default:
+            {
+            return KNullDesC().AllocLC();
+            }
+        }
 
-    const TInt KMaxRateStringWidth = 8;
-    TBuf<KMaxRateStringWidth> rate;
-    rate.Format( KRateFmt, iWlanInfo.iTransferRate );   
-    AknTextUtils::DisplayTextLanguageSpecificNumberConversion( rate );
-    
-    return StringLoader::LoadLC( R_QTN_SNIFFER_WLAN_MAX_DATA_RATE, 
-                                 rate, iCoeEnv );
+    return StringLoader::LoadLC( resourceId );
     }
 
 // ---------------------------------------------------------------------------
--- a/wlanutilities/wlansniffer/mainapplication/src/wsfmaincontroller.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/mainapplication/src/wsfmaincontroller.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -373,8 +373,10 @@
         if ( iInfoArray->Count() )
             {
             TWsfWlanInfo* firstItem = iInfoArray->At( 0 );
-            if ( firstItem && firstItem->Connected() )
+            if ( firstItem && ( firstItem->Connected() ||
+                                firstItem->iConnectionState == EConnecting ) )
                 {
+                LOG_WRITEF( "info state = %d", firstItem->iConnectionState );
                 firstItem->iConnectionState = ENotConnected;
                 TRAPD( error, iModel->CheckIsIapIdValidL( firstItem->iIapId ) );
                 if ( error )
--- a/wlanutilities/wlansniffer/mainapplication/src/wsfmainview.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/mainapplication/src/wsfmainview.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -34,6 +34,7 @@
 #include "wsfmainapplication.hrh"
 #include "wsfactivewaiter.h"
 #include "wsfappui.h"
+#include "wsfmodel.h"
 
 #include "wsflogger.h"
 
@@ -71,7 +72,7 @@
 // CWsfMainView::CWsfMainView
 // ---------------------------------------------------------------------------
 //
-CWsfMainView::CWsfMainView()
+CWsfMainView::CWsfMainView(): iBrowserIapId( KErrNotFound )
     {
     // no implementation required
     }
@@ -148,7 +149,6 @@
         case EAknSoftkeyContextOptions:
             {
             LOG_WRITE( "CWsfMainView::HandleCommandL, Options" );
-            UpdateBrowserUsageInfoL();
             MenuBar()->SetMenuTitleResourceId( R_SNIFFER_CONTEXT_MENUBAR );
             MenuBar()->SetMenuType( CEikMenuBar::EMenuContext );
             MenuBar()->TryDisplayMenuBarL();
@@ -238,8 +238,7 @@
         TWsfWlanInfo *selectedItem = iController.SelectedItem();
         CWsfWlanInfoArray *infoArray = iModel->GetInfoArray();
         
-        CWsfAppUi* appui = static_cast<CWsfAppUi*>( AppUi() );
-        TBool connecting( appui->SuppressingKeyEvents() );
+        TBool connecting( doc->Model().IsConnecting() );
         
         if ( !selectedItem )
             {
@@ -268,9 +267,9 @@
 
         TBool connected( selectedItem->Connected() );
         TBool connectedAndUsed( EFalse );
-        if ( connected )
+        if ( connected && iBrowserIapId == selectedItem->iIapId )
             {
-            connectedAndUsed = iIsBrowserUsingWlan;
+            connectedAndUsed = ETrue;
             }
         TBool known( selectedItem->Known() );
         
@@ -324,8 +323,10 @@
         TBool known( EFalse );
         TBool hidden( ETrue );
         
-        CWsfAppUi* appui = static_cast<CWsfAppUi*>( AppUi() );
-        TBool connecting( appui->SuppressingKeyEvents() );
+        const CWsfDocument* doc = static_cast<const CWsfDocument*>( 
+                                                         AppUi()->Document() );
+        
+        TBool connecting( doc->Model().IsConnecting() );
         TBool selectedItemConnecting( EFalse );
 
         
@@ -334,9 +335,9 @@
             // workaround: even if the model reports no elements, we know that
             // the hidden item must always be there
             connected = selectedItem->Connected();
-            if ( connected )
+            if ( connected && iBrowserIapId == selectedItem->iIapId )
                 {
-                connectedAndUsed = iIsBrowserUsingWlan;
+                connectedAndUsed = ETrue;
                 }
             known = selectedItem->Known();
             hidden = selectedItem->Hidden();
@@ -405,17 +406,17 @@
 void CWsfMainView::UpdateBrowserUsageInfoL()
     {
     LOG_ENTERFN( "CWsfMainView::UpdateBrowserUsageInfoL" );
-    iIsBrowserUsingWlan = IsBrowserUsingWlanL();
+    iBrowserIapId = BrowserIapIdL();
     }
 
     
 // ---------------------------------------------------------------------------
-// CWsfMainView::IsBrowserUsingWlanL
+// CWsfMainView::BrowserIapIdL
 // ---------------------------------------------------------------------------
 //
-TBool CWsfMainView::IsBrowserUsingWlanL()
+TInt CWsfMainView::BrowserIapIdL()
     {
-    LOG_ENTERFN( "CWsfMainView::IsBrowserUsingWlanL" );
+    LOG_ENTERFN( "CWsfMainView::BrowserIapIdL" );
     
     const TInt KBrowserUid = 0x10008D39;
     TUid id( TUid::Uid( KBrowserUid ) );
@@ -423,7 +424,7 @@
     // Check if the Browser application is already running.
     TApaTaskList taskList( iEikonEnv->WsSession() );
     TApaTask task = taskList.FindApp( id );
-    TBool isBrowserRunning( EFalse );
+    TInt browserIapId( KErrNotFound );
     
 #ifndef __WINS__
 
@@ -431,14 +432,20 @@
         {
         LOG_WRITE( "The Browser is running." );
         // The Browser is already running.
-        // Check if the selected WLAN is connected.
-        iController.UpdateSelectedItemL();
-        TWsfWlanInfo* selectedItem = iController.SelectedItem();
+        TWsfWlanInfo* firstItem = NULL;
+        
+        CWsfWlanInfoArray *infoArray = iModel->GetInfoArray();
+        if ( infoArray )
+            {
+            firstItem = infoArray->At( 0 );
+            }
+        
         TBool connected( EFalse );
-        if( selectedItem )
-        	{
-        	connected = selectedItem->Connected();
-        	}
+        if( firstItem )
+            {
+            // first item always holds the connected network
+            connected = firstItem->Connected();
+            }
         LOG_WRITEF("Selected network Connected? %d", connected);
 
         if ( connected )
@@ -519,7 +526,7 @@
                 
                 if ( clientBuf().iUid[i].iUid == KBrowserUid )
                     {
-                    isBrowserRunning = ETrue;
+                    browserIapId = firstItem->iIapId;
                     }
                 }           
             appSess.Close();
@@ -535,8 +542,8 @@
         
 #endif // __WINS__
     
-    LOG_WRITEF( "isBrowserRunning: %d", isBrowserRunning );
-    return isBrowserRunning;
+    LOG_WRITEF( "browserIapId: %d", browserIapId );
+    return browserIapId;
     }
 
 
--- a/wlanutilities/wlansniffer/model/bwins/wsfmodelu.def	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/model/bwins/wsfmodelu.def	Wed Mar 31 23:17:49 2010 +0300
@@ -5,20 +5,20 @@
 	?ActiveViewL@CWsfModel@@QAE?AVTUid@@XZ @ 4 NONAME ; class TUid CWsfModel::ActiveViewL(void)
 	?AbortConnectingL@CWsfModel@@QAEXXZ @ 5 NONAME ; void CWsfModel::AbortConnectingL(void)
 	?ContinueBrowsingL@CWsfModel@@QAEXXZ @ 6 NONAME ; void CWsfModel::ContinueBrowsingL(void)
-	?SetRefreshState@CWsfModel@@QAEXH@Z @ 7 NONAME ; void CWsfModel::SetRefreshState(int)
-	?RefreshScan@CWsfModel@@QAEXAAV?$TPckgBuf@H@@AAVTRequestStatus@@@Z @ 8 NONAME ; void CWsfModel::RefreshScan(class TPckgBuf<int> &, class TRequestStatus &)
-	?SetEngineObserver@CWsfModel@@QAEXPAVMWsfModelObserver@@@Z @ 9 NONAME ; void CWsfModel::SetEngineObserver(class MWsfModelObserver *)
-	?ConnectL@CWsfModel@@QAEHK@Z @ 10 NONAME ; int CWsfModel::ConnectL(unsigned long)
-	?CheckIsIapIdValidL@CWsfModel@@QBEXI@Z @ 11 NONAME ; void CWsfModel::CheckIsIapIdValidL(unsigned int) const
-	?SetActiveViewL@CWsfModel@@QAEXH@Z @ 12 NONAME ; void CWsfModel::SetActiveViewL(int)
-	?NewLC@CWsfModel@@SAPAV1@AAVMWsfStateChangeObserver@@H@Z @ 13 NONAME ; class CWsfModel * CWsfModel::NewLC(class MWsfStateChangeObserver &, int)
-	?IsScanEnabledL@CWsfModel@@QAEHXZ @ 14 NONAME ; int CWsfModel::IsScanEnabledL(void)
-	?SetConnectResultL@CWsfModel@@QAEXHI@Z @ 15 NONAME ; void CWsfModel::SetConnectResultL(int, unsigned int)
-	?AbortScanningL@CWsfModel@@QAEXXZ @ 16 NONAME ; void CWsfModel::AbortScanningL(void)
-	?TestAccessPointL@CWsfModel@@QAEHAAVTWsfWlanInfo@@HH@Z @ 17 NONAME ; int CWsfModel::TestAccessPointL(class TWsfWlanInfo &, int, int)
-	?CancelNotifyEvents@CWsfModel@@QAEXXZ @ 18 NONAME ; void CWsfModel::CancelNotifyEvents(void)
-	??1CWsfModel@@UAE@XZ @ 19 NONAME ; CWsfModel::~CWsfModel(void)
-	?LaunchHelperApplicationL@CWsfModel@@QAEXAAVTWsfWlanInfo@@HH@Z @ 20 NONAME ; void CWsfModel::LaunchHelperApplicationL(class TWsfWlanInfo &, int, int)
+	?GetConnectedWlanDetails@CWsfModel@@QAEXAAV?$TPckgBuf@H@@AAVTWsfWlanInfo@@AAVTRequestStatus@@@Z @ 7 NONAME ; void CWsfModel::GetConnectedWlanDetails(class TPckgBuf<int> &, class TWsfWlanInfo &, class TRequestStatus &)
+	?SetRefreshState@CWsfModel@@QAEXH@Z @ 8 NONAME ; void CWsfModel::SetRefreshState(int)
+	?RefreshScan@CWsfModel@@QAEXAAV?$TPckgBuf@H@@AAVTRequestStatus@@@Z @ 9 NONAME ; void CWsfModel::RefreshScan(class TPckgBuf<int> &, class TRequestStatus &)
+	?SetEngineObserver@CWsfModel@@QAEXPAVMWsfModelObserver@@@Z @ 10 NONAME ; void CWsfModel::SetEngineObserver(class MWsfModelObserver *)
+	?ConnectL@CWsfModel@@QAEHK@Z @ 11 NONAME ; int CWsfModel::ConnectL(unsigned long)
+	?CheckIsIapIdValidL@CWsfModel@@QBEXI@Z @ 12 NONAME ; void CWsfModel::CheckIsIapIdValidL(unsigned int) const
+	?SetActiveViewL@CWsfModel@@QAEXH@Z @ 13 NONAME ; void CWsfModel::SetActiveViewL(int)
+	?NewLC@CWsfModel@@SAPAV1@AAVMWsfStateChangeObserver@@H@Z @ 14 NONAME ; class CWsfModel * CWsfModel::NewLC(class MWsfStateChangeObserver &, int)
+	?IsScanEnabledL@CWsfModel@@QAEHXZ @ 15 NONAME ; int CWsfModel::IsScanEnabledL(void)
+	?SetConnectResultL@CWsfModel@@QAEXHI@Z @ 16 NONAME ; void CWsfModel::SetConnectResultL(int, unsigned int)
+	?AbortScanningL@CWsfModel@@QAEXXZ @ 17 NONAME ; void CWsfModel::AbortScanningL(void)
+	?TestAccessPointL@CWsfModel@@QAEHAAVTWsfWlanInfo@@HH@Z @ 18 NONAME ; int CWsfModel::TestAccessPointL(class TWsfWlanInfo &, int, int)
+	?CancelNotifyEvents@CWsfModel@@QAEXXZ @ 19 NONAME ; void CWsfModel::CancelNotifyEvents(void)
+	??1CWsfModel@@UAE@XZ @ 20 NONAME ; CWsfModel::~CWsfModel(void)
 	?GetWlanListL@CWsfModel@@QAEPAVCWsfWlanInfoArray@@XZ @ 21 NONAME ; class CWsfWlanInfoArray * CWsfModel::GetWlanListL(void)
 	?DisableScanL@CWsfModel@@QAEHXZ @ 22 NONAME ; int CWsfModel::DisableScanL(void)
 	?GetConnectedWlanDetailsL@CWsfModel@@QAEHAAVTWsfWlanInfo@@@Z @ 23 NONAME ; int CWsfModel::GetConnectedWlanDetailsL(class TWsfWlanInfo &)
@@ -33,11 +33,12 @@
 	?CreateAccessPointL@CWsfModel@@QAEHAAVTWsfWlanInfo@@H@Z @ 32 NONAME ; int CWsfModel::CreateAccessPointL(class TWsfWlanInfo &, int)
 	?TestConnectedAccessPointL@CWsfModel@@QAEHAAVTWsfWlanInfo@@H@Z @ 33 NONAME ; int CWsfModel::TestConnectedAccessPointL(class TWsfWlanInfo &, int)
 	?NewLC@CWsfAppLauncher@@SAPAV1@XZ @ 34 NONAME ; class CWsfAppLauncher * CWsfAppLauncher::NewLC(void)
-	?GetWlanList@CWsfModel@@QAEXAAV?$TPckgBuf@I@@AAVTPtr8@@AAVTRequestStatus@@@Z @ 35 NONAME ; void CWsfModel::GetWlanList(class TPckgBuf<unsigned int> &, class TPtr8 &, class TRequestStatus &)
-	?RequestNotifyEventsL@CWsfModel@@QAEXAAVMWsfStateChangeObserver@@@Z @ 36 NONAME ; void CWsfModel::RequestNotifyEventsL(class MWsfStateChangeObserver &)
+	?RequestNotifyEventsL@CWsfModel@@QAEXAAVMWsfStateChangeObserver@@@Z @ 35 NONAME ; void CWsfModel::RequestNotifyEventsL(class MWsfStateChangeObserver &)
+	?GetWlanList@CWsfModel@@QAEXAAV?$TPckgBuf@I@@AAVTPtr8@@AAVTRequestStatus@@@Z @ 36 NONAME ; void CWsfModel::GetWlanList(class TPckgBuf<unsigned int> &, class TPtr8 &, class TRequestStatus &)
 	?LaunchBrowserL@CWsfModel@@UAEXK@Z @ 37 NONAME ; void CWsfModel::LaunchBrowserL(unsigned long)
-	?RefreshScanL@CWsfModel@@QAEHXZ @ 38 NONAME ; int CWsfModel::RefreshScanL(void)
-	?Disconnect@CWsfModel@@QAEXAAV?$TPckgBuf@H@@AAVTRequestStatus@@@Z @ 39 NONAME ; void CWsfModel::Disconnect(class TPckgBuf<int> &, class TRequestStatus &)
-	?SetObservedWlanL@CWsfModel@@QAEXABVTDesC8@@@Z @ 40 NONAME ; void CWsfModel::SetObservedWlanL(class TDesC8 const &)
-	?GetConnectedWlanDetails@CWsfModel@@QAEXAAV?$TPckgBuf@H@@AAVTWsfWlanInfo@@AAVTRequestStatus@@@Z @ 41 NONAME ; void CWsfModel::GetConnectedWlanDetails(class TPckgBuf<int> &, class TWsfWlanInfo &, class TRequestStatus &)
+	?LaunchHelperApplicationL@CWsfModel@@QAEXAAVTWsfWlanInfo@@@Z @ 38 NONAME ; void CWsfModel::LaunchHelperApplicationL(class TWsfWlanInfo &)
+	?RefreshScanL@CWsfModel@@QAEHXZ @ 39 NONAME ; int CWsfModel::RefreshScanL(void)
+	?Disconnect@CWsfModel@@QAEXAAV?$TPckgBuf@H@@AAVTRequestStatus@@@Z @ 40 NONAME ; void CWsfModel::Disconnect(class TPckgBuf<int> &, class TRequestStatus &)
+	?SetObservedWlanL@CWsfModel@@QAEXABVTDesC8@@@Z @ 41 NONAME ; void CWsfModel::SetObservedWlanL(class TDesC8 const &)
+	?CloseHelperApplication@CWsfModel@@QAEHXZ @ 42 NONAME ; int CWsfModel::CloseHelperApplication(void)
 
--- a/wlanutilities/wlansniffer/model/eabi/wsfmodelu.def	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/model/eabi/wsfmodelu.def	Wed Mar 31 23:17:49 2010 +0300
@@ -30,17 +30,18 @@
 	_ZN9CWsfModel18CreateAccessPointLER12TWsfWlanInfoi @ 29 NONAME
 	_ZN9CWsfModel18IctsTestPermissionEv @ 30 NONAME
 	_ZN9CWsfModel20RequestNotifyEventsLER23MWsfStateChangeObserver @ 31 NONAME
-	_ZN9CWsfModel24GetConnectedWlanDetailsLER12TWsfWlanInfo @ 32 NONAME
-	_ZN9CWsfModel24LaunchHelperApplicationLER12TWsfWlanInfoii @ 33 NONAME
-	_ZN9CWsfModel25TestConnectedAccessPointLER12TWsfWlanInfoi @ 34 NONAME
-	_ZN9CWsfModel4NewLER23MWsfStateChangeObserveri @ 35 NONAME
-	_ZN9CWsfModel5NewLCER23MWsfStateChangeObserveri @ 36 NONAME
-	_ZN9CWsfModel8ConnectLER8TPckgBufIiEm18TWsfIapPersistenceR14TRequestStatus @ 37 NONAME
-	_ZN9CWsfModel8ConnectLEm @ 38 NONAME
-	_ZN9CWsfModelD0Ev @ 39 NONAME
-	_ZN9CWsfModelD1Ev @ 40 NONAME
-	_ZN9CWsfModelD2Ev @ 41 NONAME
-	_ZNK9CWsfModel18CheckIsIapIdValidLEj @ 42 NONAME
-	_ZThn12_N9CWsfModel14LaunchBrowserLEm @ 43 NONAME
-	_ZN9CWsfModel23GetConnectedWlanDetailsER8TPckgBufIiER12TWsfWlanInfoR14TRequestStatus @ 44 NONAME
+	_ZN9CWsfModel22CloseHelperApplicationEv @ 32 NONAME
+	_ZN9CWsfModel23GetConnectedWlanDetailsER8TPckgBufIiER12TWsfWlanInfoR14TRequestStatus @ 33 NONAME
+	_ZN9CWsfModel24GetConnectedWlanDetailsLER12TWsfWlanInfo @ 34 NONAME
+	_ZN9CWsfModel24LaunchHelperApplicationLER12TWsfWlanInfo @ 35 NONAME
+	_ZN9CWsfModel25TestConnectedAccessPointLER12TWsfWlanInfoi @ 36 NONAME
+	_ZN9CWsfModel4NewLER23MWsfStateChangeObserveri @ 37 NONAME
+	_ZN9CWsfModel5NewLCER23MWsfStateChangeObserveri @ 38 NONAME
+	_ZN9CWsfModel8ConnectLER8TPckgBufIiEm18TWsfIapPersistenceR14TRequestStatus @ 39 NONAME
+	_ZN9CWsfModel8ConnectLEm @ 40 NONAME
+	_ZN9CWsfModelD0Ev @ 41 NONAME
+	_ZN9CWsfModelD1Ev @ 42 NONAME
+	_ZN9CWsfModelD2Ev @ 43 NONAME
+	_ZNK9CWsfModel18CheckIsIapIdValidLEj @ 44 NONAME
+	_ZThn12_N9CWsfModel14LaunchBrowserLEm @ 45 NONAME
 
--- a/wlanutilities/wlansniffer/model/inc/wsfmodel.h	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/model/inc/wsfmodel.h	Wed Mar 31 23:17:49 2010 +0300
@@ -310,17 +310,18 @@
                                    TRequestStatus& aStatus );
         
         /**
+        * Closes helper application if it is launched 
+        * @since S60 5.2
+        * @return ETrue if helper application task was closed
+        */
+        IMPORT_C TBool CloseHelperApplication();
+        
+        /**
         * Launches and helper application to create an accesspoint 
-        * @since S60 5.0
+        * @since S60 5.2
         * @param aWlanInfo The WlanInfo object to be passed to the helper app
-        * @param aConnecting ETrue if default connection is used, EFalse otherwise.
-        * @param aConnectOnly ETrue if the helper app is expected to connect 
-        *                    only, EFalse if it should also launch the browser 
-        *                    on successful connection.
         */
-        IMPORT_C void LaunchHelperApplicationL( TWsfWlanInfo& aWlanInfo,
-                                                TBool aConnecting,
-                                                TBool aConnectOnly );
+        IMPORT_C void LaunchHelperApplicationL( TWsfWlanInfo& aWlanInfo );
         
         /**
         * Cancel notify events from server
--- a/wlanutilities/wlansniffer/model/src/wsfmodel.cpp	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/model/src/wsfmodel.cpp	Wed Mar 31 23:17:49 2010 +0300
@@ -916,25 +916,43 @@
     LOG_ENTERFN( "CWsfModel::RefreshScan" );
     iSession.RequestScan( aPckg, aStatus );
     }
+
+
+// ----------------------------------------------------------------------------
+// CWsfModel::CloseHelperApplication
+// ----------------------------------------------------------------------------
+//
+EXPORT_C TBool CWsfModel::CloseHelperApplication()
+    {
+    LOG_ENTERFN( "CWsfModel::CloseHelperApplication" );
+    TBool endTaskCalled = EFalse;
+    // check if the app is already running ... and kill it.
+    TUid id( TUid::Uid( KHelperApUid.iUid ) );
+    TApaTaskList taskList( iEikEnv->WsSession() );
+    TApaTask task = taskList.FindApp( id );
+
+    if ( task.Exists() )
+        {
+        LOG_WRITE( "ending task" );
+        task.EndTask();
+        endTaskCalled = ETrue;
+        }
+    return endTaskCalled;
+    }
+
     
 
 // ----------------------------------------------------------------------------
 // CWsfModel::LaunchHelperApplicationL
 // ----------------------------------------------------------------------------
 //
-EXPORT_C void CWsfModel::LaunchHelperApplicationL( TWsfWlanInfo &aWlanInfo,
-                                                   TBool aConnecting, 
-                                                   TBool aConnectOnly )
+EXPORT_C void CWsfModel::LaunchHelperApplicationL( TWsfWlanInfo &aWlanInfo )
     {
     LOG_ENTERFN( "CWsfModel::LaunchHelperApplicationL" );
     TPckgC<TWsfWlanInfo> param( aWlanInfo );
-    TPckgC<TBool> param2( aConnecting );
-    TPckgC<TBool> param3( aConnectOnly );
     
-    TBuf8<sizeof( TWsfWlanInfo ) + sizeof( TBool ) + sizeof( TBool )> temp;
+    TBuf8<sizeof( TWsfWlanInfo )> temp;
     temp.Copy( param );
-    temp.Append( param2 );
-    temp.Append( param3 );
     
     TFileName fileName;
     fileName.Copy( temp );
--- a/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/00/wsfwidget.css	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/00/wsfwidget.css	Wed Mar 31 23:17:49 2010 +0300
@@ -8,30 +8,30 @@
     height: auto;
     padding-left: 7px;
     padding-right: 7px;
-    padding-top: 7%;
-    padding-bottom: 7%;
+    padding-top: 16px;
+    padding-bottom: 17px;
     nav-index: appearance;
 	block-progression: tb;
 }
 
 button.wizardStatusBox1 { 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
     top: 0u;
     block-progression: lr;
     direction: ltr;
 }
 
 button.wizardStatusBox2{ 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
-    top: 5u;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
+    top: 25px;
     block-progression: lr;
     direction: ltr;
 }
@@ -40,10 +40,10 @@
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 4%;
-    margin-left: 1.0u;
-    width: 4.0u;
-    height: 4.0u;
+    margin-top: 0u;
+    margin-left: 0u;
+    width: 24px;
+    height: 24px;
 }
 
 text.wizardEntryText1 {
@@ -51,14 +51,15 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-top: 4%;
-    margin-left: 1.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-left: 5px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: left;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 text.wizardEntryText2 {
@@ -66,31 +67,33 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-left: 6.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-left: 29px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: left;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 image#wizardSecureIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-right: 0.5u;
-    width: 4.0u;
-    height: 4.0u;     
+    margin-top: 0u;
+    margin-right: 5px;
+    width: 24px;
+    height: 24px;
 }
 
 image#wizardStrengthIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-right: 1u;
-    width: 4.0u;
-    height: 4.0u;    
+    margin-top: 0u;
+    margin-right: 0u;
+    width: 24px;
+    height: 24px;
 }
\ No newline at end of file
--- a/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/37/wsfwidget.css	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/37/wsfwidget.css	Wed Mar 31 23:17:49 2010 +0300
@@ -8,30 +8,30 @@
     height: auto;
     padding-left: 7px;
     padding-right: 7px;
-    padding-top: 7%;
-    padding-bottom: 7%;
+    padding-top: 16px;
+    padding-bottom: 17px;
     nav-index: appearance;
     block-progression: tb;
 }
 
 button.wizardStatusBox1 { 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
     top: 0u;
     block-progression: rl;
     direction: rtl;
 }
 
 button.wizardStatusBox2{ 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
-    top: 5u;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
+    top: 25px;
     block-progression: rl;
     direction: rtl;
 }
@@ -40,10 +40,10 @@
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 4%;
-    margin-right: 1.0u;
-    width: 4.0u;
-    height: 4.0u;
+    margin-top: 0u;
+    margin-right: 0u;
+    width: 24px;
+    height: 24px;
 }
 
 text.wizardEntryText1 {
@@ -51,14 +51,15 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-top: 4%;
-    margin-right: 1.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 5px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 text.wizardEntryText2 {
@@ -66,31 +67,33 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-right: 6.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 29px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 image#wizardSecureIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 0.5u;
-    width: 4.0u;
-    height: 4.0u;     
+    margin-top: 0u;
+    margin-left: 5px;
+    width: 24px;
+    height: 24px;     
 }
 
 image#wizardStrengthIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 1u;
-    width: 4.0u;
-    height: 4.0u;    
+    margin-top: 0u;
+    margin-left: 0u;
+    width: 24px;
+    height: 24px;    
 }
\ No newline at end of file
--- a/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/50/wsfwidget.css	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/50/wsfwidget.css	Wed Mar 31 23:17:49 2010 +0300
@@ -8,30 +8,30 @@
     height: auto;
     padding-left: 7px;
     padding-right: 7px;
-    padding-top: 7%;
-    padding-bottom: 7%;
+    padding-top: 16px;
+    padding-bottom: 17px;
     nav-index: appearance;
     block-progression: tb;
 }
 
 button.wizardStatusBox1 { 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
     top: 0u;
     block-progression: rl;
     direction: rtl;
 }
 
 button.wizardStatusBox2{ 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
-    top: 5u;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
+    top: 25px;
     block-progression: rl;
     direction: rtl;
 }
@@ -40,10 +40,10 @@
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 4%;
-    margin-right: 1.0u;
-    width: 4.0u;
-    height: 4.0u;
+    margin-top: 0u;
+    margin-right: 0u;
+    width: 24px;
+    height: 24px;
 }
 
 text.wizardEntryText1 {
@@ -51,14 +51,15 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-top: 4%;
-    margin-right: 1.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 5px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 text.wizardEntryText2 {
@@ -66,31 +67,33 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-right: 6.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 29px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 image#wizardSecureIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 0.5u;
-    width: 4.0u;
-    height: 4.0u;     
+    margin-top: 0u;
+    margin-left: 5px;
+    width: 24px;
+    height: 24px;     
 }
 
 image#wizardStrengthIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 1u;
-    width: 4.0u;
-    height: 4.0u;    
+    margin-top: 0u;
+    margin-left: 0u;
+    width: 24px;
+    height: 24px;    
 }
\ No newline at end of file
--- a/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/57/wsfwidget.css	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/57/wsfwidget.css	Wed Mar 31 23:17:49 2010 +0300
@@ -8,30 +8,30 @@
     height: auto;
     padding-left: 7px;
     padding-right: 7px;
-    padding-top: 7%;
-    padding-bottom: 7%;
+    padding-top: 16px;
+    padding-bottom: 17px;
     nav-index: appearance;
     block-progression: tb;
 }
 
 button.wizardStatusBox1 { 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
     top: 0u;
     block-progression: rl;
     direction: rtl;
 }
 
 button.wizardStatusBox2{ 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
-    top: 5u;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
+    top: 25px;
     block-progression: rl;
     direction: rtl;
 }
@@ -40,10 +40,10 @@
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 4%;
-    margin-right: 1.0u;
-    width: 4.0u;
-    height: 4.0u;
+    margin-top: 0u;
+    margin-right: 0u;
+    width: 24px;
+    height: 24px;
 }
 
 text.wizardEntryText1 {
@@ -51,14 +51,15 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-top: 4%;
-    margin-right: 1.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 5px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 text.wizardEntryText2 {
@@ -66,31 +67,33 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-right: 6.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 29px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 image#wizardSecureIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 0.5u;
-    width: 4.0u;
-    height: 4.0u;     
+    margin-top: 0u;
+    margin-left: 5px;
+    width: 24px;
+    height: 24px;     
 }
 
 image#wizardStrengthIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 1u;
-    width: 4.0u;
-    height: 4.0u;    
+    margin-top: 0u;
+    margin-left: 0u;
+    width: 24px;
+    height: 24px;    
 }
\ No newline at end of file
--- a/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/94/wsfwidget.css	Mon Mar 15 12:44:54 2010 +0200
+++ b/wlanutilities/wlansniffer/widget/widget_20026F45/xuikon/94/wsfwidget.css	Wed Mar 31 23:17:49 2010 +0300
@@ -8,30 +8,30 @@
     height: auto;
     padding-left: 7px;
     padding-right: 7px;
-    padding-top: 7%;
-    padding-bottom: 7%;
+    padding-top: 16px;
+    padding-bottom: 17px;
     nav-index: appearance;
     block-progression: tb;
 }
 
 button.wizardStatusBox1 { 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
     top: 0u;
     block-progression: rl;
     direction: rtl;
 }
 
 button.wizardStatusBox2{ 
-	display: block;
-	visibility: visible;
-	width: auto;
-	height: adaptive;
-	position: absolute;
-    top: 5u;
+    display: block;
+    visibility: visible;
+    width: auto;
+    height: 24px;
+    position: absolute;
+    top: 25px;
     block-progression: rl;
     direction: rtl;
 }
@@ -40,10 +40,10 @@
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 4%;
-    margin-right: 1.0u;
-    width: 4.0u;
-    height: 4.0u;
+    margin-top: 0u;
+    margin-right: 0u;
+    width: 24px;
+    height: 24px;
 }
 
 text.wizardEntryText1 {
@@ -51,14 +51,15 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-top: 4%;
-    margin-right: 1.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 5px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 text.wizardEntryText2 {
@@ -66,31 +67,33 @@
     visibility: visible;    
     position: static;
     width: auto;
-    height: 4.0u;
-    margin-right: 6.0u;
+    height: 24px;
+    margin-top: 0u;
+    margin-right: 29px;
     font-family: EAknLogicalFontSecondaryFont;
     font-size: 3.5u;
     color: "SKIN(268458534 13056 74)";
     text-align: right;
     direction: ltr;
+    _s60-text-valign: top;
 }
 
 image#wizardSecureIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 0.5u;
-    width: 4.0u;
-    height: 4.0u;     
+    margin-top: 0u;
+    margin-left: 5px;
+    width: 24px;
+    height: 24px;     
 }
 
 image#wizardStrengthIcon {
     display: block;
     visibility: visible;
     position: static;
-    margin-top: 0.2%;
-    margin-left: 1u;
-    width: 4.0u;
-    height: 4.0u;    
+    margin-top: 0u;
+    margin-left: 0u;
+    width: 24px;
+    height: 24px;    
 }
\ No newline at end of file