connectionutilities/ConnectionDialogs/ConnectionUiUtilities/src/ConnectionUiUtilitiesImpl.cpp
changeset 0 5a93021fdf25
child 8 2e6c4614c58e
child 20 9c97ad6591ae
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/connectionutilities/ConnectionDialogs/ConnectionUiUtilities/src/ConnectionUiUtilitiesImpl.cpp	Thu Dec 17 08:55:21 2009 +0200
@@ -0,0 +1,1167 @@
+/*
+* Copyright (c) 2004 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 class CConnectionUiUtilitiesImpl.   
+*      
+*
+*/
+
+
+// INCLUDE FILES
+
+#include <bautils.h>
+#include <StringLoader.h>
+#include <commdb.h>
+#include <aknnotewrappers.h>
+#include <AknGlobalNote.h>
+#include <aknradiobuttonsettingpage.h>
+#include <ConnectionUiUtilities.h>
+#include <AknsUtils.h>
+#include <featmgr.h>
+#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
+#include <commsdat.h>
+#else
+#include <commsdat.h>
+#include <commsdat_partner.h>
+#endif
+
+#ifndef __WINS__
+#include <wlanmgmtclient.h>
+#include <WlanCdbCols.h>
+#endif  // ! __WINS__
+
+#include "ConnectionUiUtilitiesImpl.h"
+#include "ChangeConnectionDlg.h"
+#include "ActiveCChangeConnectionDlg.h"
+
+#include <ConnectionUiUtilities.rsg>
+#include <data_caging_path_literals.hrh>
+
+#include "ConnectionDialogsLogger.h"
+
+
+// CONSTANTS
+
+// ROM folder
+_LIT( KDriveZ, "z:" );
+
+// RSC file name.
+_LIT( KConnUiUtilsResName, "ConnectionUiUtilities.rsc" );
+
+
+
+// ================= MEMBER FUNCTIONS =======================
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::NewL
+// ---------------------------------------------------------
+//
+CConnectionUiUtilitiesImpl* CConnectionUiUtilitiesImpl::NewL()
+    {
+    CConnectionUiUtilitiesImpl* utilsImpl = 
+                                new ( ELeave ) CConnectionUiUtilitiesImpl();
+    CleanupStack::PushL( utilsImpl );
+    utilsImpl->ConstructL();
+    CleanupStack::Pop( utilsImpl ); 
+    return utilsImpl;
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CConnectionUiUtilitiesImpl
+// ---------------------------------------------------------
+//
+CConnectionUiUtilitiesImpl::CConnectionUiUtilitiesImpl() 
+: iResOffset( 0 ),
+  iIsWlanSupported( EFalse )
+    {
+    for ( TInt i = 0; i < KNumberOfWrappedDialogs; i++ )
+        {
+        iActiveWrapper[i] = NULL;
+        }
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ConstructL
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConstructL()
+    {
+    User::LeaveIfError( iNotif.Connect() );    
+
+    FeatureManager::InitializeLibL();
+    iIsWlanSupported = 
+                FeatureManager::FeatureSupported( KFeatureIdProtocolWlan );
+    FeatureManager::UnInitializeLib();
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::~CConnectionUiUtilitiesImpl
+// ---------------------------------------------------------
+//
+CConnectionUiUtilitiesImpl::~CConnectionUiUtilitiesImpl()
+    {    
+    if ( iResOffset )
+        {
+        CCoeEnv::Static()->DeleteResourceFile( iResOffset );
+        }
+    iNotif.Close();
+
+    for ( TInt i = 0; i < KNumberOfWrappedDialogs; i++ )
+        {
+        delete iActiveWrapper[i];
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::LoadResourceFileL
+// ---------------------------------------------------------
+//    
+void CConnectionUiUtilitiesImpl::LoadResourceFileL()
+    {
+    if ( !iResOffset )
+        {
+        // can't use resource here because it has not been added yet....
+        TFileName fileName;
+
+        fileName.Append( KDriveZ );
+        fileName.Append( KDC_RESOURCE_FILES_DIR );
+        fileName.Append( KConnUiUtilsResName );
+
+        BaflUtils::NearestLanguageFile( CCoeEnv::Static()->FsSession(), 
+                                        fileName );
+        iResOffset = CCoeEnv::Static()->AddResourceFileL( fileName );
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::AlwaysAskPageL
+// ---------------------------------------------------------
+//
+
+TBool CConnectionUiUtilitiesImpl::AlwaysAskPageL( 
+                                                TCuuAlwaysAskResults& aResult )
+    {
+    LoadResourceFileL();
+    // options array
+    CDesCArrayFlat* values = new( ELeave )CDesCArrayFlat( 1 );
+    CleanupStack::PushL( values );
+
+    HBufC* value1 = CCoeEnv::Static()->AllocReadResourceLC( 
+                                                R_ALWAYS_ASK_ALWAYS_ASK );
+    values->AppendL( *value1 );
+    CleanupStack::PopAndDestroy( value1 );
+
+    HBufC* value2 = CCoeEnv::Static()->AllocReadResourceLC( 
+                                                R_ALWAYS_ASK_USER_DEFINED );
+    values->AppendL( *value2 );
+    CleanupStack::PopAndDestroy( value2 );
+
+    TInt index( 0 );
+      switch ( aResult )
+        {
+        case ECuuAlwaysAsk:
+            {
+            index = 0;
+            break;
+            }
+        case ECuuUserDefined:
+            {
+            index = 1;
+            break;
+            }
+        default:
+            break;
+        }
+  
+    CAknRadioButtonSettingPage* dlg = new ( ELeave )CAknRadioButtonSettingPage(
+                                            R_ALWAYS_ASK_PAGE, index, values );
+
+    TBool oKPressed( EFalse );
+    
+    CleanupStack::PushL( dlg );
+
+    AknsUtils::SetAvkonSkinEnabledL( ETrue );
+    
+    CleanupStack::Pop( dlg );
+    
+    if ( dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ) )
+        {
+        oKPressed = ETrue;
+        }
+
+    switch ( index )
+        {
+        case 0:
+            {
+            aResult = ECuuAlwaysAsk;
+            break;
+            }
+        case 1:
+            {
+            aResult = ECuuUserDefined;
+            break;
+            }
+        default:
+            break;
+        }
+
+      CleanupStack::PopAndDestroy( values );
+
+    return oKPressed;
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ChangeConnectionL
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::ChangeConnectionL( TUint32& aIAPId,
+                                                     TConnectionPrefs aPrefs )
+    {
+    CLOG_ENTERFN( "CConnectionUiUtilitiesImpl::ChangeConnectionL " );  
+    
+    TUint32 origId = aIAPId;
+    LoadResourceFileL();
+    CCommsDatabase* db = CCommsDatabase::NewL( EDatabaseTypeUnspecified );
+    CleanupStack::PushL( db );
+
+    TBuf<CommsDat::KMaxTextLength> connName;
+
+    GetConnectionNameL( aIAPId, *db, connName );
+    CleanupStack::PopAndDestroy( db ); // db
+    
+    CActiveCChangeConnectionDlg* activeChangeConnDlg =
+                CActiveCChangeConnectionDlg::NewL( &aIAPId, aPrefs, connName );
+    CleanupStack::PushL( activeChangeConnDlg );
+            
+    TBool retval = activeChangeConnDlg->StartSearchIAPsL();    
+    
+    CLOG_WRITE( "activeChangeConnDlg->StartSearchIAPsL();" );
+            
+    CLOG_WRITEF( _L( "aIAPId : %d" ),  aIAPId );
+    CLOG_WRITEF( _L( "origId : %d" ),  origId );
+    CLOG_WRITEF( _L( "retval : %d" ),  retval );
+    
+    CleanupStack::PopAndDestroy( activeChangeConnDlg );     
+    
+    CLOG_LEAVEFN( "CConnectionUiUtilitiesImpl::ChangeConnectionL " );  
+
+    return retval;
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ShowConnectionChangedNoteL
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ShowConnectionChangedNoteL( 
+                                                        const TUint32& aIAPId )
+
+    {
+    LoadResourceFileL();
+    CCommsDatabase* db = CCommsDatabase::NewL( EDatabaseTypeUnspecified );
+    CleanupStack::PushL( db );
+
+    TBuf<CommsDat::KMaxTextLength> connName;
+
+    GetConnectionNameL( aIAPId, *db, connName );
+    CleanupStack::PopAndDestroy( db );
+
+    HBufC* stringLabel = StringLoader::LoadLC( R_CONN_CHANGED, connName );
+
+    CAknInformationNote* infNote = new( ELeave )CAknInformationNote();
+    infNote->ExecuteLD( *stringLabel );
+
+    CleanupStack::PopAndDestroy( stringLabel );
+    }
+
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetwork
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::SearchWLANNetwork( TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode )
+    {
+    return SearchWLANNetwork( aSSID, 
+                              aConnectionMode, 
+                              aSecurityMode, 
+                              iDummyExtSecMode, 
+                              iDummy );
+    }
+    
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetwork
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::SearchWLANNetwork( TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionExtentedSecurityMode& aExtSecurityMode )
+    {
+    return SearchWLANNetwork( aSSID, 
+                              aConnectionMode, 
+                              iDummySecMode, 
+                              aExtSecurityMode, 
+                              iDummy );
+    }    
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetwork
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::SearchWLANNetwork( TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode, 
+                                TBool& aProtectedSetupSupported )
+    {
+    return SearchWLANNetwork( aSSID, 
+                              aConnectionMode, 
+                              aSecurityMode, 
+                              iDummyExtSecMode, 
+                              aProtectedSetupSupported );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetwork
+// ---------------------------------------------------------
+//    
+TBool CConnectionUiUtilitiesImpl::SearchWLANNetwork( TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionExtentedSecurityMode& aExtSecurityMode, 
+                                TBool& aProtectedSetupSupported )
+    {
+    return SearchWLANNetwork( aSSID, 
+                              aConnectionMode, 
+                              iDummySecMode, 
+                              aExtSecurityMode, 
+                              aProtectedSetupSupported );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetwork
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::SearchWLANNetwork( TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode,
+                                TWlanConnectionExtentedSecurityMode& aExtSecurityMode, 
+                                TBool& aProtectedSetupSupported )
+    {
+    TBool result( EFalse );
+    
+    if ( iIsWlanSupported )
+        {
+        iNetworkPrefs();
+
+        if ( !iActiveWrapper[ESearchWlan] )
+            {
+            TRAP_IGNORE( iActiveWrapper[ESearchWlan] = 
+                                        CActiveWrapper::NewL( ESearchWlan ) );
+            }
+
+        if ( iActiveWrapper[ESearchWlan] )
+            {
+            iActiveWrapper[ESearchWlan]->StartSearchWLANNetwork( 
+                                                            iNetworkPrefs );
+
+            CLOG_WRITEF( _L( "iActiveWrapper[ESearchWlan]->iStatus.Int(): %d" ),  
+                           iActiveWrapper[ESearchWlan]->iStatus.Int() );
+
+            result = iActiveWrapper[ESearchWlan]->iStatus.Int() ? EFalse : 
+                                                                  ETrue;
+            }
+    
+        if( result )
+            {
+            aSSID = iNetworkPrefs().iSsId;
+            aConnectionMode = iNetworkPrefs().iNetworkMode;
+            aSecurityMode = iNetworkPrefs().iSecMode;
+            aExtSecurityMode = iNetworkPrefs().iExtSecMode;
+            aProtectedSetupSupported = 
+                                    iNetworkPrefs().iProtectedSetupSupported;
+            }
+        }    
+    
+    CLOG_WRITEF( _L( "SearchWLANNetwork result : %b" ),  result ); 
+                       
+    return result;        
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelSearchWLANNetwork
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelSearchWLANNetwork()
+    {
+    if ( iIsWlanSupported )
+        {
+        iActiveWrapper[ESearchWlan]->Cancel();
+        }
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::GetConnectionNameL
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::GetConnectionNameL( const TUint32& aIAPId,
+                                                     CCommsDatabase& aDb,
+                                                     TDes& aConnectionName )
+    {
+    __ASSERT_DEBUG( &aDb, User::Panic( KErrNullPointer, KErrNone ) );
+
+    CCommsDbTableView* table = aDb.OpenViewMatchingUintLC( TPtrC( IAP ), 
+                                                           TPtrC( COMMDB_ID ),
+                                                           aIAPId );
+    User::LeaveIfError( table->GotoFirstRecord() );
+    table->ReadTextL( TPtrC( COMMDB_NAME ), aConnectionName );
+    if ( aConnectionName.Length() == 0 || 
+         aConnectionName.Left( KMrouterName().Length() ).CompareF( 
+                                                    KMrouterName ) == 0 )
+        {
+        User::Leave( KErrGeneral );
+        }
+
+    TUint32 serviceId;
+    // Get IAP service
+    table->ReadUintL( TPtrC( IAP_SERVICE ), serviceId );
+
+    CleanupStack::PopAndDestroy( table );
+
+#ifndef __WINS__        
+    if ( iIsWlanSupported )
+        {
+        CCommsDbTableView* wLanServiceTable = NULL;
+            
+        TRAPD( err, 
+            { // this leaves if the table is empty....
+            wLanServiceTable = aDb.OpenViewMatchingUintLC( 
+                                                    TPtrC( WLAN_SERVICE ),
+                                                    TPtrC( WLAN_SERVICE_ID ),
+                                                    serviceId );
+            CleanupStack::Pop( wLanServiceTable ); // wLanServiceTable
+            } );
+
+        CLOG_WRITEF( _L( "OpenViewMatchingUintLC returned %d" ), err );
+
+        if ( err == KErrNone )
+            {
+            CleanupStack::PushL( wLanServiceTable );
+
+            TInt errorCode = wLanServiceTable->GotoFirstRecord();
+            TWlanSsid ssid;
+            
+            if ( errorCode == KErrNone )
+                {
+                wLanServiceTable->ReadTextL( TPtrC( NU_WLAN_SSID ), ssid );
+                if ( ssid.Length() == 0 )
+                    {
+                    CLOG_WRITEF( _L( "It is the EasyWlan!" ) );
+
+                    TWlanSsid ssidConn;
+                    CWlanMgmtClient *wlanMgmtClient = CWlanMgmtClient::NewL();
+                    CleanupStack::PushL( wlanMgmtClient );
+
+                    if ( !wlanMgmtClient->GetConnectionSsid( ssidConn ) )
+                        {
+                        CLOG_WRITEF( _L( "ssidConn.Length() = %d" ), ssidConn.Length() );
+
+                        aConnectionName.Copy( ssidConn );
+                        }
+
+                    wlanMgmtClient->CancelNotifications();
+                    CleanupStack::PopAndDestroy( wlanMgmtClient );
+                    }
+                }
+
+            CleanupStack::PopAndDestroy( wLanServiceTable );
+            }
+        else if ( err != KErrNotFound )
+            {
+            User::LeaveIfError( err );
+            }
+        }
+
+#endif  // !__WINS__
+
+    CLOG_WRITEF( _L( "connectionName = %S" ), &aConnectionName );
+    }
+    
+    
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::OffLineWlanNote
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::OffLineWlanNote()
+    { 
+    CLOG_ENTERFN( "CConnectionUiUtilitiesImpl::OffLineWlanNote" );    
+
+    if ( iIsWlanSupported )
+        {
+        if ( !iActiveWrapper[EOffLineWlan] )
+            {
+            TRAP_IGNORE( iActiveWrapper[EOffLineWlan] = 
+                                        CActiveWrapper::NewL( EOffLineWlan ) );
+            CLOG_WRITE( "iActiveWrapper created" );
+            }
+
+        if ( iActiveWrapper[EOffLineWlan] )
+            {
+            CLOG_WRITE( "Starting generic note" );
+            iActiveWrapper[EOffLineWlan]->StartGenericNote( EOffLineWlan );
+            CLOG_WRITE( "Generic note started" );
+            return iActiveWrapper[EOffLineWlan]->iStatus.Int() ? EFalse : 
+                                                                 ETrue;
+            }
+        }
+       
+    CLOG_LEAVEFN( "CConnectionUiUtilitiesImpl::OffLineWlanNote" );
+
+    return EFalse;
+    }
+
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::OffLineWlanNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::OffLineWlanNote( TRequestStatus& aStatus )
+    { 
+    CLOG_ENTERFN( "CConnectionUiUtilitiesImpl::OffLineWlanNote Async" );    
+
+    if ( iIsWlanSupported )
+        {
+        if ( iActiveWrapper[EOffLineWlan] )
+            {   // deleting, to be sure to call the right Cancel function
+            delete iActiveWrapper[EOffLineWlan];
+            iActiveWrapper[EOffLineWlan] = NULL;
+            }
+
+        iNotif.OffLineWlanNote( aStatus, ETrue );
+        }
+       
+    CLOG_LEAVEFN( "CConnectionUiUtilitiesImpl::OffLineWlanNote Async" );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelOffLineWlanNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelOffLineWlanNote()
+    {
+    if ( iIsWlanSupported )    
+        {
+        if ( iActiveWrapper[EOffLineWlan] )
+            {
+            iActiveWrapper[EOffLineWlan]->Cancel();
+            }
+        else
+            {   // Asynchronous version
+            iNotif.CancelOffLineWlanNote();
+            }
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::OffLineWlanDisabledNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::OffLineWlanDisabledNote()
+    {
+    if ( iIsWlanSupported )    
+        {
+        if ( !iActiveWrapper[EWlanDisabled] )
+            {
+            TRAP_IGNORE( iActiveWrapper[EWlanDisabled] = 
+                                    CActiveWrapper::NewL( EWlanDisabled ) );
+            }
+
+        if ( iActiveWrapper[EWlanDisabled] )
+            {
+            iActiveWrapper[EWlanDisabled]->StartGenericNote( EWlanDisabled );
+            }
+        }
+    }
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::EasyWepDlg
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::EasyWepDlg( TDes* aKey, TBool& aHex )
+    {
+    TInt status = KErrNone;
+    
+    if ( iIsWlanSupported )    
+        {
+        iWepKey().iKey.Copy( *aKey );
+        if ( !iActiveWrapper[EWlanEasyWep] )
+            {
+            TRAP_IGNORE( iActiveWrapper[EWlanEasyWep] = 
+                                    CActiveWrapper::NewL( EWlanEasyWep ) );
+            }
+
+        if ( iActiveWrapper[EWlanEasyWep] )
+            {
+            status = iActiveWrapper[EWlanEasyWep]->StartEasyWepDlg( iWepKey );
+            } 
+        aKey->Copy( iWepKey().iKey );
+        aHex = iWepKey().iHex;        
+        }
+    return ( status == KErrNone ) ? ETrue : EFalse;
+    }
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::EasyWepDlgAsync
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::EasyWepDlgAsync( TRequestStatus& aStatus, TDes* aKey, TBool& aHex )
+    {
+    if ( iIsWlanSupported )    
+        {
+        if ( !iActiveWrapper[EWlanEasyWep] )
+            {
+            TRAP_IGNORE( iActiveWrapper[EWlanEasyWep] = 
+                                    CActiveWrapper::NewL( EWlanEasyWep ) );
+            }
+
+        if ( iActiveWrapper[EWlanEasyWep] )
+            {
+            iActiveWrapper[EWlanEasyWep]->StartEasyWepDlgAsync( aStatus, aKey, aHex );
+            } 
+        }
+    }
+
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelEasyWepDlg
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelEasyWepDlg()
+    {
+    if ( iIsWlanSupported )    
+        {
+        iActiveWrapper[EWlanEasyWep]->Cancel();      
+        }
+    }
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::EasyWpaDlg
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::EasyWpaDlg( TDes* aKey )
+    { 
+    TInt status = KErrNone;
+    if ( iIsWlanSupported )    
+        {
+        iWpaKey().Copy( *aKey );
+        if ( !iActiveWrapper[EWlanEasyWpa] )
+            {
+            TRAP_IGNORE( iActiveWrapper[EWlanEasyWpa] = 
+                                    CActiveWrapper::NewL( EWlanEasyWpa ) );
+            }
+
+        if ( iActiveWrapper[EWlanEasyWpa] )
+            {
+            status = iActiveWrapper[EWlanEasyWpa]->StartEasyWpaDlg( iWpaKey );
+            }        
+        aKey->Copy( iWpaKey() );        
+        }
+    return ( status == KErrNone ) ? ETrue : EFalse;
+    }
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::StartEasyWpaDlgAsync
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::EasyWpaDlgAsync( TRequestStatus& aStatus, TDes* aKey )
+    { 
+    if ( iIsWlanSupported )    
+        {
+        if ( !iActiveWrapper[EWlanEasyWpa] )
+            {
+            TRAP_IGNORE( iActiveWrapper[EWlanEasyWpa] = 
+                                    CActiveWrapper::NewL( EWlanEasyWpa ) );
+            }
+
+        if ( iActiveWrapper[EWlanEasyWpa] )
+            {
+            iActiveWrapper[EWlanEasyWpa]->StartEasyWpaDlgAsync( aStatus, aKey );
+            }        
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelEasyWpaDlg
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelEasyWpaDlg()
+    {
+    if ( iIsWlanSupported )    
+        {
+        iActiveWrapper[EWlanEasyWpa]->Cancel();         
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::WLANNetworkUnavailableNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::WLANNetworkUnavailableNote()
+    {
+    if ( iIsWlanSupported )    
+        {
+        if ( !iActiveWrapper[EWlanNetwUnavail] )
+            {
+            TRAP_IGNORE( iActiveWrapper[EWlanNetwUnavail] = 
+                                    CActiveWrapper::NewL( EWlanNetwUnavail ) );
+            }
+
+        if ( iActiveWrapper[EWlanNetwUnavail] )
+            {
+            iActiveWrapper[EWlanNetwUnavail]->StartGenericNote( 
+                                                            EWlanNetwUnavail );
+            }
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetworkSync
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::SearchWLANNetworkSync( TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode )
+    {
+    return SearchWLANNetworkSync( aSSID, aConnectionMode, aSecurityMode, 
+                                  iDummy );
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetworkSync
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::SearchWLANNetworkSync( TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode, 
+                                TBool& aProtectedSetupSupported )
+    {
+    TBool result( EFalse );
+    
+    if ( iIsWlanSupported )
+        {
+        TRequestStatus status;
+        iNetworkPrefs();
+
+        iNotif.SearchWLANNetwork( iNetworkPrefs, status, EFalse );
+        User::WaitForRequest( status ); 
+        
+        if( status == KErrNone )
+            {
+            aSSID = iNetworkPrefs().iSsId;
+            aConnectionMode = iNetworkPrefs().iNetworkMode;
+            aSecurityMode = iNetworkPrefs().iSecMode;
+            aProtectedSetupSupported = 
+                                    iNetworkPrefs().iProtectedSetupSupported;
+            result = ETrue;
+            }
+        }    
+    
+    CLOG_WRITEF( _L( "SearchWLANNetworkSync result : %b" ),  result );
+    return result;
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync( 
+                                TRequestStatus& aStatus,
+                                TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode )
+    {
+    SearchWLANNetworkAsync( aStatus, 
+                            aSSID, 
+                            aConnectionMode, 
+                            aSecurityMode, 
+                            iDummyExtSecMode, 
+                            iDummy );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync( 
+                                TRequestStatus& aStatus,
+                                TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionExtentedSecurityMode& aExtSecurityMode )
+    {
+    SearchWLANNetworkAsync( aStatus, 
+                            aSSID, 
+                            aConnectionMode, 
+                            iDummySecMode, 
+                            aExtSecurityMode, 
+                            iDummy );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync( 
+                                TRequestStatus& aStatus,
+                                TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode, 
+                                TBool& aProtectedSetupSupported )
+    {
+    SearchWLANNetworkAsync( aStatus, 
+                            aSSID, 
+                            aConnectionMode, 
+                            aSecurityMode, 
+                            iDummyExtSecMode,
+                            aProtectedSetupSupported );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync( 
+                                TRequestStatus& aStatus,
+                                TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionExtentedSecurityMode& aExtSecurityMode, 
+                                TBool& aProtectedSetupSupported )
+    {
+    SearchWLANNetworkAsync( aStatus, 
+                            aSSID, 
+                            aConnectionMode, 
+                            iDummySecMode, 
+                            aExtSecurityMode, 
+                            aProtectedSetupSupported );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync( 
+                                TRequestStatus& aStatus,
+                                TWlanSsid& aSSID,
+                                TWlanConnectionMode& aConnectionMode,
+                                TWlanConnectionSecurityMode& aSecurityMode,
+                                TWlanConnectionExtentedSecurityMode& aExtSecurityMode, 
+                                TBool& aProtectedSetupSupported )
+    {
+    CLOG_ENTERFN( "CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync" );    
+
+    if ( iIsWlanSupported )
+        {
+        if ( !iActiveWrapper[ESearchWlan] )
+            {
+            TRAP_IGNORE( iActiveWrapper[ESearchWlan] = 
+                                        CActiveWrapper::NewL( ESearchWlan ) );
+            }
+
+        if ( iActiveWrapper[ESearchWlan] )
+            {
+            iActiveWrapper[ESearchWlan]->StartSearchWLANNetworkAsync( aStatus,
+                                    aSSID, aConnectionMode, aSecurityMode,
+                                    aExtSecurityMode, 
+                                    aProtectedSetupSupported );
+
+            CLOG_WRITEF( _L( "iActiveWrapper[ESearchWlan]->iStatus.Int(): %d" ),  
+                           iActiveWrapper[ESearchWlan]->iStatus.Int() );
+            }
+        }    
+
+    CLOG_LEAVEFN( "CConnectionUiUtilitiesImpl::SearchWLANNetworkAsync" );    
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ConnectedViaDestAndConnMethodNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConnectedViaDestAndConnMethodNote( 
+                                                const TUint32 aDestId, 
+                                                const TUint32 aConnMId )
+    {
+    if ( !iActiveWrapper[EConnViaDestCM] )
+        {
+        TRAP_IGNORE( iActiveWrapper[EConnViaDestCM] = 
+                                    CActiveWrapper::NewL( EConnViaDestCM ) );
+        }
+
+    if ( iActiveWrapper[EConnViaDestCM] )
+        {
+        iActiveWrapper[EConnViaDestCM]->StartGenericNote( EConnViaDestCM, 
+                                                          aConnMId, aDestId );
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ConnectedViaDestAndConnMethodNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConnectedViaDestAndConnMethodNote( 
+                                                const TUint32 aDestId, 
+                                                const TUint32 aConnMId, 
+                                                TRequestStatus& aStatus )
+    {
+    iNotif.ConnectedViaDestAndConnMethodNote( aDestId, aConnMId, aStatus );
+    }
+        
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelConnectedViaDestAndConnMethodNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelConnectedViaDestAndConnMethodNote()
+    {
+    iNotif.CancelConnectedViaDestAndConnMethodNote();
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ChangingConnectionToNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ChangingConnectionToNote( 
+                                                const TUint32 aConnMId )
+    {
+    if ( !iActiveWrapper[EChangingConnTo] )
+        {
+        TRAP_IGNORE( iActiveWrapper[EChangingConnTo] = 
+                                    CActiveWrapper::NewL( EChangingConnTo ) );
+        }
+
+    if ( iActiveWrapper[EChangingConnTo] )
+        {
+        iActiveWrapper[EChangingConnTo]->StartGenericNote( EChangingConnTo,
+                                                           aConnMId );
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ChangingConnectionToNote
+// ---------------------------------------------------------
+//    
+void CConnectionUiUtilitiesImpl::ChangingConnectionToNote( 
+                                                const TUint32 aConnMId, 
+                                                TRequestStatus& aStatus )
+    {
+    iNotif.ChangingConnectionToNote( aConnMId, aStatus );  
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelChangingConnectionToNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelChangingConnectionToNote()
+    {
+    iActiveWrapper[EChangingConnTo]->Cancel();
+    }
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::ConfirmMethodUsageQuery
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConfirmMethodUsageQuery( 
+                                               TMsgQueryLinkedResults& aResult,
+                                               const TBool aHomeNetwork,
+                                               TRequestStatus& aStatus )
+    { 
+    iNotif.ConfirmMethodUsageQuery( aResult, aHomeNetwork, aStatus );
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelConfirmMethodUsageQuery
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelConfirmMethodUsageQuery()
+    {
+    iNotif.CancelConfirmMethodUsageQuery();
+    }
+
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ConnectedViaConnMethodNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConnectedViaConnMethodNote( 
+                                                    const TUint32 aConnMId )
+    {
+    if ( !iActiveWrapper[EConnViaCM] )
+        {
+        TRAP_IGNORE( iActiveWrapper[EConnViaCM] = 
+                                        CActiveWrapper::NewL( EConnViaCM ) );
+        }
+
+    if ( iActiveWrapper[EConnViaCM] )
+        {
+        iActiveWrapper[EConnViaCM]->StartGenericNote( EConnViaCM, aConnMId );
+        }
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::ConnectedViaConnMethodNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConnectedViaConnMethodNote( 
+                                                    const TUint32 aConnMId,
+                                                    TRequestStatus& aStatus )
+    {
+    iNotif.ConnectedViaConnMethodNote( aConnMId, aStatus );
+    }
+
+        
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelConnectedViaConnMethodNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelConnectedViaConnMethodNote()
+    {
+    iNotif.CancelConnectedViaConnMethodNote();
+    }
+    
+    
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::WlanPowerSaveTestNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::WlanPowerSaveTestNote( 
+                                                    TBool&          aDisable,
+                                                    TRequestStatus& aStatus )
+    {
+    iNotif.WlanPowerSaveTestNote( aDisable, aStatus );
+    }
+
+        
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::CancelWlanPowerSaveTestNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::CancelWlanPowerSaveTestNote()
+    {
+    iNotif.CancelWlanPowerSaveTestNote();
+    }
+    
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::EasyWapiDlg
+// ---------------------------------------------------------
+//
+TBool CConnectionUiUtilitiesImpl::EasyWapiDlg( TDes* aKey )
+    { 
+    TInt status( KErrNone );
+    
+    if ( iIsWlanSupported )    
+        {
+        iWapiKey().Copy( *aKey );
+        
+        if ( !iActiveWrapper[ EWlanEasyWapi ] )
+            {
+            TRAP_IGNORE( iActiveWrapper[ EWlanEasyWapi ] = 
+                                    CActiveWrapper::NewL( EWlanEasyWapi ) );
+            }
+
+        if ( iActiveWrapper[ EWlanEasyWapi ] )
+            {
+            status = iActiveWrapper[ EWlanEasyWapi ]->StartEasyWapiDlg( iWapiKey );
+            }
+                    
+        aKey->Copy( iWapiKey() );        
+        }
+    return ( status == KErrNone ) ? ETrue : EFalse;
+    }
+
+// ---------------------------------------------------------
+// CConnectionUiUtilitiesImpl::NoWLANNetworksAvailableNote
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::NoWLANNetworksAvailableNote()
+    {
+    if ( iIsWlanSupported )    
+        {
+        if ( !iActiveWrapper[ ENoWlanNetwsAvail ] )
+            {
+            TRAP_IGNORE( iActiveWrapper[ ENoWlanNetwsAvail ] = 
+                                    CActiveWrapper::NewL( ENoWlanNetwsAvail ) );
+            }
+
+        if ( iActiveWrapper[ ENoWlanNetwsAvail ] )
+            {
+            iActiveWrapper[ ENoWlanNetwsAvail ]->StartGenericNote( 
+                                                            ENoWlanNetwsAvail );
+            }
+        }
+    }
+
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::ConnectingViaDiscreetPopup
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConnectingViaDiscreetPopup( const TUint32& aIapId, TBool aConnectionAlreadyActive )
+    { 
+    iConnInfo().iIapId = aIapId;
+    iConnInfo().iConnectionAlreadyActive = aConnectionAlreadyActive;
+    
+    if ( !iActiveWrapper[ EConnectingViaDiscreetPopup ] )
+        {
+        TRAP_IGNORE( iActiveWrapper[ EConnectingViaDiscreetPopup ] = 
+                                CActiveWrapper::NewL( EConnectingViaDiscreetPopup ) );
+        }
+
+    if ( iActiveWrapper[ EConnectingViaDiscreetPopup ] )
+        {
+        iActiveWrapper[ EConnectingViaDiscreetPopup ]
+                        ->StartConnectingViaDiscreetPopup( iConnInfo );
+        }
+    }
+
+
+
+// ---------------------------------------------------------    
+// CConnectionUiUtilitiesImpl::ConnectionErrorDiscreetPopup
+// ---------------------------------------------------------
+//
+void CConnectionUiUtilitiesImpl::ConnectionErrorDiscreetPopup( const TInt& aErrCode )
+    {
+    TPckgBuf< TInt > buf;
+    buf() = aErrCode;
+    
+    if ( !iActiveWrapper[ EConnectionErrorDiscreetPopup ] )
+        {
+        TRAP_IGNORE( iActiveWrapper[ EConnectionErrorDiscreetPopup ] = 
+                                CActiveWrapper::NewL( EConnectionErrorDiscreetPopup ) );
+        }
+
+    if ( iActiveWrapper[ EConnectionErrorDiscreetPopup ] )
+        {
+        iActiveWrapper[ EConnectionErrorDiscreetPopup ]
+                        ->StartConnectionErrorDiscreetPopup( buf );
+        }
+    }
+        
+// End of File