diff -r b852595f5cbe -r 63be7eb3fc78 wlanutilities/wlansniffer/mainapplication/src/wsfdetailsviewmodel.cpp --- a/wlanutilities/wlansniffer/mainapplication/src/wsfdetailsviewmodel.cpp Thu Aug 19 10:59:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,721 +0,0 @@ -/* -* Copyright (c) 2007-2008 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: Implementation of CWsfDetailsViewModel. -* -*/ - -// EXTERNAL INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -// INTERNAL INCLUDES -#include "wsfwlaninfo.h" -#include "wsfdetailsviewmodel.h" -#include "wsfwlaninfoarray.h" -#include "wsflogger.h" - -// LOCAL DEFINITIONS -using namespace CMManager; - -#ifdef _DEBUG - _LIT( KDetailsViewModelPanic, "CWsfDetailsViewModel" ); - #define _ASSERTD( cond ) __ASSERT_DEBUG( (cond), \ - User::Panic( KDetailsViewModelPanic, __LINE__) ) -#else - #define _ASSERTD( cond ) {} -#endif //_DEBUG - -// the size of the Details Listbox's array -const TInt KWlanInfoGranularity = 8; -// the size of the numbers in the NaviPane -const TInt KNumberLegth = 5; -// Listbox elements format string -_LIT( KListItemFormat, "%S\t%S" ); -// NaviPane elements format string -_LIT( KPaneFormater, "%i/%i" ); - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::CWsfDetailsViewModel() -// --------------------------------------------------------------------------- -// -CWsfDetailsViewModel::CWsfDetailsViewModel():iCoeEnv( CCoeEnv::Static() ) - { - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::ConstructL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::ConstructL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::ConstructL" ); - iFormattedWlanInfo = new (ELeave) CDesCArrayFlat( KWlanInfoGranularity ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::NewL() -// --------------------------------------------------------------------------- -// -EXPORT_C CWsfDetailsViewModel* CWsfDetailsViewModel::NewL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::NewL" ); - CWsfDetailsViewModel* self = CWsfDetailsViewModel::NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::NewLC() -// --------------------------------------------------------------------------- -// -EXPORT_C CWsfDetailsViewModel* CWsfDetailsViewModel::NewLC() - { - LOG_ENTERFN( "CWsfDetailsViewModel::NewLC" ); - CWsfDetailsViewModel* self = new( ELeave ) CWsfDetailsViewModel; - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::~CWsfDetailsViewModel() -// --------------------------------------------------------------------------- -// -CWsfDetailsViewModel::~CWsfDetailsViewModel() - { - LOG_ENTERFN( "CWsfDetailsViewModel::~CWsfDetailsViewModel" ); - delete iFormattedWlanInfo; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatWlanInfoL() -// --------------------------------------------------------------------------- -// -CDesCArrayFlat* CWsfDetailsViewModel::FormatWlanInfoL( - TWsfWlanInfo* aWlanInfo, - CWsfWlanInfoArray* aWlanArray ) - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatWlanInfoL" ); - _ASSERTD( aWlanArray ); - - for( TInt i = 0; i < iFormattedWlanInfo->MdcaCount(); i++) - { - TPtrC temp = iFormattedWlanInfo->MdcaPoint( i ); - TBuf<100> tempElement = temp; - LOG_WRITEF( "(1)iFormattedWlanInfo: %S", &tempElement ); - } - - iWlanArray = aWlanArray; - iFormattedWlanInfo->Reset(); - - TInt visibleWlans = VisibleWlans( *iWlanArray ); - if ( aWlanInfo && visibleWlans ) - { - iWlanInfo = *aWlanInfo; - TWsfWlanInfo* temp = iWlanArray->Match( aWlanInfo->iSsid, - visibleWlans ); - if ( temp ) - { - iIndex = iWlanArray->GetArrayIndex( temp ); - } - else - { - iIndex = iWlanArray->GetArrayIndex( &iWlanInfo ); - } - - // create array of not-connected WLAN data - FormatAndAppenWlanIapNameL(); - FormatAndAppenWlanSsidL(); - FormatAndAppenSingnalL(); - FormatAndAppenModeL(); - FormatAndAppenSecurityL(); - FormatAndAppenCoverageL(); - FormatAndAppenSpeedL(); - } - else if ( !aWlanInfo )// Current Wlan info has no signal - { - iWlanInfo.iStrengthLevel = EWlanSignalUnavailable; - FormatAndAppenWlanIapNameL(); - FormatAndAppenWlanSsidL(); - FormatAndAppenSingnalL(); - } - - for( TInt i = 0; i < iFormattedWlanInfo->MdcaCount(); i++) - { - TPtrC temp = iFormattedWlanInfo->MdcaPoint( i ); - TBuf<100> tempElement = temp; - LOG_WRITEF( "(2)iFormattedWlanInfo: %S", &tempElement ); - } - - return iFormattedWlanInfo; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatNextWlanInfoL() -// --------------------------------------------------------------------------- -// - -CDesCArrayFlat* CWsfDetailsViewModel::FormatNextWlanInfoL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatNextWlanInfoL" ); - _ASSERTD( iWlanArray ); - - TInt visibleWlans = VisibleWlans( *iWlanArray ); - - if( iIndex < visibleWlans - 1 ) - { - iFormattedWlanInfo->Reset(); - iIndex++; - - if( iIndex >= visibleWlans - 1 ) - { - // Set the index to point to the last visible in the array. - iIndex = visibleWlans - 1; - } - else if ( iWlanInfo.SignalStrength() == ENoSignal ) - { - iIndex = 0; - } - - // (Array bounds check is done in the first if sentence.) - iWlanInfo = *(iWlanArray->At( iIndex ) ); - FormatAndAppenWlanIapNameL(); - FormatAndAppenWlanSsidL(); - FormatAndAppenSingnalL(); - FormatAndAppenModeL(); - FormatAndAppenSecurityL(); - FormatAndAppenCoverageL(); - FormatAndAppenSpeedL(); - } - - return iFormattedWlanInfo; - } - - - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatPreviousWlanInfoL() -// --------------------------------------------------------------------------- -// - -CDesCArrayFlat* CWsfDetailsViewModel::FormatPreviousWlanInfoL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatPreviousWlanInfoL" ); - _ASSERTD( iWlanArray ); - - if( VisibleWlans( *iWlanArray ) ) - { - iFormattedWlanInfo->Reset(); - iIndex--; - - if ( iIndex < 0 || iWlanInfo.SignalStrength() == ENoSignal ) - { - iIndex = 0; - } - - // Just in case the iIndex would somehow point out of iWlanArray... - if( iIndex >= (TInt)iWlanArray->Count() ) - { - iIndex = 0; - } - iWlanInfo = *(iWlanArray->At( iIndex ) ); - FormatAndAppenWlanIapNameL(); - FormatAndAppenWlanSsidL(); - FormatAndAppenSingnalL(); - FormatAndAppenModeL(); - FormatAndAppenSecurityL(); - FormatAndAppenCoverageL(); - FormatAndAppenSpeedL(); - } - return iFormattedWlanInfo; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatPaneTextLC() -// --------------------------------------------------------------------------- -// -HBufC* CWsfDetailsViewModel::FormatPaneTextLC() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatPaneTextLC" ); - - HBufC* paneText = NULL; - - if ( iWlanInfo.SignalStrength() == ENoSignal ) - { - paneText = KNullDesC().AllocLC(); - } - else - { - TInt visibleWlans = VisibleWlans( *iWlanArray ); - if( visibleWlans ) - { - paneText = HBufC::NewLC( KPaneFormater().Length() + - KNumberLegth + - KNumberLegth ); - - TPtr paneTextPrt = paneText->Des(); - - // Format string ( KListItemFormat = %i/%i ) - paneTextPrt.Format( KPaneFormater, - iIndex + 1, - visibleWlans ); - } - else - { - paneText = KNullDesC().AllocLC(); - } - } - - return paneText; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatLeftScrollButton() -// --------------------------------------------------------------------------- -// -TBool CWsfDetailsViewModel::FormatLeftScrollButton() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatLeftScrollButton" ); - TBool leftButton( EFalse ); - - if ( iIndex == 0 ) - { - leftButton = ETrue; - } - - return leftButton; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatRightScrollButton() -// --------------------------------------------------------------------------- -// -TBool CWsfDetailsViewModel::FormatRightScrollButton() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatRightScrollButton" ); - TBool rightButton( EFalse ); - TInt count = iWlanArray->Count(); - - if ( iIndex + 1 >= count ) - { - rightButton = ETrue; - } - - return rightButton; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::GetWlanDetails() -// --------------------------------------------------------------------------- -// -CDesCArrayFlat* CWsfDetailsViewModel::GetWlanDetails() - { - return iFormattedWlanInfo; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::WlanSsid() -// --------------------------------------------------------------------------- -// -const TDesC8& CWsfDetailsViewModel::WlanSsid() const - { - return iWlanInfo.iSsid; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatListBoxItemLC -// --------------------------------------------------------------------------- -// -HBufC* CWsfDetailsViewModel::FormatListBoxItemLC( - const TUint aResourceId, - const TDesC& aValueText ) const - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatListBoxItemLC" ); - // hold the column name on list item - HBufC* columnName = NULL; - - if ( aResourceId ) - { - columnName = StringLoader::LoadLC( aResourceId ); - } - else - { - columnName = KNullDesC().AllocLC(); - } - - - // Holds the list box item - HBufC* listBoxItem = HBufC::NewL( KListItemFormat().Length()+ - columnName->Length() + - aValueText.Length() ); - - // For formating needs - TPtr listBoxItemPrt = listBoxItem->Des(); - - // Format string ( KListItemFormat = %S\t%S ) - listBoxItemPrt.Format( KListItemFormat, columnName, &aValueText ); - CleanupStack::PopAndDestroy( columnName ); - CleanupStack::PushL( listBoxItem ); - return listBoxItem; - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatAndAppenWlanIapNameL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::FormatAndAppenWlanIapNameL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenWlanIapNameL" ); - if ( iWlanInfo.iNetworkName.Length() ) - { - HBufC* wlanIapName = iWlanInfo.GetIapNameAsUnicodeLC(); - HBufC* listBoxItem = FormatListBoxItemLC( - R_QTN_CMON_HEADING_CONN_NAME, - *wlanIapName ); - - iFormattedWlanInfo->AppendL( *listBoxItem ); - CleanupStack::PopAndDestroy( listBoxItem ); - CleanupStack::PopAndDestroy( wlanIapName ); - } - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatAndAppenWlanSsidL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::FormatAndAppenWlanSsidL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenWlanSsidL" ); - HBufC* wlanSsid = iWlanInfo.GetSsidAsUnicodeLC(); - HBufC* listBoxItem = FormatListBoxItemLC( - R_QTN_SNIFFER_HEADING_WLAN_NETWORK_NAME, - *wlanSsid ); - - iFormattedWlanInfo->AppendL( *listBoxItem ); - CleanupStack::PopAndDestroy( listBoxItem ); - CleanupStack::PopAndDestroy( wlanSsid ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatAndAppenSingnalL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::FormatAndAppenSingnalL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenSingnalL" ); - HBufC* singnalStrength = FormatSingnalStrenghtLC(); - HBufC* listBoxItem = FormatListBoxItemLC( - R_QTN_SNIFFER_HEADING_WLAN_SIGNAL_STRENGTH, - *singnalStrength ); - - iFormattedWlanInfo->AppendL( *listBoxItem ); - CleanupStack::PopAndDestroy( listBoxItem ); - CleanupStack::PopAndDestroy( singnalStrength ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatAndAppenModeL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::FormatAndAppenModeL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenModeL" ); - HBufC* mode = FormatModeLC(); - HBufC* listBoxItem = FormatListBoxItemLC( - R_QTN_SNIFFER_HEADING_WLAN_NETWORK_MODE, - *mode ); - - iFormattedWlanInfo->AppendL( *listBoxItem ); - CleanupStack::PopAndDestroy( listBoxItem ); - CleanupStack::PopAndDestroy( mode ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatAndAppenSecurityL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::FormatAndAppenSecurityL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenSecurityL" ); - HBufC* security = FormatSecurityLC(); - HBufC* listBoxItem = FormatListBoxItemLC( - R_QTN_SNIFFER_HEADING_WLAN_SECURITY_MODE, - *security ); - - iFormattedWlanInfo->AppendL( *listBoxItem ); - CleanupStack::PopAndDestroy( listBoxItem ); - CleanupStack::PopAndDestroy( security ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatAndAppenCoverageL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::FormatAndAppenCoverageL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenCoverageL" ); - HBufC* coverage = FormatCoverageLC(); - HBufC* listBoxItem = FormatListBoxItemLC( - R_QTN_SNIFFER_HEADING_WLAN_NW_AP_AMOUNT, - *coverage ); - - iFormattedWlanInfo->AppendL( *listBoxItem ); - CleanupStack::PopAndDestroy( listBoxItem ); - CleanupStack::PopAndDestroy( coverage ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatAndAppenSpeedL() -// --------------------------------------------------------------------------- -// -void CWsfDetailsViewModel::FormatAndAppenSpeedL() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatAndAppenSpeedL" ); - HBufC* speed = FormatTechnologyLC(); - HBufC* listBoxItem = FormatListBoxItemLC( - R_QTN_SNIFFER_HEADING_WLAN_NW_MAX_RATE, - *speed ); - - iFormattedWlanInfo->AppendL( *listBoxItem ); - CleanupStack::PopAndDestroy( listBoxItem ); - CleanupStack::PopAndDestroy( speed ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatSingnalStrenghtLC() -// --------------------------------------------------------------------------- -// -HBufC* CWsfDetailsViewModel::FormatSingnalStrenghtLC() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatSingnalStrenghtLC" ); - // Holds the showed signal strenth string - HBufC* singnalStrengthString = NULL; - - // Get string - switch( iWlanInfo.SignalStrength() ) - { - case ENoSignal: - { - singnalStrengthString = StringLoader::LoadLC( - R_QTN_SNIFFER_WLAN_SIGNAL_STRENGTH_NO_SIGNAL, iCoeEnv ); - break; - } - case EPoor: - { - singnalStrengthString = StringLoader::LoadLC ( - R_QTN_SNIFFER_WLAN_SIGNAL_STRENGTH_LOW, - iWlanInfo.SignalStrengthPercentage(), - iCoeEnv ); - break; - } - case EAverage: - { - singnalStrengthString = StringLoader::LoadLC ( - R_QTN_SNIFFER_WLAN_SIGNAL_STRENGTH_MEDIUM, - iWlanInfo.SignalStrengthPercentage(), - iCoeEnv ); - break; - } - case EExcelent: - { - singnalStrengthString = StringLoader::LoadLC ( - R_QTN_SNIFFER_WLAN_SIGNAL_STRENGTH_STRONG, - iWlanInfo.SignalStrengthPercentage(), - iCoeEnv ); - break; - } - default: - { - return KNullDesC().AllocLC(); - } - - } - return singnalStrengthString; - } - -// --------------------------------------------------------- -// CWsfDetailsViewModel::FormatModeLC -// --------------------------------------------------------- -// -HBufC* CWsfDetailsViewModel::FormatModeLC() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatModeLC" ); - TInt resourceId(0); - - switch( iWlanInfo.iNetMode ) - { - case EAdhoc: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_NEWTWORK_MODE_ADHOC; - break; - } - - case EInfra: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_NEWTWORK_MODE_INFRA; - break; - } - default: - { - return KNullDesC().AllocLC(); - } - - } - - return StringLoader::LoadLC( resourceId ); - } - -// --------------------------------------------------------- -// CWsfDetailsViewModel::FormatSecurityLC -// --------------------------------------------------------- -// -HBufC* CWsfDetailsViewModel::FormatSecurityLC() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatSecurityLC" ); - TInt resourceId(0); - - switch( iWlanInfo.iSecurityMode ) - { - - case EWlanSecModeOpen: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_SECURITY_MODE_OPEN; - break; - } - case EWlanSecModeWep: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_SECURITY_MODE_WEP; - break; - } - case EWlanSecMode802_1x: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_SECURITY_MODE_802_1X; - break; - } - case EWlanSecModeWpa: - case EWlanSecModeWpa2: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_SECURITY_MODE_WPA; - break; - } - case EWlanSecModeWAPI: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_SECURITY_MODE_WAPI; - break; - } - default: - { - return KNullDesC().AllocLC(); - } - } - - return StringLoader::LoadLC( resourceId ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::FormatCoverageLC -// --------------------------------------------------------------------------- -// -HBufC* CWsfDetailsViewModel::FormatCoverageLC() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatCoverageLC" ); - if ( iWlanInfo.iCoverage == 1) - { - return StringLoader::LoadLC( - R_QTN_SNIFFER_WLAN_AP_AMOUNT_IN_RANGE, iCoeEnv ); - } - else - { - return StringLoader::LoadLC( - R_QTN_SNIFFER_WLAN_AP_AMOUNT_IN_RANGE_MANY, - iWlanInfo.iCoverage, iCoeEnv ); - } - } - -// --------------------------------------------------------- -// CWsfDetailsViewModel::FormatTechnologyLC -// --------------------------------------------------------- -// -HBufC* CWsfDetailsViewModel::FormatTechnologyLC() - { - LOG_ENTERFN( "CWsfDetailsViewModel::FormatTechnologyLC" ); - TInt resourceId( 0 ); - - switch( iWlanInfo.iTransferRate ) - { - - case 1: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11B; - break; - } - case 2: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11G; - break; - } - case 4: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11BG; - break; - } - case 8: - { - resourceId = R_QTN_SNIFFER_WLAN_SETT_TECHNOLOGY_802_11N; - break; - } - default: - { - return KNullDesC().AllocLC(); - } - } - - return StringLoader::LoadLC( resourceId ); - } - -// --------------------------------------------------------------------------- -// CWsfDetailsViewModel::VisibleWlans -// --------------------------------------------------------------------------- -// -TInt CWsfDetailsViewModel::VisibleWlans( CWsfWlanInfoArray& aArray ) - { - LOG_ENTERFN( "CWsfDetailsViewModel::VisibleWlans" ); - TUint i = 0; - TWsfWlanInfo* wlanInfo; - LOG_WRITEF( "Number of Wlans: %d", aArray.Count() ); - // The hidden WLAN should be in the end of the aArray. - while ( i < aArray.Count() ) - { - wlanInfo = aArray[i]; - if ( wlanInfo->Hidden() && !wlanInfo->Known() ) - { - break; // Hidden was found. Break to exit the while-loop. - } - ++i; - } - - LOG_WRITEF( "VisibleWlans: %d", i ); - return i; - } - -// END OF FILE -