phonebookengines/VirtualPhonebook/VPbkEng/src/CVPbkFindView.cpp
branchRCL_3
changeset 35 4ae315f230bc
parent 0 e686773b3f54
child 64 c1e8ba0c2b16
--- a/phonebookengines/VirtualPhonebook/VPbkEng/src/CVPbkFindView.cpp	Tue May 11 16:00:21 2010 +0300
+++ b/phonebookengines/VirtualPhonebook/VPbkEng/src/CVPbkFindView.cpp	Tue May 25 12:26:45 2010 +0300
@@ -14,8 +14,7 @@
 * Description:  Filtered contact view
 *
 */
-
-
+#include <eikenv.h>
 #include "CVPbkFindView.h"
 #include <MVPbkFieldType.h>
 #include <CVPbkSortOrder.h>
@@ -24,14 +23,13 @@
 #include <CVPbkAsyncOperation.h>
 #include <VPbkError.h>
 
-#include <CVPbkFieldTypeRefsList.h>
-#include <CVPbkContactNameConstructionPolicy.h>
 #include <CVPbkContactFindPolicy.h>
 #include <MVPbkContactBookmarkCollection.h>
 #include <CVPbkContactFieldIterator.h>
 #include <MVPbkContactFieldData.h>
 #include <MVPbkContactFieldTextData.h>
 
+
 #include <VPbkDebug.h>
 
 namespace {
@@ -108,16 +106,20 @@
     
     SetAlwaysIncludedContactsL( aAlwaysIncludedContacts );
 
-    // Create contact find policy
-    iContactFindPolicy = CVPbkContactFindPolicy::NewL();
     
-    CVPbkContactNameConstructionPolicy::TParam param( *iMasterFieldTypeList );
-    iNameConstructionPolicy =
-        CVPbkContactNameConstructionPolicy::NewL( param );
-        
-    //Create field type list
-    iFieldTypeRefsList = CVPbkFieldTypeRefsList::NewL();        
-            
+    CEikonEnv* eikonEnv = CEikonEnv::Static();
+     
+    if ( eikonEnv )
+        {
+        CVPbkContactFindPolicy::TParam param =
+            CVPbkContactFindPolicy::TParam(
+                *iMasterFieldTypeList,
+                eikonEnv->FsSession() );
+    
+        // Create contact find policy
+        iContactFindPolicy = CVPbkContactFindPolicy::NewL( param );
+        }
+    
     iBaseView.AddObserverL(*this);
 
     VPBK_DEBUG_PRINT(VPBK_DEBUG_STRING
@@ -154,8 +156,6 @@
     iBaseView.RemoveObserver(*this); 
     iObservers.Close();
     delete iFindStrings;
-    delete iFieldTypeRefsList;
-    delete iNameConstructionPolicy;
     delete iContactFindPolicy;
     delete iAsyncOperation;        
     }
@@ -464,14 +464,12 @@
         const MVPbkViewContact& contact = iBaseView.ContactAtL( i );
         
         TBool match( ETrue );
-        const TInt countStrings( iFindStrings->MdcaCount() );
-        for ( TInt j(0); j < countStrings; ++j )
+
+        if ( iContactFindPolicy && 
+                !iContactFindPolicy->MatchContactNameL( *iFindStrings, contact ))
             {
-            if ( !ContactMatchRefineL( contact, iFindStrings->MdcaPoint( j ) ) )
-                {                
-                match = EFalse;                
-                }            
-            }                
+            match = EFalse;      
+            }
 
         if ( match && iContactMapping.FindInOrder( i ) == KErrNotFound ) 
             {                    
@@ -618,47 +616,6 @@
         SendViewErrorEventToObservers( res, EFalse );
         }
     }
-    
-// --------------------------------------------------------------------------
-// CVPbkFindView::ContactMatchRefineL
-// --------------------------------------------------------------------------
-//    
-TBool CVPbkFindView::ContactMatchRefineL(         
-        const MVPbkViewContact& aViewContact,
-        TPtrC aFindWord )
-    {
-    TBool match( EFalse );
-    iFieldTypeRefsList->Reset(); 
-    
-    // Create iterator                        
-    MVPbkBaseContactFieldIterator* iterator = 
-        iNameConstructionPolicy->NameConstructionFieldsLC( 
-            aViewContact.Fields(),
-            *iFieldTypeRefsList );                            
-             
-    // Loop iterator
-    while ( iterator->HasNext() )
-        {                    
-        const MVPbkBaseContactField* field = iterator->Next();
-        
-        // Check field's type
-        if ( field->FieldData().DataType() == EVPbkFieldStorageTypeText )
-            {                    
-            const MVPbkContactFieldTextData& data = 
-                MVPbkContactFieldTextData::Cast( field->FieldData() );
-                
-            // Match refine
-            if ( iContactFindPolicy->MatchRefineL( data.Text(), aFindWord ) )
-                {
-                match = ETrue;
-                break;
-                }                
-            }
-        }           
-    CleanupStack::PopAndDestroy( 1 ); //iterator    
-    
-    return match;    
-    }    
 
 // --------------------------------------------------------------------------
 // CVPbkFindView::SetFindStringsL