convergedconnectionhandler/cchclientapi/src/cchuiconnectionhandler.cpp
branchRCL_3
changeset 10 7117cbf1600a
parent 0 a4daefaec16c
child 11 bddb6d4447db
--- a/convergedconnectionhandler/cchclientapi/src/cchuiconnectionhandler.cpp	Fri Feb 19 22:44:34 2010 +0200
+++ b/convergedconnectionhandler/cchclientapi/src/cchuiconnectionhandler.cpp	Fri Mar 12 15:42:09 2010 +0200
@@ -102,6 +102,9 @@
     // Security mode of the WLAN network
     TWlanConnectionSecurityMode securityMode; 
     
+    // Flag for determining if hidden wlan
+    TBool hiddenWlan( EFalse );
+    
     CCHUIDEBUG( 
         "CCchUiConnectionHandler::SearchAccessPointsL - begin search wlan" );
         
@@ -118,6 +121,27 @@
     CCHUIDEBUG( 
       "CCchUiConnectionHandler::SearchAccessPointsL - search wlan finished" ); 
     
+    // Check if hidden wlan
+    TUint32 easyWlanId( 0 );
+    easyWlanId = iCmManagerExt.EasyWlanIdL();
+    
+    if ( easyWlanId )
+        {
+        RCmConnectionMethodExt cmConnMethodExt = 
+            iCmManagerExt.ConnectionMethodL( easyWlanId );
+        CleanupClosePushL( cmConnMethodExt );
+        
+        if ( cmConnMethodExt.GetBoolAttributeL( CMManager::EWlanScanSSID ) )
+            {
+        CCHUIDEBUG( 
+             "CCchUiConnectionHandler::SearchAccessPointsL - hidden wlan" );
+        
+            hiddenWlan = ETrue;
+            }
+        
+        CleanupStack::PopAndDestroy( &cmConnMethodExt );
+        }
+    
     HBufC* ssid16 = HBufC::NewL( KSsidLength );
     CleanupStack::PushL( ssid16 );
     
@@ -157,7 +181,11 @@
         TBool alreadyExists = EFalse;
 
         TInt iapId = AddNewConnectionMethodL( 
-            newDestination, *ssid16, securityMode, alreadyExists, EFalse );
+            newDestination, 
+            *ssid16, 
+            securityMode,
+            alreadyExists,
+            hiddenWlan );
         
         if ( KErrCancel == iapId )
             {
@@ -191,7 +219,11 @@
         
         TBool alreadyExists = EFalse;
         TInt iapId = AddNewConnectionMethodL( 
-            destination, *ssid16, securityMode, alreadyExists, EFalse );
+            destination,
+            *ssid16,
+            securityMode,
+            alreadyExists, 
+            hiddenWlan );
         
         CleanupStack::PopAndDestroy( &destination );
         CleanupStack::PopAndDestroy( ssid16 );
@@ -230,6 +262,17 @@
         SetSnapToUseL( aServiceId, aSnapId ); 
         }
     
+    // Reset Easy Wlan EWlanScanSSID parameter to EFalse
+    if ( easyWlanId && hiddenWlan )
+        {
+        RCmConnectionMethodExt cmConnMethodExt = 
+            iCmManagerExt.ConnectionMethodL( easyWlanId );
+        CleanupClosePushL( cmConnMethodExt );
+        cmConnMethodExt.SetBoolAttributeL( CMManager::EWlanScanSSID, EFalse );
+        cmConnMethodExt.UpdateL();
+        CleanupStack::PopAndDestroy( &cmConnMethodExt );
+        }
+    
     CCHUIDEBUG( "CCchUiConnectionHandler::SearchAccessPointsL - OUT" );
     }