diff -r 30e048a7b597 -r bad0cc58d154 wlansecuritysettings/wlaneapsettingsui/EapPeap/ConfigUi/src/EapPeapUiView.cpp --- a/wlansecuritysettings/wlaneapsettingsui/EapPeap/ConfigUi/src/EapPeapUiView.cpp Thu Aug 19 09:58:27 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1880 +0,0 @@ -/* -* Copyright (c) 2001-2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "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 EAP PEAP UI settings dialog -* -*/ - -/* -* %version: 37.1.8.1.1 % -*/ - -// INCLUDE FILES -#include -#include -#include -#include "EapPeapUiView.h" -#include "EapPeapUi.hrh" -#include -#include -#include -#include "EapPeapUiSettingArray.h" -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include // For EAP type info query -#include -#include -#include -#include -#include - - -// CONSTANTS -// UID of general settings app, in which help texts are included -const TUid KHelpUidPlugin = { 0x100058EC }; - - -static const TInt KSettingArrayGranularity = 4; -static const TInt KSuiteArrayGranularity = 5; -static const TInt KMaxLengthOfEapLine = 270; -static const TInt KCertificateArrayGranularity = 5; -static const TInt KMaxLengthOfSuiteName = 255; -static const TInt KEapPeapId = 25; - -_LIT( KNameSeparator, " " ); -_LIT( KEmptyString, "" ); -const TUint KFirstElement = 0; -const TUint KSecondElement = 1; -const TUint KMinEnabledCount = 1; - -/* This is the maximum length of a certificate's full name, includes -label, primary and secondary names */ -const TUint32 KMaxFullCertLabelLength = KMaxCertLabelLength + 2 * - KMaxNameLength + 1; // 1 is for separator. - - -// MODULE DATA STRUCTURES -enum TPageIds - { - ESettingsPage=0, - EEapTypePage, - ECipherSuitePage - }; - - -enum TSettingIds - { - EUserCertificateItem=0, - ECaCertificateItem, - EUsernameInUseItem, - EUsernameItem, - ERealmInUseItem, - ERealmItem - }; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::CEapPeapUiDialog -// ----------------------------------------------------------------------------- -// -CEapPeapUiDialog::CEapPeapUiDialog( CEapTlsPeapUiConnection* aConnection, - TIndexType aIndexType, - TInt aIndex, - TInt& aButtonId ) -: CAknDialog(), - iConnection( aConnection ), - iIndexType( aIndexType ), - iIndex( aIndex ), - iButtonId( &aButtonId ), - iIsUIConstructionCompleted( EFalse ), - iExiting( EFalse ) - { - } - - -// --------------------------------------------------------- -// CEapPeapUiDialog::ConstructAndRunLD -// --------------------------------------------------------- -// -TInt CEapPeapUiDialog::ConstructAndRunLD( TInt aResourceId ) - { - CleanupStack::PushL( this ); - - iSettingArray = CEapPeapSettingItemArray::NewL(); - - User::LeaveIfError( iConnection->Connect() ); - - // Basic data - iDataConnection = iConnection->GetDataConnection(); - if ( iDataConnection == 0 ) - { - User::Leave( KErrNoMemory ); - } - User::LeaveIfError( iDataConnection->Open() ); - User::LeaveIfError( iDataConnection->GetData( &iUiData ) ); - - // Cipher suites - iCipherSuites = iConnection->GetCipherSuiteConnection(); - if ( iCipherSuites == 0 ) - { - User::Leave( KErrNoMemory ); - } - - User::LeaveIfError( iCipherSuites->Open() ); - User::LeaveIfError( iCipherSuites->GetCipherSuites( &iUiCipherSuites ) ); - - iCipherSuitesViewArray = new( ELeave ) CDesCArrayFlat( - KSuiteArrayGranularity ); - - //EAP types - iEapTypes = iConnection->GetEapTypeConnection(); - if ( iEapTypes == 0 ) - { - User::Leave( KErrNoMemory ); - } - User::LeaveIfError( iEapTypes->Open() ); - User::LeaveIfError( iEapTypes->GetEapTypes( &iUiEapTypes ) ); - - if ( iUiEapTypes->Count() == 0 ) - { - CreateEapTypeDataBaseL(); - } - iEapTypeViewArray = new( ELeave ) CDesCArrayFlat( - KSettingArrayGranularity ); - - FeatureManager::InitializeLibL(); - - ConstructL( R_PEAP_MENUBAR ); - - // ExecuteLD will PushL( this ), so we have to Pop it... - CleanupStack::Pop( this ); // this - - return CAknDialog::ExecuteLD( aResourceId ); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::OfferKeyEventL -// ----------------------------------------------------------------------------- -// -TKeyResponse CEapPeapUiDialog::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - TKeyResponse result( EKeyWasNotConsumed ); - - // gently handle impatient users - if ( !iIsUIConstructionCompleted ) - { - return CAknDialog::OfferKeyEventL( aKeyEvent, aType ); - } - - TInt pageId = ActivePageId(); - - if ( aType == EEventKey && pageId == KEAPPEAPCIPHERPAGE ) - { - - TInt indexBefore = iCipherSuiteListBox->CurrentItemIndex(); - - // Handle Enter key here, since it doesn't seem to convert into - // the proper command id via the normal route - // (maybe some Avkon support for Enter key is still missing in - // S60 3.2 2008_wk22) - if ( aKeyEvent.iCode == EKeyEnter ) - { - if ( ( *iUiCipherSuites )[indexBefore].iIsEnabled ) - { - OkToExitL( EPeapUiCmdDisable ); - } - else - { - OkToExitL( EPeapUiCmdEnable ); - } - - result = EKeyWasConsumed; - } - else - { - result = CAknDialog::OfferKeyEventL( aKeyEvent, aType ); - } - TInt indexAfter = iCipherSuiteListBox->CurrentItemIndex(); - - if ( indexBefore != indexAfter ) - { - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - if( ( *iUiCipherSuites )[indexAfter].iIsEnabled ) - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_DISABLE ); - } - else - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_ENABLE ); - } - - cba.DrawDeferred(); - } - } - else if ( aType == EEventKey && pageId == KEAPPEAPEAPPAGE ) - { - TInt indexBefore = iEapTypesListBox->CurrentItemIndex(); - // Handle Enter key here, since it doesn't seem to convert into - // the proper command id via the normal route - // (maybe some Avkon support for Enter key is still missing in - // S60 3.2 2008_wk22) - if ( aKeyEvent.iCode == EKeyEnter ) - { - if ( ( *iUiEapTypes )[indexBefore].iIsEnabled ) - { - OkToExitL( EPeapUiCmdConfigure ); - } - else - { - OkToExitL( EPeapUiCmdEnable ); - } - - result = EKeyWasConsumed; - } - else - { - result = CAknDialog::OfferKeyEventL( aKeyEvent, aType ); - } - - - TInt indexAfter = iEapTypesListBox->CurrentItemIndex(); - - if ( indexBefore != indexAfter ) - { - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - if( ( *iUiEapTypes )[indexAfter].iIsEnabled ) - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_CONFIGURE ); - } - else - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_ENABLE ); - } - - cba.DrawDeferred(); - } - } - else - { - result = CAknDialog::OfferKeyEventL( aKeyEvent, aType ); - } - - return result; - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::~CEapPeapUiDialog -// ----------------------------------------------------------------------------- -// -CEapPeapUiDialog::~CEapPeapUiDialog() - { - if ( iSettingArray ) - { - iSettingArray->Array()->ResetAndDestroy(); - } - - delete iSettingArray; - iSettingListBox = NULL; - - iDataConnection->Close(); - delete iDataConnection; - - iCipherSuitesViewArray->Reset(); - delete iCipherSuitesViewArray; - - iEapTypeViewArray->Reset(); - delete iEapTypeViewArray; - - iCertificates->Close(); - delete iCertificates; - - iCipherSuites->Close(); - delete iCipherSuites; - - iEapTypes->Close(); - delete iEapTypes; - - iConnection->Close(); - - delete iPreviousText; - - FeatureManager::UnInitializeLib(); - } - - -// --------------------------------------------------------- -// CEapPeapUiDialog::HandleListBoxEventL -// --------------------------------------------------------- -// -void CEapPeapUiDialog::HandleListBoxEventL( CEikListBox* aListBox, - TListBoxEvent aEventType ) - { - switch ( aEventType ) - { - case EEventEnterKeyPressed: - case EEventItemSingleClicked: - { - if ( aListBox == iSettingListBox ) - { - OkToExitL( EPeapUiCmdChange ); - } - - else if ( aListBox == iEapTypesListBox ) - { - TInt index = iEapTypesListBox->CurrentItemIndex(); - if ( iUiEapTypes->At( index ).iIsEnabled ) - { - ConfigureL( ETrue ); - } - else - { - OkToExitL( EPeapUiCmdEnable ); - } - } - - else if ( aListBox == iCipherSuiteListBox ) - { - TInt index = iCipherSuiteListBox->CurrentItemIndex(); - if ( iUiCipherSuites->At( index ).iIsEnabled ) - { - OkToExitL( EPeapUiCmdDisable ); - } - else - { - OkToExitL( EPeapUiCmdEnable ); - } - } - - else - { - // Do nothing; we should never end up here - } - - break; - } - - case EEventItemActioned: - case EEventEditingStarted: - case EEventEditingStopped: - case EEventPenDownOnItem: - case EEventItemDraggingActioned: - { - break; - } - - default: - { - break; - }; - }; - } - - -// --------------------------------------------------------- -// CEapPeapUiDialog::HandleDialogPageEventL -// --------------------------------------------------------- -// -void CEapPeapUiDialog::HandleDialogPageEventL( TInt aEventID ) - { - CAknDialog::HandleDialogPageEventL( aEventID ); - if( iExiting ) - { - // Exit requested. - TryExitL( EAknCmdExit ); - } - } - - -// ----------------------------------------------------------------------------- -// CleanupImplArray -// ----------------------------------------------------------------------------- -// -static void CleanupResetAndDestroy( TAny* aAny ) -{ - RImplInfoPtrArray* implArray = - reinterpret_cast( aAny ); - - implArray->ResetAndDestroy(); - implArray->Close(); -} - -// --------------------------------------------------------- -// CEapPeapUiDialog::ConfigureL -// --------------------------------------------------------- -// -void CEapPeapUiDialog::ConfigureL( TBool aQuick ) - { - RImplInfoPtrArray eapArray; - eapArray.Reset(); - - CleanupStack::PushL( TCleanupItem( CleanupResetAndDestroy, &eapArray ) ); - - REComSession::ListImplementationsL( KEapTypeInterfaceUid, - eapArray ); - - TInt itemIndex = iEapTypesListBox->CurrentItemIndex(); - TInt eapIndex( 0 ); - for ( TInt i = 0; i < eapArray.Count(); i++ ) - { - CImplementationInformation* tempInfo = eapArray[i]; - if ( iUiEapTypes->At( itemIndex ).iEapType == - tempInfo->DataType() ) - { - eapIndex = i; - break; - } - } - - CEapType* eapType; - eapType = CEapType::NewL( eapArray[eapIndex]->DataType(), - iIndexType, iIndex ); - - CleanupStack::PopAndDestroy(); // eapArray - - eapType->SetTunnelingType( KEapPeapId ); - CleanupStack::PushL( eapType ); - TInt buttonId = eapType->InvokeUiL(); - CleanupStack::PopAndDestroy( eapType ); - - if ( buttonId == EAknCmdExit || buttonId == EEikCmdExit ) - { - if (aQuick == EFalse) - { - TryExitL( buttonId ); - } - else - { - iExiting = ETrue; - // Don't exit here. Framework command chain will - // cause a KERN-EXEC 3 panic. Handle the exit in - // HandleDialogPageEventL(). - } - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::PreLayoutDynInitL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::PreLayoutDynInitL() - { - // Change title - ChangeTitleL( ETrue ); - - iSettingListBox = static_cast( - ControlOrNull( EPeapSettingsListbox ) ); - iSettingListBox->SetComponentsToInheritVisibility( ETrue ); - - iEapTypesListBox = static_cast( - ControlOrNull( EPeapSettingsEapTypeListbox ) ); - iEapTypesListBox->SetComponentsToInheritVisibility( ETrue ); - - iCipherSuiteListBox = static_cast( - ControlOrNull( EPeapSettingsCipherSuiteListbox ) ); - iCipherSuiteListBox->SetComponentsToInheritVisibility( ETrue ); - - // Get certificates before building the UI. - // Will continue when certificates are received - iCertificates = iConnection->GetCertificateConnection( this ); - User::LeaveIfError( iCertificates->Open() ); - iCertificates->GetCertificates( &iUiUserCertificates, &iUiCACertificates ); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::CompleteReadCertificates -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::CompleteReadCertificates( const TInt aResult ) - { - if ( aResult == KErrNone ) // Certificates are received from core - { - TRAPD( err, CompleteUiConstructionL() ); - if ( err != KErrNone ) - { - TRAP_IGNORE( TryExitL( KErrCancel ) ); - } - } - else - { - TRAP_IGNORE( TryExitL( KErrCancel ) ); - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::CompleteUiConstructionL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::CompleteUiConstructionL() - { - // Initialize setting page - iSettingListBox = static_cast( - ControlOrNull( EPeapSettingsListbox ) ); - iSettingListBox->SetMopParent( this ); - iSettingListBox->CreateScrollBarFrameL( ETrue ); - iSettingListBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - iSettingListBox->SetListBoxObserver( this ); - DrawSettingsListL(); - - // Initialize EAP types page - iEapTypesListBox = static_cast( - ControlOrNull( EPeapSettingsEapTypeListbox ) ); - iEapTypesListBox->SetMopParent( this ); - iEapTypesListBox->CreateScrollBarFrameL( ETrue ); - iEapTypesListBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - iEapTypesListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - iEapTypesListBox->SetListBoxObserver( this ); - - // Following deletes internal array created from resources. - // To prevent memory leak. - MDesCArray* internalArray1 = iEapTypesListBox->Model()->ItemTextArray(); - delete internalArray1; - - // Initialize cipher suites page - iCipherSuiteListBox = static_cast( - ControlOrNull( EPeapSettingsCipherSuiteListbox ) ); - iCipherSuiteListBox->CreateScrollBarFrameL( ETrue ); - iCipherSuiteListBox->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - iCipherSuiteListBox->UpdateScrollBarsL(); - iCipherSuiteListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - iCipherSuiteListBox->SetListBoxObserver( this ); - - //Following deletes internal array created from resources. - // To prevent memory leak. - MDesCArray* internalArray2 = iCipherSuiteListBox->Model()->ItemTextArray(); - delete internalArray2; - - SetEapIconsL(); - DrawEapListL( 0 ); - - SetCipherIconsL(); - DrawCipherSuitesL(); - - iIsUIConstructionCompleted = ETrue; - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::PostLayoutDynInitL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::PostLayoutDynInitL() - { - TUid naviPaneUid; - naviPaneUid.iUid = EEikStatusPaneUidNavi; - - CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane(); - CEikStatusPaneBase::TPaneCapabilities subPane = - statusPane->PaneCapabilities( naviPaneUid ); - if ( subPane.IsPresent()&&subPane.IsAppOwned() ) - { - CAknNavigationControlContainer* naviPane = - static_cast( - statusPane->ControlL( naviPaneUid ) ); - CAknNavigationDecorator* naviDecorator = naviPane->ResourceDecorator(); - if ( naviDecorator ) - { - CAknTabGroup* tabGroup = static_cast( - naviDecorator->DecoratedControl() ); - tabGroup->SetActiveTabById( 0 ); - tabGroup->SetTabFixedWidthL( KTabWidthWithOneTab ); - } - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::ChangeTitleL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::ChangeTitleL( TBool aIsStarted ) - { - TUid titlePaneUid; - titlePaneUid.iUid = EEikStatusPaneUidTitle; - - CEikStatusPane* statusPane = iEikonEnv->AppUiFactory()->StatusPane(); - CEikStatusPaneBase::TPaneCapabilities subPane = - statusPane->PaneCapabilities( titlePaneUid ); - - if ( subPane.IsPresent() && subPane.IsAppOwned() ) - { - CAknTitlePane* titlePane = static_cast( - statusPane->ControlL( titlePaneUid) ); - if ( aIsStarted ) - { - // Store previous application title text - const TDesC* prevText = titlePane->Text(); - iPreviousText = HBufC::NewL( prevText->Length() ); - iPreviousText->Des().Append( *prevText ); - TDesC* titleText = iEikonEnv->AllocReadResourceLC( - R_PEAP_SETTINGS_TITLE ); - titlePane->SetTextL( *titleText ); - CleanupStack::PopAndDestroy( titleText ); - } - else - { - // Set calling application title text back - titlePane->SetTextL( *iPreviousText ); - } - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::OkToExitL -// ----------------------------------------------------------------------------- -// -TBool CEapPeapUiDialog::OkToExitL( TInt aButtonId ) - { - TBool ret( EFalse ); - switch ( aButtonId ) - { - case EEikBidOk: - { - if( iIsUIConstructionCompleted ) - { - TPageIds index = static_cast( ActivePageIndex() ); - if ( index == ESettingsPage ) - { - ShowSettingPageL( EFalse ); - } - else if ( index == EEapTypePage ) - { - ProcessCommandL( EPeapUiCmdConfigure ); - } - } - else - { - #if defined(_DEBUG) || defined(DEBUG) - RDebug::Print(_L("CEapPeapUiDialog::OkToExitL - UI not ready - Ignoring key press.\n") ); - #endif - } - - break; - } - - case EAknSoftkeyOptions: - { - DisplayMenuL(); - break; - } - - case EAknSoftkeyBack: - case EAknCmdExit: - { - if( iIsUIConstructionCompleted ) - { - iDataConnection->Update(); - ChangeTitleL( EFalse ); - ret = ETrue; - } - break; - } - - case EPeapUiCmdChange: - { - TInt pageId = ActivePageId(); - if ( pageId == KEAPPEAPSETTINGSPAGE ) - { - if( iIsUIConstructionCompleted ) - { - ShowSettingPageL( EFalse ); - } - else - { - #if defined(_DEBUG) || defined(DEBUG) - RDebug::Print(_L("CEapPeapUiDialog::ProcessCommandL - UI not ready - Ignoring key press.\n") ); - #endif - } - } - break; - } - case EPeapUiCmdConfigure: - case EPeapUiCmdEnable: - case EPeapUiCmdDisable: - { - ProcessCommandL( aButtonId ); - ret = EFalse; - break; - } - - default: - { - break; - } - } - - if ( ret ) - { - *iButtonId = aButtonId; - } - - return ret; - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::DrawSettingsListL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::DrawSettingsListL() - { - iSettingArray->Array()->ResetAndDestroy(); - TInt ordinal = 0; - TInt activeUserCertificate = CheckActiveUserCertificate(); - TBuf aActiveuserCertificateName = KEmptyString(); - if ( activeUserCertificate != KErrNotFound ) - { - TBuf text; - GetFullCertLabelL( - iUiUserCertificates->At( activeUserCertificate ).iCertEntry, - text ); - aActiveuserCertificateName.Copy( text ); - } - else - { - TDesC* notDefinedText = iEikonEnv->AllocReadResourceLC( - R_PEAP_NOT_DEFINED ); - aActiveuserCertificateName.Copy( *notDefinedText ); - CleanupStack::PopAndDestroy( notDefinedText ); - } - - iSettingArray->AddTextItemL( aActiveuserCertificateName, - EPeapSettingUserCert, - R_PEAP_USER_CERT_STRING, - R_PEAP_USERNAME_PAGE, - NULL, - ordinal++ ); - - TInt activeCaCertificate = CheckActiveCaCertificate(); - TBuf aActiveCaCertificateName = KEmptyString(); - if ( activeCaCertificate != KErrNotFound ) - { - TBuf text; - GetFullCertLabelL( - iUiCACertificates->At( activeCaCertificate ).iCertEntry, - text ); - aActiveCaCertificateName.Copy( text ); - } - else - { - TDesC* notDefinedText = iEikonEnv->AllocReadResourceLC( - R_PEAP_NOT_DEFINED ); - aActiveCaCertificateName.Copy( *notDefinedText ); - CleanupStack::PopAndDestroy( notDefinedText ); - } - - iSettingArray->AddTextItemL( aActiveCaCertificateName, - EPeapSettingCaCert, - R_PEAP_CA_CERT_STRING, - R_PEAP_USERNAME_PAGE, - NULL, - ordinal++ ); - - iSettingArray->AddBinarySettingItemL( R_PEAP_DISPLAY_AUTOUSECONF_PAGE, - R_PEAP_USERNAME_INUSESTRING, - R_PEAP_USERNAME_AUTOUSECONF_TEXTS, - ordinal++, - *iUiData->GetUseManualUsername() ); - - iSettingArray->AddTextItemL( iUiData->GetManualUsername(), - EPeapTabSheetSettingsUsername, - R_PEAP_USERNAME_STRING, - R_PEAP_USERNAME_PAGE, - NULL, - ordinal++ ); - - iSettingArray->AddBinarySettingItemL( R_PEAP_DISPLAY_AUTOUSECONF_PAGE, - R_PEAP_REALM_INUSESTRING, - R_PEAP_REALM_AUTOUSECONF_TEXTS, - ordinal++, - *iUiData->GetUseManualRealm() ); - - iSettingArray->AddTextItemL( iUiData->GetManualRealm(), - EPeapTabSheetSettingsRealm, - R_PEAP_REALM_STRING, - R_PEAP_REALM_PAGE, - NULL, - ordinal++ ); - - iSettingArray->AddBinarySettingItemL( R_PEAP_DISPLAY_AUTOUSECONF_PAGE, - R_PEAP_TLS_PRIVACY_STRING, - R_PEAP_TLS_PRIVACY_AUTOUSECONF_TEXTS, - ordinal++, - *iUiData->GetTlsPrivacy() ); - - - iSettingArray->AddBinarySettingItemL( R_PEAP_ALLOW_VERSION_0, - R_PEAP_ALLOW_PEAPV0, - R_PEAP_ALLOW_VERSION_TEXTS, - ordinal++, - *iUiData->GetAllowVersion0() ); - - iSettingArray->AddBinarySettingItemL( R_PEAP_ALLOW_VERSION_1, - R_PEAP_ALLOW_PEAPV1, - R_PEAP_ALLOW_VERSION_TEXTS, - ordinal++, - *iUiData->GetAllowVersion1() ); - - iSettingArray->AddBinarySettingItemL( R_PEAP_ALLOW_VERSION_2, - R_PEAP_ALLOW_PEAPV2, - R_PEAP_ALLOW_VERSION_TEXTS, - ordinal++, - *iUiData->GetAllowVersion2() ); - - iSettingListBox->Model()->SetItemTextArray( iSettingArray->Array() ); - iSettingListBox->Model()->SetOwnershipType( ELbmDoesNotOwnItemArray ); - iSettingArray->Array()->RecalculateVisibleIndicesL(); - iSettingListBox->HandleItemAdditionL(); - iSettingListBox->UpdateScrollBarsL(); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::DynInitMenuPaneL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::DynInitMenuPaneL( TInt aResourceId, - CEikMenuPane* aMenuPane ) - { - CAknDialog::DynInitMenuPaneL( aResourceId, aMenuPane ); - - if ( aMenuPane && aResourceId == R_PEAP_MENU_PANE ) - { - if ( !FeatureManager::FeatureSupported( KFeatureIdHelp ) ) - { - aMenuPane->DeleteMenuItem( EAknCmdHelp ); - } - - TPageIds index = static_cast( ActivePageIndex() ); - if ( index == ESettingsPage ) - { - aMenuPane->SetItemDimmed( EPeapUiCmdEnable, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdDisable, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdConfigure, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdMoveUp, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdMoveDown, ETrue ); - } - else if ( index == EEapTypePage ) - { - aMenuPane->SetItemDimmed( EPeapUiCmdChange, ETrue ); - - if ( iEapTypeViewArray->Count() > 0 ) - { - TInt currentIndex = iEapTypesListBox->CurrentItemIndex(); - TBool enabled = iUiEapTypes->At( currentIndex ).iIsEnabled; - - // Hide either "Enable" or "Disable", as appropriate. - aMenuPane->SetItemDimmed( EPeapUiCmdEnable, enabled ); - aMenuPane->SetItemDimmed( EPeapUiCmdDisable, !enabled ); - - // Don't display "Configure" for disabled items - aMenuPane->SetItemDimmed( EPeapUiCmdConfigure, !enabled ); - - // Don't display "Raise priority" nor "Lower priority" for - // disabled items - aMenuPane->SetItemDimmed( EPeapUiCmdMoveUp, !enabled ); - aMenuPane->SetItemDimmed( EPeapUiCmdMoveDown, !enabled ); - - if ( enabled ) - { - - if ( currentIndex == 0 ) - { - // Can't go higher than top. - aMenuPane->SetItemDimmed( EPeapUiCmdMoveUp, ETrue ); - } - - if ( currentIndex == iEapTypeViewArray->Count()-1 || - ( currentIndex < iEapTypeViewArray->Count()-1 && - !iUiEapTypes->At( currentIndex + 1 ).iIsEnabled ) ) - { - // Can't go lower than the last enabled item - aMenuPane->SetItemDimmed( EPeapUiCmdMoveDown, ETrue ); - } - - } - - } - else - { - aMenuPane->SetItemDimmed( EPeapUiCmdEnable, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdDisable, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdConfigure, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdMoveUp, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdMoveDown, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdChange, ETrue ); - } - } - else if ( index == ECipherSuitePage ) - { - aMenuPane->SetItemDimmed( EPeapUiCmdConfigure, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdMoveUp, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdMoveDown, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdChange, ETrue ); - - if ( iCipherSuitesViewArray->Count() > 0 ) - { - TInt currIndex = iCipherSuiteListBox->CurrentItemIndex(); - TBool enabled = iUiCipherSuites->At( currIndex ).iIsEnabled; - - // Hide either "Enable" or "Disable", as appropriate. - aMenuPane->SetItemDimmed( EPeapUiCmdEnable, enabled ); - aMenuPane->SetItemDimmed( EPeapUiCmdDisable, !enabled ); - } - else - { - aMenuPane->SetItemDimmed( EPeapUiCmdEnable, ETrue ); - aMenuPane->SetItemDimmed( EPeapUiCmdDisable, ETrue ); - } - } - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::ProcessCommandL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::ProcessCommandL( TInt aCommand ) - { - if ( MenuShowing() ) - { - HideMenu(); - } - - TPageIds pageIndex = static_cast( ActivePageIndex() ); - switch( aCommand ) - { - case EAknCmdExit: - { - TryExitL( aCommand ); - break; - } - - case EAknCmdHelp: - { - HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), - iEikonEnv->EikAppUi()->AppHelpContextL() ); - break; - } - - case EPeapUiCmdChange: - { - if ( pageIndex == ESettingsPage ) - { - if( iIsUIConstructionCompleted ) - { - ShowSettingPageL( ETrue ); - } - else - { - #if defined(_DEBUG) || defined(DEBUG) - RDebug::Print(_L("CEapPeapUiDialog::ProcessCommandL - UI not ready - Ignoring key press.\n") ); - #endif - } - } - break; - } - - case EPeapUiCmdMoveUp: - { - if ( pageIndex == EEapTypePage ) - { - TInt cur = iEapTypesListBox->CurrentItemIndex(); - MoveEapTypeL( cur, cur - 1 ); - } - break; - } - - case EPeapUiCmdMoveDown: - { - if ( pageIndex == EEapTypePage ) - { - TInt cur = iEapTypesListBox->CurrentItemIndex(); - MoveEapTypeL( cur, cur + 1 ); - } - break; - } - - case EPeapUiCmdEnable: - { - if ( pageIndex == ECipherSuitePage ) - { - TInt index = iCipherSuiteListBox->CurrentItemIndex(); - iUiCipherSuites->At( index ).iIsEnabled = ETrue; - iCipherSuites->Update(); - DrawCipherSuitesL(); - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_DISABLE ); - cba.DrawDeferred(); - } - else if ( pageIndex == EEapTypePage ) - { - TInt cur = iEapTypesListBox->CurrentItemIndex(); - iUiEapTypes->At( cur ).iIsEnabled = ETrue; - - iEapTypes->Update(); - - // enabling moves item to the top of the list - MoveEapTypeL( cur, 0 ); - - // load the new CBA from resource - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_CONFIGURE ); - cba.DrawDeferred(); - } - break; - } - - case EPeapUiCmdDisable: - { - if ( pageIndex == ECipherSuitePage ) - { - TInt index = iCipherSuiteListBox->CurrentItemIndex(); - iUiCipherSuites->At( index ).iIsEnabled = EFalse; - iCipherSuites->Update(); - DrawCipherSuitesL(); - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_ENABLE ); - cba.DrawDeferred(); - } - else if ( pageIndex == EEapTypePage ) - { - TInt itemIndex = iEapTypesListBox->CurrentItemIndex(); - - if( GetEnabledEapTypeCount() > KMinEnabledCount ) - { - // disabling moves item just after the last enabled one, - // so find that position - TInt next = itemIndex; - - while ( next < iUiEapTypes->Count() - 1 && - iUiEapTypes->At( next ).iIsEnabled ) - { - ++next; - } - - if ( next > itemIndex && - !iUiEapTypes->At( next ).iIsEnabled ) - { - --next; - } - - - iUiEapTypes->At( itemIndex ).iIsEnabled = EFalse; - - // move item if needed - MoveEapTypeL( itemIndex, next ); - iEapTypes->Update(); - - // Highlight follows movement. - //iEapTypesListBox->SetCurrentItemIndex( next ); - - // load the new CBA from resource - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - cba.SetCommandSetL( - R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_ENABLE ); - - cba.DrawDeferred(); - } - else - { - HBufC* stringLabel; - stringLabel = StringLoader::LoadL( - R_PEAP_INFO_CANNOT_DISABLE_ALL_EAP_PLUGINS, - iEikonEnv ); - CleanupStack::PushL( stringLabel ); - CAknInformationNote* dialog = new ( ELeave ) - CAknInformationNote( ETrue ); - dialog->ExecuteLD( *stringLabel ); - CleanupStack::PopAndDestroy( stringLabel ); - } - } - break; - } - - case EPeapUiCmdConfigure: - { - if ( pageIndex == EEapTypePage ) - { - ConfigureL(EFalse); - } - break; - } - - default: - { - break; - } - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::PageChangedL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::PageChangedL( TInt aPageId ) - { - if ( !iIsUIConstructionCompleted ) - { - return; - } - - if ( aPageId == KEAPPEAPSETTINGSPAGE ) - { - if (iSettingListBox->ScrollBarFrame()) - { - iSettingListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(ETrue); - } - if (iEapTypesListBox->ScrollBarFrame()) - { - iEapTypesListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse); - } - if (iCipherSuiteListBox->ScrollBarFrame()) - { - iCipherSuiteListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse); - } - } - else if ( aPageId == KEAPPEAPEAPPAGE ) - { - if (iSettingListBox->ScrollBarFrame()) - { - iSettingListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse); - } - if (iEapTypesListBox->ScrollBarFrame()) - { - iEapTypesListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(ETrue); - } - if (iCipherSuiteListBox->ScrollBarFrame()) - { - iCipherSuiteListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse); - } - } - else if ( aPageId == KEAPPEAPCIPHERPAGE ) - { - if (iSettingListBox->ScrollBarFrame()) - { - iSettingListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse); - } - if (iEapTypesListBox->ScrollBarFrame()) - { - iEapTypesListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(EFalse); - } - if (iCipherSuiteListBox->ScrollBarFrame()) - { - iCipherSuiteListBox->ScrollBarFrame()->ComponentControl(0)->MakeVisible(ETrue); - } - } - - CEikButtonGroupContainer& cba = ButtonGroupContainer(); - if( aPageId == KEAPPEAPSETTINGSPAGE ) - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_EDIT ); - } - else if( aPageId == KEAPPEAPEAPPAGE ) - { - TInt index = iEapTypesListBox->CurrentItemIndex(); - if ( ( *iUiEapTypes )[index].iIsEnabled ) - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_CONFIGURE ); - } - else - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_ENABLE ); - } - - } - else if( aPageId == KEAPPEAPCIPHERPAGE ) - { - TInt index = iCipherSuiteListBox->CurrentItemIndex(); - if( ( *iUiCipherSuites )[ index ].iIsEnabled ) - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_DISABLE ); - } - else - { - cba.SetCommandSetL( R_PEAP_UI_SOFTKEYS_OPTIONS_BACK_ENABLE ); - } - } - cba.DrawDeferred(); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::ShowSettingPageL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::ShowSettingPageL( TInt aCalledFromMenu ) - { - TInt index = iSettingListBox->CurrentItemIndex(); - if ( index == EUserCertificateItem ) - { - TInt activeUserCertificate = CheckActiveUserCertificate(); - CDesCArrayFlat* tempArray = new( ELeave )CDesCArrayFlat( - KCertificateArrayGranularity ); - CleanupStack::PushL( tempArray ); - - TDesC* noneText = iEikonEnv->AllocReadResourceLC( - R_PEAP_NONE_SELECTION ); - tempArray->InsertL( 0, *noneText ); - CleanupStack::PopAndDestroy( noneText ); - - for ( TInt i = 0; i < iUiUserCertificates->Count(); i++ ) - { - TEapTlsPeapUiCertificate certificate = - iUiUserCertificates->At( i ); - SCertEntry entry = certificate.iCertEntry; - TBuf text; - GetFullCertLabelL( entry, text); - tempArray->InsertL( i+1, text ); - } - - TInt selected( 0 ); - if ( activeUserCertificate == KErrNotFound ) - { - selected = ShowRadioButtonSettingPageL( R_PEAP_USER_CERT_STRING, - tempArray, 0 ); - } - else - { - selected = ShowRadioButtonSettingPageL( R_PEAP_USER_CERT_STRING, - tempArray, - activeUserCertificate+1 ); - //Plus 1 cause we added 'none' selection - } - - CleanupStack::PopAndDestroy( tempArray ); - UserCertificateHouseKeeping( selected ); - iCertificates->Update(); - DrawSettingsListL(); // List must be drawn again at this stage - } - else if ( index == ECaCertificateItem ) - { - TInt activeCaCertificate = CheckActiveCaCertificate(); - - CDesCArrayFlat* tempArray = new( ELeave )CDesCArrayFlat( - KCertificateArrayGranularity ); - CleanupStack::PushL( tempArray); - - TDesC* noneText = iEikonEnv->AllocReadResourceLC( - R_PEAP_NONE_SELECTION ); - tempArray->InsertL( 0, *noneText); - CleanupStack::PopAndDestroy( noneText); - - for ( TInt i = 0; i < iUiCACertificates->Count(); i++ ) - { - TEapTlsPeapUiCertificate certificate = iUiCACertificates->At( i ); - SCertEntry entry = certificate.iCertEntry; - TBuf text; - GetFullCertLabelL( entry, text ); - tempArray->InsertL( i+1, text ); - } - - TInt selected( 0 ); - if ( activeCaCertificate == KErrNotFound ) - { - selected = ShowRadioButtonSettingPageL( R_PEAP_CA_CERT_STRING, - tempArray, 0 ); - } - else - { - selected = ShowRadioButtonSettingPageL( R_PEAP_CA_CERT_STRING, - tempArray, - activeCaCertificate+1 ); - //Plus 1 cause we added 'none' selection - } - CleanupStack::PopAndDestroy( tempArray ); - CaCertificateHouseKeeping( selected ); - iCertificates->Update(); - DrawSettingsListL(); // List must be drawn again at this stage - } - else - { - CAknSettingItem* item = iSettingArray->Array()->At( index ); - item->EditItemL( aCalledFromMenu ); - item->StoreL(); - } - - DrawNow(); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::MoveEapTypeL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::MoveEapTypeL( TInt aOldPos, TInt aNewPos ) - { - TEapTlsPeapUiEapType originalUpper = iUiEapTypes->At( aOldPos ); - iUiEapTypes->Delete( aOldPos ); - iUiEapTypes->InsertL( aNewPos, originalUpper ); - iUiEapTypes->Compress(); // Might not be needed - iEapTypes->Update(); - DrawEapListL( aNewPos ); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::DrawEapListL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::DrawEapListL( TInt aWantedIndex ) - { - iEapTypeViewArray->Reset(); - - RImplInfoPtrArray eapArray; - eapArray.Reset(); - - REComSession::ListImplementationsL( KEapTypeInterfaceUid, eapArray ); - for ( TInt i = 0; i < iUiEapTypes->Count(); i++ ) - { - TBuf tempLine; - - if ( iUiEapTypes->At( i ).iIsEnabled ) - { - _LIT( KNumTab, "%d\t" ); - tempLine.AppendFormat( KNumTab, i+1 ); - } - else - { - _LIT( KTab, "\t" ); - tempLine.Append( KTab ); - } - - for ( TInt index = 0; index < eapArray.Count(); index++ ) - { - TBuf8<100> egyik( eapArray[index]->DataType() ); - TBuf8<100> masik( iUiEapTypes->At( i ).iEapType ); - if ( eapArray[index]->DataType() == iUiEapTypes->At( i ).iEapType ) - { - tempLine.Append( eapArray[ index ]->DisplayName() ); - break; - } - } - if ( iUiEapTypes->At( i ).iIsEnabled ) - { // Add mark icon to indicate that the eap type is enabled - _LIT( KTab0, "\t0" ); - tempLine.Append( KTab0 ); - } - iEapTypeViewArray->InsertL( i, tempLine ); - } - - eapArray.ResetAndDestroy(); - iEapTypesListBox->Model()->SetItemTextArray( iEapTypeViewArray ); - iEapTypesListBox->HandleItemAdditionL(); - iEapTypesListBox->SetCurrentItemIndex( aWantedIndex ); - iEapTypesListBox->DrawDeferred(); - iEapTypesListBox->UpdateScrollBarsL(); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::ShowRadioButtonSettingPageL -// ----------------------------------------------------------------------------- -// -TInt CEapPeapUiDialog::ShowRadioButtonSettingPageL( TInt aTitle, - CDesCArrayFlat* aValues, - TInt aCurrentItem ) - { - // title of the dialog - HBufC* title = iCoeEnv->AllocReadResourceLC( aTitle ); - // We have everything to create dialog - CAknRadioButtonSettingPage* dlg = new( ELeave )CAknRadioButtonSettingPage( - R_RADIO_BUTTON_SETTING_PAGE, - aCurrentItem, - aValues ); - CleanupStack::PushL( dlg ); - dlg->SetSettingTextL( *title ); - CleanupStack::Pop( dlg ); - dlg->ExecuteLD( CAknSettingPage::EUpdateWhenChanged ); - CleanupStack::PopAndDestroy( title ); - // index must be re-turned upside down, because options list is upside down - return aCurrentItem; - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::DrawCipherSuitesL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::DrawCipherSuitesL() - { - iCipherSuitesViewArray->Reset(); - TInt listCount( 0 ); - TBuf temp; - for ( TInt i = 0; i < iUiCipherSuites->Count(); i++ ) - { - temp.Zero(); - _LIT( KTab, "\t" ); - temp.Append( KTab ); - TEapTlsPeapUiCipherSuite suite = iUiCipherSuites->At( i ); - TUint32 suiteId = suite.iCipherSuite; - switch ( suiteId ) - { - case 0x0004: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_RSARC4MD5 ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - case 0x0005: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_RSARC4SHA ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - case 0x000a: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_RSA3DESSHA ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - case 0x0016: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_DHERSA3DESSHA ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - case 0x0013: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_DHEDSS3DESSHA ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - case 0x002F: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_RSAAESSHA ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - case 0x0032: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_DHERSAAESSHA ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - case 0x0033: - { - HBufC* suite = iCoeEnv->AllocReadResourceLC( - R_PEAP_SUITE_DHEDSSAESSHA ); - temp.Append( *suite ); - CleanupStack::PopAndDestroy( suite ); - break; - } - - default: - { - temp.Append( KEmptyString ); - break; - } - } - - if ( iUiCipherSuites->At( i ).iIsEnabled ) - { // Add mark icon to indicate that the suite is enabled - _LIT( KTab0, "\t0" ); - temp.Append( KTab0 ); - } - - iCipherSuitesViewArray->InsertL( listCount, temp ); - listCount++; - } - - iCipherSuiteListBox->Model()->SetItemTextArray( iCipherSuitesViewArray ); - iCipherSuiteListBox->HandleItemAdditionL(); - iCipherSuiteListBox->DrawDeferred(); - iCipherSuiteListBox->UpdateScrollBarsL(); -} - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::CheckActiveUserCertificate -// ----------------------------------------------------------------------------- -// -TInt CEapPeapUiDialog::CheckActiveUserCertificate() - { - for ( TInt i = 0; i < iUiUserCertificates->Count(); i++ ) - { - if ( iUiUserCertificates->At( i ).iIsEnabled ) - { - return i; - } - } - - return KErrNotFound; - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::CheckActiveCaCertificate -// ----------------------------------------------------------------------------- -// -TInt CEapPeapUiDialog::CheckActiveCaCertificate() - { - for ( TInt i = 0; iCount(); i++ ) - { - if ( iUiCACertificates->At( i ).iIsEnabled ) - { - return i; - } - } - - return KErrNotFound; - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::UserCertificateHouseKeeping -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::UserCertificateHouseKeeping( TInt aSelected ) - { - for ( TInt i = 0; i < iUiUserCertificates->Count(); i++ ) - { - iUiUserCertificates->At( i ).iIsEnabled = EFalse; - } - - if ( aSelected != 0 ) // Zero index is none - { - iUiUserCertificates->At( aSelected-1 ).iIsEnabled = ETrue; - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::CaCertificateHouseKeeping -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::CaCertificateHouseKeeping( TInt aSelected ) - { - for ( TInt i = 0; iCount() ; i++ ) - { - iUiCACertificates->At( i ).iIsEnabled = EFalse; - } - - if ( aSelected != 0 ) // Zero index is none - { - iUiCACertificates->At( aSelected-1 ).iIsEnabled = ETrue; - } - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::CreateEapTypeDataBaseL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::CreateEapTypeDataBaseL() - { - RImplInfoPtrArray eapArray; - eapArray.Reset(); - REComSession::ListImplementationsL( KEapTypeInterfaceUid, eapArray ); - TInt allowedInPeapCount( 0 ); - for ( TInt i = 0; i < eapArray.Count(); i++ ) - { - if ( !CEapType::IsDisallowedInsidePEAP( *eapArray[i] ) ) - { - CImplementationInformation* info = eapArray[i]; - TEapTlsPeapUiEapType tempEapType; - tempEapType.iEapType = info->DataType(); - - // MNOL-6RNHEX - // Only EAP-SIM and EAP-AKA should be enabled, in that order - - // BINARY RESOURCE DATA - - // [FE] [00 00 00] [TEapType_bigendian] - _LIT8( KExpEapFirstQuad, "\xFE\0\0\0" ); - TPtrC8 firstQuad( tempEapType.iEapType.Ptr(), 4 ); - // TUint32 dataType = BigEndian::Get32( tempEapType.iEapType.Ptr()+4 ); - - TUint32 dataType = ( tempEapType.iEapType[4] << 24 ) | - ( tempEapType.iEapType[5] << 16 ) | - ( tempEapType.iEapType[6] << 8 ) | - tempEapType.iEapType[7]; - - if ( !firstQuad.Compare( KExpEapFirstQuad ) && - ( dataType == EAPSettings::EEapSim || - dataType == EAPSettings::EEapAka ) ) - { - tempEapType.iIsEnabled = ETrue; - iUiEapTypes->InsertL( KFirstElement, tempEapType ); - } - else - { - tempEapType.iIsEnabled = EFalse; - iUiEapTypes->InsertL( allowedInPeapCount, tempEapType ); - } - - allowedInPeapCount++; - } - } - - __ASSERT_DEBUG( iUiEapTypes->Count() >= 2, User::Panic( _L("EAP-SIM/AKA missing"), 1) ); - - // Check if EAP-SIM and EAP-AKA are in correct order - - // BINARY RESOURCE DATA - - const TDesC8& firstEap = iUiEapTypes->At( KFirstElement ).iEapType; - const TDesC8& secondEap = iUiEapTypes->At( KSecondElement ).iEapType; - - TUint32 dataTypeFirst = ( firstEap[4] << 24 ) | - ( firstEap[5] << 16 ) | - ( firstEap[6] << 8 ) | - firstEap[7]; - TUint32 dataTypeSecond = ( secondEap[4] << 24 ) | - ( secondEap[5] << 16 ) | - ( secondEap[6] << 8 ) | - secondEap[7]; - - // If not, switch them - if ( dataTypeFirst == EAPSettings::EEapAka && - dataTypeSecond == EAPSettings::EEapSim ) - { - TEapTlsPeapUiEapType tempEapType = iUiEapTypes->At( KFirstElement ); - iUiEapTypes->Delete( KFirstElement ); - iUiEapTypes->InsertL( KSecondElement, tempEapType ); - } - - iEapTypes->Update(); - eapArray.ResetAndDestroy(); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::SetCipherIconsL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::SetCipherIconsL() - { - CArrayPtr< CGulIcon >* icons = new( ELeave ) CAknIconArray( 1 ); - CleanupStack::PushL( icons ); - - MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance(); - -/* icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, - KAknsIIDQgnIndiMarkedAdd, - AknIconUtils::AvkonIconFileName(), - EMbmAvkonQgn_indi_marked_add, - EMbmAvkonQgn_indi_marked_add_mask ) ); -*/ - - CGulIcon* icon = CGulIcon::NewLC(); - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - AknsUtils::CreateColorIconL( skinInstance, - KAknsIIDQgnIndiMarkedAdd, - KAknsIIDQsnIconColors, - EAknsCIQsnIconColorsCG13, - bitmap, - mask, - AknIconUtils::AvkonIconFileName(), - EMbmAvkonQgn_indi_marked_add, - EMbmAvkonQgn_indi_marked_add_mask, - KRgbBlack ); - icon->SetBitmap( bitmap ); - icon->SetMask( mask ); - icons->AppendL( icon ); - - CleanupStack::Pop( icon ); - CleanupStack::Pop( icons ); - - iCipherSuiteListBox->ItemDrawer()->ColumnData()->SetIconArray( icons ); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::SetEapIconsL -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::SetEapIconsL() - { - CArrayPtr< CGulIcon >* icons = new( ELeave ) CAknIconArray( 1 ); - CleanupStack::PushL( icons ); - - MAknsSkinInstance* skinInstance = AknsUtils::SkinInstance(); - -/* icons->AppendL( AknsUtils::CreateGulIconL( skinInstance, - KAknsIIDQgnIndiMarkedAdd, - AknIconUtils::AvkonIconFileName(), - EMbmAvkonQgn_indi_marked_add, - EMbmAvkonQgn_indi_marked_add_mask ) ); -*/ - - CGulIcon* icon = CGulIcon::NewLC(); - CFbsBitmap* bitmap = NULL; - CFbsBitmap* mask = NULL; - AknsUtils::CreateColorIconL( skinInstance, - KAknsIIDQgnIndiMarkedAdd, - KAknsIIDQsnIconColors, - EAknsCIQsnIconColorsCG13, - bitmap, - mask, - AknIconUtils::AvkonIconFileName(), - EMbmAvkonQgn_indi_marked_add, - EMbmAvkonQgn_indi_marked_add_mask, - KRgbBlack ); - icon->SetBitmap( bitmap ); - icon->SetMask( mask ); - icons->AppendL( icon ); - - CleanupStack::Pop( icon ); - CleanupStack::Pop( icons ); - - iEapTypesListBox->ItemDrawer()->ColumnData()->SetIconArray( icons ); - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::GetEnabledEapTypeCount -// ----------------------------------------------------------------------------- -// -TUint CEapPeapUiDialog::GetEnabledEapTypeCount() - { - TUint itemCount( 0 ); - for( TInt i( 0 ); i < iUiEapTypes->Count(); ++i ) - { - if( iUiEapTypes->At( i ).iIsEnabled ) - { - ++itemCount; - } - } - return itemCount; - } - - -// ----------------------------------------------------------------------------- -// CEapPeapUiDialog::GetHelpContext -// ----------------------------------------------------------------------------- -// -void CEapPeapUiDialog::GetHelpContext(TCoeHelpContext& aContext) const - { - aContext.iMajor = KHelpUidPlugin; - TPageIds index = static_cast< TPageIds >( ActivePageIndex() ); - switch ( index ) - { - case EEapTypePage: - { - aContext.iContext = KSET_HLP_WLAN_EAP_PEAP_TYPES; - break; - } - - case ECipherSuitePage: - { - aContext.iContext = KSET_HLP_WLAN_EAP_PEAP_SUITES; - break; - } - - default: - { - aContext.iContext = KSET_HLP_WLAN_EAP_PEAP_SETT; - break; - } - } - } - - - -void CEapPeapUiDialog::GetFullCertLabelL( const SCertEntry& aCert, - TDes& aFullLabel ) - { - TInt length = 0; - - // For label. - length += aCert.iLabel.Length(); - - // For separator between label and primary name. - length += KNameSeparator.iTypeLength; - - // For primary name. - length += aCert.iPrimaryName.Length(); - - if ( !( aCert.iLabel.Length() ) ) - { - // For secondary name. - length += aCert.iSecondaryName.Length(); - } - - if( length > aFullLabel.MaxLength() ) - { -#if defined(_DEBUG) || defined(DEBUG) - RDebug::Print(_L("CEapTtlsUiDialog::GetFullCertLabel - ERROR! Length Mismatch in Certificate's full name\n") ); -#endif - } - - HBufC* label = HBufC::NewL( length ); - label->Des().Append( aCert.iLabel ); - - label->Des().Append( KNameSeparator ); - label->Des().Append( aCert.iPrimaryName ); - - if ( !( aCert.iLabel.Length() ) ) - { - // Secondary name, only if no label. Certificate manager does the same way. - label->Des().Append( aCert.iSecondaryName ); - } - - aFullLabel.Copy( label->Des().Left( aFullLabel.MaxLength() ) ); - - delete label; - label = NULL; - } - - -// End of File