emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp
branchRCL_3
changeset 26 968773a0b6ef
parent 25 3533d4323edc
--- a/emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp	Wed Sep 01 12:28:57 2010 +0100
+++ b/emailuis/emailui/src/FreestyleEmailUiCLSListsHandler.cpp	Tue Sep 14 20:48:24 2010 +0300
@@ -172,7 +172,8 @@
 	iContactManager( aContactManager ),
 	iClsListObserver( NULL ), 
 	iFs( aFs ),
-	iMailBox ( NULL )
+	iMailBox ( NULL ),
+	iUseLastNameFirstOrder( EFalse )
 	{
     FUNC_LOG;
 	// Nothing
@@ -323,44 +324,29 @@
         }
     searchSettings->SetSearchUrisL(databases);
 
-    // Set displayfields (first name, last name, email addresses)
-    RArray<TInt> displayFields(6);
-    CleanupClosePushL(displayFields);
-    displayFields.AppendL(R_VPBK_FIELD_TYPE_FIRSTNAME); 
-    displayFields.AppendL(R_VPBK_FIELD_TYPE_LASTNAME);
-    displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILGEN);
-    displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILHOME);
-    displayFields.AppendL(R_VPBK_FIELD_TYPE_EMAILWORK);
-    searchSettings->SetDisplayFieldsL(displayFields);
-    CleanupStack::Pop(&displayFields);
-    displayFields.Close();
-   
-    // Set the new sort order of data fields
+    // Set displayfields according to sort order
     RArray<TInt> sortOrder;
-    CleanupClosePushL(sortOrder);
-    
-    // change sorting order for Chinese to LNFN
-    if ( User::Language() == ELangPrcChinese )
+    CleanupClosePushL( sortOrder );
+    iRequestHandler->GetSortOrderL( *store1, sortOrder );
+    if ( sortOrder.Count() )
+        {
+        iUseLastNameFirstOrder = ( sortOrder[0] == R_VPBK_FIELD_TYPE_LASTNAME );
+        }
+    else
         {
-        sortOrder.AppendL( R_VPBK_FIELD_TYPE_LASTNAME );
-        sortOrder.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME );
-        }
-    else // default sorting order FN LN
-        {
-        sortOrder.AppendL( R_VPBK_FIELD_TYPE_FIRSTNAME );
-        sortOrder.AppendL( R_VPBK_FIELD_TYPE_LASTNAME );
+        iUseLastNameFirstOrder = EFalse; // default is not to change order
         }
-    
-    sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILGEN);
-    sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILHOME);
-    sortOrder.AppendL(R_VPBK_FIELD_TYPE_EMAILWORK);
-    iRequestHandler->ChangeSortOrderL(*store1, sortOrder);
-    if ( store2 )
-        {
-        iRequestHandler->ChangeSortOrderL(*store2, sortOrder);
-        }
-
-    CleanupStack::Pop(&sortOrder);
+    RArray<TInt> displayFields( 6 );
+    CleanupClosePushL( displayFields );
+    displayFields.AppendL( sortOrder[0] );
+    if ( sortOrder.Count() >= 1 ) displayFields.AppendL( sortOrder[1] );
+    displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILGEN );
+    displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILHOME );
+    displayFields.AppendL( R_VPBK_FIELD_TYPE_EMAILWORK );
+    searchSettings->SetDisplayFieldsL( displayFields );
+    CleanupStack::Pop( &displayFields );
+    CleanupStack::Pop( &sortOrder );
+    displayFields.Close();
     sortOrder.Close();
 
     // Set maximum for search results
@@ -437,3 +423,8 @@
 	iClsListObserver->OperationErrorL( aErrorCode );
 	}
 
+TBool CFSEmailUiClsListsHandler::UseLastNameFirstOrder()
+    {
+    FUNC_LOG;
+    return iUseLastNameFirstOrder;
+    }