wlanutilities/wlansniffer/wlaninfosorting/src/wsfwlaninfosortingblacklist.cpp
branchRCL_3
changeset 24 63be7eb3fc78
parent 23 b852595f5cbe
child 25 f28ada11abbf
--- a/wlanutilities/wlansniffer/wlaninfosorting/src/wsfwlaninfosortingblacklist.cpp	Thu Aug 19 10:59:40 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,451 +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 CWsfWlanInfoSortingBlackList
-*
-*/
-
-
-
-//  EXTERNAL INCLUDES
-#include <StringLoader.h>
-#include <aknselectionlist.h>
-#include <aknnotewrappers.h>
-#include <utf.h>
-
-//  CLASS HEADER
-#include "wsfwlaninfosortingblacklist.h"
-
-// INTERNAL INCLUDES
-#include <wsfwlaninfosorting.rsg>
-#include "wsfwlaninfoarray.h"
-#include "wsfwlanssidselectiondlg2.h"
-#include "wsflogger.h"
-
-
-/**
-* SSID array granularity
-*/
-static const TInt KIntSsidArrayGranularity = 3;
-
-/**
-* SSID blacklist table name in DB
-*/
-_LIT( KBlackListTableName,"WIZARD_BLACKLIST");
-
-/**
-* SSID column name in blacklist table
-*/
-_LIT( KBlackListTableIdColumnName,"WIZARD_BLACKLIST_SSID");  
-
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::NewLC
-// ----------------------------------------------------------------------------
-//
-CWsfWlanInfoSortingBlackList* CWsfWlanInfoSortingBlackList::NewLC( 
-                                                  RDbNamedDatabase& aDatabase )
-	{
-	CWsfWlanInfoSortingBlackList* thisPtr = 
-	                    new (ELeave) CWsfWlanInfoSortingBlackList( aDatabase );
-	CleanupStack::PushL( thisPtr );
-	thisPtr->ConstructL();
-	return thisPtr;
-	}
-	
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::NewL
-// ----------------------------------------------------------------------------
-//
-CWsfWlanInfoSortingBlackList* CWsfWlanInfoSortingBlackList::NewL( 
-                                                  RDbNamedDatabase& aDatabase )
-	{
-	CWsfWlanInfoSortingBlackList* thisPtr = NewLC( aDatabase );
-	CleanupStack::Pop( thisPtr );
-	return thisPtr;
-	}
-	
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::CWsfWlanInfoSortingBlackList
-// ----------------------------------------------------------------------------
-//
-CWsfWlanInfoSortingBlackList::CWsfWlanInfoSortingBlackList( 
-                                                 RDbNamedDatabase& aDatabase ):
-	iDefsDb( &aDatabase )
-	{
-	}
-	
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::~CWsfWlanInfoSortingBlackList
-// ----------------------------------------------------------------------------
-//
-CWsfWlanInfoSortingBlackList::~CWsfWlanInfoSortingBlackList()
-	{
-	// free the blacklist entries...
-	if ( iBlackListSsids )
-		{
-		iBlackListSsids->Reset();
-		}
-	delete iBlackListSsids;
-	
-	iBlackListSsidTable.Close();
-	}
-	
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::ConstructL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoSortingBlackList::ConstructL()
-	{
-	CheckTableL();
-	iBlackListSsids = new (ELeave) CDesC8ArrayFlat( KIntSsidArrayGranularity );
-	}
-	
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::BlackListItemCount
-// ----------------------------------------------------------------------------
-//
-TInt CWsfWlanInfoSortingBlackList::BlackListItemCount() const
-    {
-    return iBlackListSsids->Count();
-    }
-
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::Compare
-// ----------------------------------------------------------------------------
-//
-TInt CWsfWlanInfoSortingBlackList::Compare( const TWsfWlanInfo& /*aInfoLeft*/, 
-                                            const TWsfWlanInfo& /*aInfoRight*/ )
-	{
-	return 0;
-	}
-	
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::SetupOnRuleMatch
-// ----------------------------------------------------------------------------
-//
-TBool CWsfWlanInfoSortingBlackList::SetupOnRuleMatch( TWsfWlanInfo& aInfoLeft )
-	{
-	// look through the ssid array - and look for a match
-	TInt rulePosition( 0 );
-	
-	if ( aInfoLeft.BlackListEntry() )
-		{
-		return ETrue;
-		}
-	
-	if ( iBlackListSsids->FindIsq( aInfoLeft.iSsid, rulePosition ) == 0 )
-		{
-		// the rule matches....
-		aInfoLeft.SetBlackListEntry( ETrue );
-		return ETrue;
-		}
-		
-	return EFalse;
-	}
-	
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::MarkMatchedFilterL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoSortingBlackList::MarkMatchedFilterL( 
-                                                   TWsfWlanInfo& aFilterEntry )
-	{
-	aFilterEntry.SetBlackListEntry( ETrue );
-	}
-	
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::EditFilterDefsL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoSortingBlackList::EditFilterDefsL( 
-                                                CWsfWlanInfoArray& aInfoArray )
-	{
-	LOG_ENTERFN( "CWsfWlanInfoSortingBlackList::EditFilterDefsL" );
-	
-	// ok - lets map aInfoArray contents and iBlackListSsids and build our selves 
-	// a list of blacklist entries and current non sorted entries...
-
-	// first loop through the aInfoArray and ...
-
-	// make 16 bit copy of the ssid array...
-	TInt arrayItemCount( iBlackListSsids->Count() + aInfoArray.Count() );
-	if ( !arrayItemCount ) 
-		{
-		// there's nothing to edit 
-		// just return before showing edit dialog
-		return;
-		}
-	
-	LOG_WRITE( "there are items to show" );
-	CDesCArrayFlat *arrayOfItems = 
-	                             new (ELeave) CDesCArrayFlat( arrayItemCount );
-	CleanupStack::PushL( arrayOfItems );
-
-
-	// go through the ssid's in aInfoArray and append them to the array
-	TInt wlanArrayCount( aInfoArray.Count() );
-	TWsfWlanInfo* wlanInfo( NULL );
-	TWsfWlanInfo* connectedWlan( NULL );
-	for ( TInt loopCounter( 0 ); loopCounter < wlanArrayCount; ++loopCounter )
-		{
-		wlanInfo = aInfoArray.At( loopCounter );
-
-//      formerly (custfav or hidden -> does not appear in the list):
-//		if ( wlanInfo->BrandId() || wlanInfo->Hidden() )
-//      instead now (connected -> does not appear in the list):
-		if ( wlanInfo->Connected() )
-			{
-			connectedWlan = wlanInfo;
-			continue;
-			}
-		HBufC* ssid = wlanInfo->GetSsidAsUnicodeLC();
-		arrayOfItems->AppendL( *ssid );
-		CleanupStack::PopAndDestroy( ssid );
-		}
-
-	// simple alphabetical sort
-	arrayOfItems->Sort();
-
-	LOG_WRITE( "items added, list sorted" );
-
-
-    // now insert the already selected items onto the top
-	CArrayFix<TInt> *selectedItems = new (ELeave) CArrayFixFlat<TInt>( 
-	                                                          arrayItemCount ); 
- 	CleanupStack::PushL( selectedItems );	
-
-    HBufC* connectedSsid( NULL );
-    if ( connectedWlan )
-        {
-        connectedSsid = connectedWlan->GetSsidAsUnicodeLC();
-        }
-
-    TBool connectedBlacklisted( EFalse );
-
-	TInt blackListLength( iBlackListSsids->Count() );
-	TInt index( 0 );
-	for ( TInt loopCounter( 0 ); loopCounter < blackListLength; ++loopCounter )
-		{
-    	HBufC* ssidUnicode = TWsfWlanInfo::GetSsidAsUnicodeLC(
-    	                           iBlackListSsids->MdcaPoint( loopCounter ) );
-	
-		if ( !connectedWlan || ssidUnicode->Compare( *connectedSsid ) )
-		    {
-		    // only add the ssid to the list if it is not connected right now
-    		arrayOfItems->InsertL( index, *ssidUnicode );
-    		// these are already selected
-    		selectedItems->AppendL( index );
-    		++index;
-		    }
-		else if ( connectedWlan && !ssidUnicode->Compare( *connectedSsid ) )
-	        {
-	        connectedBlacklisted = ETrue;
-	        }
-
-		    
-		CleanupStack::PopAndDestroy( ssidUnicode );
-		}
-	
-	if ( !arrayOfItems->Count() ) 
-		{
-		// there's nothing to edit
-		// just return before showing edit dialog
-    	if ( connectedWlan )
-    	    {
-    	    CleanupStack::PopAndDestroy( connectedSsid );
-    	    }
-        
-    	CleanupStack::PopAndDestroy( selectedItems );	
-    	CleanupStack::PopAndDestroy( arrayOfItems );
-		return;
-		}
-	
-	LOG_WRITE( "creating the dialog" );
- 	CWsfWlanSsidSelectionDlg2* dlg = CWsfWlanSsidSelectionDlg2::NewL( 
- 	                                           *arrayOfItems, *selectedItems );
- 	dlg->PrepareLC( R_QTN_PREFERRED_FILTER_SELECTION_DIALOG2 );
- 
-    LOG_WRITE( "launching the dialog" );
- 	if ( dlg->RunLD() )
- 		{
- 		LOG_WRITE( "dialog closed" );
-		// go throught the list of selected items... and store them...
-		iBlackListSsids->Reset();
-		
-		TInt selectedCount( selectedItems->Count() );
-
-		for ( TInt loopCounter( 0 ); loopCounter < selectedCount; ++loopCounter )
-			{
-			TPtrC ssid = arrayOfItems->MdcaPoint( selectedItems->At( 
-			                                                   loopCounter ) );
-			HBufC8* ssidUtf8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( 
-			                                                            ssid );
-            CleanupStack::PushL( ssidUtf8 );
-			iBlackListSsids->AppendL( *ssidUtf8 );
-			CleanupStack::PopAndDestroy( ssidUtf8 );
-			}
-			
-	    if ( connectedBlacklisted )
-	        {
-			HBufC8* ssidUtf8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( 
-			                                                  *connectedSsid );
-            CleanupStack::PushL( ssidUtf8 );
-			iBlackListSsids->AppendL( *ssidUtf8 );
-			CleanupStack::PopAndDestroy( ssidUtf8 );
-	        }
-	        
-		iBlackListSsids->Sort();	
-		SaveDefsL();	
- 		} 
- 		
-	if ( connectedWlan )
-	    {
-	    CleanupStack::PopAndDestroy( connectedSsid );
-	    }
- 		
- 	CleanupStack::PopAndDestroy( selectedItems );	
-	CleanupStack::PopAndDestroy( arrayOfItems );
-	}
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::ReadFilterDefsL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoSortingBlackList::ReadFilterDefsL()
-	{
-	RestoreDefsL();
-	}
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::SaveDefsL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoSortingBlackList::SaveDefsL()
-	{	
-    LOG_ENTERFN( "CWsfWlanInfoSortingBlackList::SaveDefsL" );
-    
-	// clear the db-table
-	if ( iBlackListSsidTable.FirstL() != EFalse )
-		{
-		do 
-			{
-			iBlackListSsidTable.DeleteL();
-			} 
-		while ( iBlackListSsidTable.NextL() );
-		}
-	
-	// and add the iBlackListSsids contents there....
-	TInt ssidCount( iBlackListSsids->Count() );
-	
-	if ( ssidCount )
-		{
-		// there are items
-    	CDbColSet* colSet = iBlackListSsidTable.ColSetL();
-    	CleanupStack::PushL( colSet );	
-    	TDbColNo ssidColumnNumber = colSet->ColNo( 
-    	                                         KBlackListTableIdColumnName );
-    	
-    	for ( TInt i( 0 ); i < ssidCount; ++i )
-    		{
-    		iBlackListSsidTable.InsertL();
-    		iBlackListSsidTable.SetColL( ssidColumnNumber, 
-    		                             iBlackListSsids->MdcaPoint( i ) );		
-    		iBlackListSsidTable.PutL();
-    		}
-    	CleanupStack::PopAndDestroy( colSet );
-		}
-		
-	}
-
-
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::RestoreDefsL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoSortingBlackList::RestoreDefsL()
-	{
-	LOG_ENTERFN( "CWsfWlanInfoSortingBlackList::RestoreDefsL" );	
-	iBlackListSsids->Reset();
-	iBlackListSsidTable.Reset();
-	// go through the table and fill the ssid array...
-	if ( iBlackListSsidTable.FirstL() )
-		{
-    	CDbColSet* colSet = iBlackListSsidTable.ColSetL();
-    	CleanupStack::PushL( colSet );	
-    	TDbColNo ssidColumnNumber = colSet->ColNo( 
-    	                                         KBlackListTableIdColumnName );
-    	do
-    		{
-    		iBlackListSsidTable.GetL();
-    		iBlackListSsids->AppendL( iBlackListSsidTable.ColDes8( 
-    		                                              ssidColumnNumber ) );
-    		} 
-    	while ( iBlackListSsidTable.NextL() );
-    		
-    	CleanupStack::PopAndDestroy( colSet );	
-    	// sort the array...
-    	iBlackListSsids->Sort();
-
-		}
-	}
-	
-	
-// ----------------------------------------------------------------------------
-// CWsfWlanInfoSortingBlackList::CheckTableL
-// ----------------------------------------------------------------------------
-//
-void CWsfWlanInfoSortingBlackList::CheckTableL()
-	{
-	LOG_ENTERFN( "CWsfWlanInfoSortingBlackList::CheckTableL" );
-	
-	TInt tableStatus = iBlackListSsidTable.Open( *iDefsDb, 
-	                                             KBlackListTableName );
-	if ( tableStatus == KErrNotFound )
-		{
-		// the table does not exist... create it
-		CDbColSet *ssidTableColumnSet = CDbColSet::NewLC();
-			
-		ssidTableColumnSet->AddL( TDbCol( KBlackListTableIdColumnName, 
-		                                  EDbColText8 ) );
-		
-		iDefsDb->Begin();
-		User::LeaveIfError( iDefsDb->CreateTable( KBlackListTableName, 
-		                                          *ssidTableColumnSet ) );
-		iDefsDb->Commit();
-		
-		CleanupStack::PopAndDestroy( ssidTableColumnSet );
-		}
-
-	if ( tableStatus != KErrNone )
-		{
-		User::LeaveIfError( iBlackListSsidTable.Open( *iDefsDb,  
-		                                              KBlackListTableName ) );
-		}
-	}
-
-
-
-