//\r
-// Open Service Platform\r
// Copyright (c) 2012 Samsung Electronics Co., Ltd.\r
//\r
// Licensed under the Apache License, Version 2.0 (the License);\r
\r
SysLog(NID_CNT, "pInputCond = %s", pInputCond.get());\r
\r
- if ((pInputCond.get())[0])\r
- {\r
- ret = media_filter_set_condition(*(pFilterHandle.get()), pInputCond.get(), MEDIA_CONTENT_COLLATE_DEFAULT);\r
- SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, E_SYSTEM, "Failed to perform media_filter_set_condition operation.");\r
- }\r
+ ret = media_filter_set_condition(*(pFilterHandle.get()), pInputCond.get(), MEDIA_CONTENT_COLLATE_DEFAULT);\r
+ SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, E_SYSTEM, "Failed to perform media_filter_set_condition operation.");\r
}\r
\r
if (!__inputColumnName.IsEmpty()) // SortColumn is optional in case of SearchN\r
\r
if (__inputSortOrder == SORT_ORDER_ASCENDING)\r
{\r
- ret = media_filter_set_order(*(pFilterHandle.get()), MEDIA_CONTENT_ORDER_ASC, pSortCol.get(), MEDIA_CONTENT_COLLATE_DEFAULT);\r
+ ret = media_filter_set_order(*(pFilterHandle.get()), MEDIA_CONTENT_ORDER_ASC, pSortCol.get(), MEDIA_CONTENT_COLLATE_NOCASE);\r
SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, E_SYSTEM, "Failed to perform media_filter_set_order operation.");\r
}\r
else if (__inputSortOrder == SORT_ORDER_DESCENDING)\r
{\r
- ret = media_filter_set_order(*(pFilterHandle.get()), MEDIA_CONTENT_ORDER_DESC, pSortCol.get(), MEDIA_CONTENT_COLLATE_DEFAULT);\r
+ ret = media_filter_set_order(*(pFilterHandle.get()), MEDIA_CONTENT_ORDER_DESC, pSortCol.get(), MEDIA_CONTENT_COLLATE_NOCASE);\r
SysTryReturnResult(NID_CNT, ret == MEDIA_CONTENT_ERROR_NONE, E_SYSTEM, "Failed to perform media_filter_set_order operation.");\r
}\r
}\r
std::unique_ptr<GList, SearchGListDeleter> pItemList;\r
GList* pTemp = NULL;\r
std::unique_ptr<media_album_s, AlbumHandleDeleter> pAlbumHandle;\r
+ std::unique_ptr<media_album_s, AlbumHandleDeleter> pTempAlbumHandle;\r
\r
- Object* pValue = NULL;\r
- char* __pAlbumName = NULL;\r
+ char* pName = NULL;\r
std::unique_ptr<char, CharDeleter> pAlbumName;\r
+ std::unique_ptr< String > pValue;\r
+ int lastIndex = 0;\r
\r
pTemp = pItemList.get();\r
\r
for (int idx = 0; idx < (int)g_list_length(pTemp); idx++)\r
{\r
pAlbumHandle.reset(static_cast<media_album_h>(g_list_nth_data(pTemp, idx)));\r
- ret = media_album_get_name(pAlbumHandle.get(), &__pAlbumName);\r
+ ret = media_album_get_name(pAlbumHandle.get(), &pName);\r
r = MapCoreErrorToNativeResult(ret);\r
SysTryReturnResult(NID_CNT, !IsFailed(r), r, "Failed to perform media_album_get_name.");\r
\r
- if (__pAlbumName != NULL)\r
+ if (pName != NULL)\r
{\r
- SysLog(NID_CNT, "pColumnVal = %s", __pAlbumName);\r
-\r
- pAlbumName.reset(__pAlbumName);\r
+ SysLog(NID_CNT, "pColumnVal = %s", pName);\r
\r
- pValue = new (std::nothrow) String(pAlbumName.get());\r
+ pAlbumName.reset(pName);\r
+ pValue.reset(new (std::nothrow) String(pAlbumName.get()));\r
SysTryReturnResult(NID_CNT, pValue != NULL, E_OUT_OF_MEMORY, "media_info_foreach_media_from_db pTemp is null.");\r
- }\r
\r
- if (pValue != NULL)\r
- {\r
- r = __pFinalOutList->Add(*pValue);\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform arraylist Add operation.");\r
- }\r
+ if (idx == 0)\r
+ {\r
+ r = __pFinalOutList->Add(pValue.get());\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform arraylist Add operation.");\r
+ pValue.release();\r
+ }\r
+ else\r
+ {\r
+ String* pTempNameList(static_cast< String* >(__pFinalOutList->GetAt(lastIndex)));\r
+\r
+ if (pValue->CompareTo(*pTempNameList) != 0)\r
+ {\r
+ r = __pFinalOutList->Add(pValue.get());\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to perform arraylist Add operation.");\r
\r
- pValue = NULL;\r
+ pValue.release();\r
+ lastIndex++;\r
+ }\r
+ }\r
+ }\r
}\r
+\r
return r;\r
}\r
\r