phonebookui/Phonebook2/ServerApplication/src/CPbk2ItemFetcher.cpp
branchRCL_3
changeset 26 0d28c1c5b6dd
parent 0 e686773b3f54
child 57 2666d9724c76
equal deleted inserted replaced
23:5586b4d2ec3e 26:0d28c1c5b6dd
   107         }
   107         }
   108     
   108     
   109     return selector;
   109     return selector;
   110     }
   110     }
   111 
   111 
   112 CVPbkFieldTypeSelector* BuildFilterL(
   112 /**
       
   113  * Builds contact view filter based on selected address select type.
       
   114  *
       
   115  * @param aType                 Address select type.
       
   116  * @param aFieldTypeList        Master field type list.
       
   117  * @param aShowEmailInSendMsg   Indicates whether email fields are valid
       
   118  *                              for message sending purposes (UniEditor).
       
   119  * @return  Contact view filter.
       
   120  */
       
   121 CVPbkFieldTypeSelector* BuildViewFilterL(
   113         TAiwAddressSelectType aType,
   122         TAiwAddressSelectType aType,
   114         const MVPbkFieldTypeList& aFieldTypeList )
   123         const MVPbkFieldTypeList& aFieldTypeList,
       
   124         TBool aShowEmailInSendMsg )
   115     {
   125     {
   116     CVPbkFieldTypeSelector* selector = NULL;
   126     CVPbkFieldTypeSelector* selector = NULL;
   117     
   127     
   118     switch( aType )
   128     switch( aType )
   119         {
   129         {
   120         case EAiwMMSSelect:
   130         case EAiwMMSSelect:
   121             {
   131             {
   122             selector = VPbkFieldTypeSelectorFactory::
   132             // Do not use VPbkFieldTypeSelectorFactory's EUniEditorSelector
   123                 BuildContactActionTypeSelectorL(
   133             // filter here, as it's performance is not good.
   124                     VPbkFieldTypeSelectorFactory::EUniEditorSelector,
   134             // For view filtering needs, we need to use a fast filter.
       
   135             if ( aShowEmailInSendMsg )
       
   136                 {
       
   137                 selector = VPbkFieldTypeSelectorFactory::BuildFieldTypeSelectorL
       
   138                     ( VPbkFieldTypeSelectorFactory::EMmsAddressSelector,
   125                     aFieldTypeList );
   139                     aFieldTypeList );
       
   140                 }
       
   141             else
       
   142                 {
       
   143                 selector = VPbkFieldTypeSelectorFactory::BuildFieldTypeSelectorL
       
   144                     ( VPbkFieldTypeSelectorFactory::EPhoneNumberSelector,
       
   145                     aFieldTypeList );
       
   146                 }
   126             break;
   147             break;
   127             }
   148             }
   128         case EAiwEMailSelect:
   149         case EAiwEMailSelect:
   129             {
   150             {
   130             selector = VPbkFieldTypeSelectorFactory::
   151             selector = VPbkFieldTypeSelectorFactory::
   145             {
   166             {
   146             selector = VPbkFieldTypeSelectorFactory::
   167             selector = VPbkFieldTypeSelectorFactory::
   147                 BuildContactActionTypeSelectorL(
   168                 BuildContactActionTypeSelectorL(
   148                     VPbkFieldTypeSelectorFactory::EVOIPCallSelector,
   169                     VPbkFieldTypeSelectorFactory::EVOIPCallSelector,
   149                     aFieldTypeList );
   170                     aFieldTypeList );
   150             }
   171             break;
   151         break;
   172             }
   152         default:
   173         default:
       
   174             {
   153             break;
   175             break;
       
   176             }
   154         }
   177         }
   155     
   178     
   156     return selector;
   179     return selector;
   157     }
   180     }
   158 
   181 
   266         }
   289         }
   267     // Phonebook specific filters take prefference over the
   290     // Phonebook specific filters take prefference over the
   268     // filter specified by client
   291     // filter specified by client
   269     else
   292     else
   270         {
   293         {
   271         iContactViewFilter = BuildFilterL( iAddressSelectType,
   294         iContactViewFilter = BuildViewFilterL( iAddressSelectType,
   272                 appUi.ApplicationServices().ContactManager().FieldTypes() );
   295                 appUi.ApplicationServices().ContactManager().FieldTypes(),
       
   296                 appUi.ApplicationServices().LocallyVariatedFeatureEnabled
       
   297                 ( EVPbkLVShowEmailInSendMsg ) );
   273         
   298         
   274         // Filter specified by client
   299         // Filter specified by client
   275         if ( iContactViewFilter == NULL )
   300         if ( iContactViewFilter == NULL )
   276             {
   301             {
   277             iContactViewFilter = dataRetriever.GetContactViewFilterL
   302             iContactViewFilter = dataRetriever.GetContactViewFilterL