[content] Change sort mode
[platform/framework/native/content.git] / src / FCnt_ContentDirectoryImpl.cpp
index df87e3a..2b5e8ad 100644 (file)
@@ -1,5 +1,4 @@
 //
-// Open Service Platform
 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
 //
 // Licensed under the Apache License, Version 2.0 (the License);
@@ -296,14 +295,14 @@ _ContentDirectoryImpl::GetContentDirectoryPathListN(Tizen::Base::SortOrder sortO
 
        if (sortOrder == SORT_ORDER_ASCENDING)
        {
-               ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_ASC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_DEFAULT);
+               ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_ASC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
                r = MapCoreErrorToNativeResult(ret);
                SysTryReturn(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, null, r,
                                "[%s] Failed to perform media_filter_set_order operation.", GetErrorMessage(r));
        }
        else if (sortOrder == SORT_ORDER_DESCENDING)
        {
-               ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_DEFAULT);
+               ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_DESC, MEDIA_PATH, MEDIA_CONTENT_COLLATE_NOCASE);
                r = MapCoreErrorToNativeResult(ret);
                SysTryReturn(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, null, r,
                                "[%s] Failed to perform media_filter_set_order operation.", GetErrorMessage(r));
@@ -530,32 +529,6 @@ _ContentDirectoryImpl::GetContentDirectoryItemListN(const Tizen::Base::String& c
        r = CreateFolderFilter(__isMultiContentType, detachedPath);
        SysTryReturn(NID_CNT, !IsFailed(r), null, E_SYSTEM, "[E_SYSTEM] Failed to perform CreateFolderFilter operation.");
 
-       if ((!column.IsEmpty()) && (sortOrder != SORT_ORDER_NONE))
-       {
-               //__inputColumnName (osp column name) is replaced with slpColumn (slp column name).
-               r = GetSlpColumnName(slpColumn, column);
-               SysTryReturn(NID_CNT, !IsFailed(r), null, r, "[%s] Failed to perform GetSlpColumnName operation.", GetErrorMessage(r));
-
-               //CopyToCharArrayN: utility function, converts a osp string to char*
-               std::unique_ptr<char[]> pSortCol(_StringConverter::CopyToCharArrayN(slpColumn));
-               SysTryReturn(NID_CNT, pSortCol, null, E_OUT_OF_MEMORY, "The memory is insufficient.");
-
-               if (sortOrder == SORT_ORDER_ASCENDING)
-               {
-                       ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_ASC, pSortCol.get(), MEDIA_CONTENT_COLLATE_DEFAULT);
-                       r = MapCoreErrorToNativeResult(ret);
-                       SysTryReturn(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, null, r,
-                                       "[%s] Failed to perform media_filter_set_order operation.", GetErrorMessage(r));
-               }
-               else if (sortOrder == SORT_ORDER_DESCENDING)
-               {
-                       ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_DESC, pSortCol.get(), MEDIA_CONTENT_COLLATE_DEFAULT);
-                       r = MapCoreErrorToNativeResult(ret);
-                       SysTryReturn(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, null, r,
-                                       "[%s] Failed to perform media_filter_set_order operation.", GetErrorMessage(r));
-               }
-       }
-
        pTempList = pItemList.get();
        ret = media_folder_foreach_folder_from_db(*(__pFilterHandle.get()), MediaFoldersCb, &pTempList);
        r = MapCoreErrorToNativeResult(ret);
@@ -617,6 +590,32 @@ _ContentDirectoryImpl::GetContentDirectoryItemListN(const Tizen::Base::String& c
                SysLog(NID_CNT, "totalCount [%d] totalPageCount[%d] __countPerPage[%d] __pageNo[%d] offset[%d]",
                                totalCount, totalPageCount, countPerPage, pageNo, offset);
 
+               if ((!column.IsEmpty()) && (sortOrder != SORT_ORDER_NONE))
+               {
+                       //__inputColumnName (osp column name) is replaced with slpColumn (slp column name).
+                       r = GetSlpColumnName(slpColumn, column);
+                       SysTryReturn(NID_CNT, !IsFailed(r), null, r, "[%s] Failed to perform GetSlpColumnName operation.", GetErrorMessage(r));
+
+                       //CopyToCharArrayN: utility function, converts a osp string to char*
+                       std::unique_ptr<char[]> pSortCol(_StringConverter::CopyToCharArrayN(slpColumn));
+                       SysTryReturn(NID_CNT, pSortCol, null, E_OUT_OF_MEMORY, "The memory is insufficient.");
+
+                       if (sortOrder == SORT_ORDER_ASCENDING)
+                       {
+                               ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_ASC, pSortCol.get(), MEDIA_CONTENT_COLLATE_NOCASE);
+                               r = MapCoreErrorToNativeResult(ret);
+                               SysTryReturn(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, null, r,
+                                               "[%s] Failed to perform media_filter_set_order operation.", GetErrorMessage(r));
+                       }
+                       else if (sortOrder == SORT_ORDER_DESCENDING)
+                       {
+                               ret = media_filter_set_order(*(__pFilterHandle.get()), MEDIA_CONTENT_ORDER_DESC, pSortCol.get(), MEDIA_CONTENT_COLLATE_NOCASE);
+                               r = MapCoreErrorToNativeResult(ret);
+                               SysTryReturn(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, null, r,
+                                               "[%s] Failed to perform media_filter_set_order operation.", GetErrorMessage(r));
+                       }
+               }
+
                ret = media_filter_set_offset(*(__pFilterHandle.get()),offset,countPerPage);
                r = MapCoreErrorToNativeResult(ret);
                SysTryReturn(NID_CNT, !IsFailed(r), null, r, "[%s] Failed to perform media_filter_set_offset operation.", GetErrorMessage(r));