//\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
//CopyToCharArrayN: utility function, converts a osp string to char*\r
pInputCond = std::unique_ptr<char[]>(_StringConverter::CopyToCharArrayN(inputCondition));\r
- SysTryReturnResult(NID_CNT, (pInputCond.get())[0], E_OUT_OF_MEMORY, "pInputCond is NULL.");\r
+ SysTryReturnResult(NID_CNT, pInputCond, E_OUT_OF_MEMORY, "pInputCond is NULL.");\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
//CopyToCharArrayN: utility function, converts a osp string to char*\r
\r
pSortCol = std::unique_ptr<char[]>(_StringConverter::CopyToCharArrayN(slpColumn));\r
- SysTryReturnResult(NID_CNT, (pSortCol.get())[0], E_OUT_OF_MEMORY, "pSortCol is NULL.");\r
+ SysTryReturnResult(NID_CNT, pSortCol, E_OUT_OF_MEMORY, "pSortCol is NULL.");\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
SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "AppendEscapeKeywordForLikeQuery failed.");\r
\r
r = ReplaceDateTimeStringWithInt();\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "ReplaceDateTimeStringWithInt failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_INVALID_ARG, "ReplaceDateTimeStringWithInt failed.");\r
\r
// replace splApostrophe string with actual\r
r = __inputExpr.Replace(splApostrophe, "''");\r
while (strTok.HasMoreTokens())\r
{\r
r = strTok.GetNextToken(token);\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "GetNextToken failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "GetNextToken failed.");\r
if (isCol) //column name\r
{\r
isCol = false;\r
isConvertReq = false;\r
}\r
}\r
+\r
r = inputExpr.Append(token);\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "string append failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "string append failed.");\r
}\r
else // value of the column\r
{\r
isCol = true;\r
r = inputExpr.Append("'");\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "string append failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "string append failed.");\r
\r
if (isConvertReq)\r
{\r
Tizen::Base::DateTime dt;\r
- Tizen::Base::DateTime::Parse(token, dt);\r
+ r = Tizen::Base::DateTime::Parse(token, dt);\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "Failed to parse DateTime.");\r
\r
int year = dt.GetYear();\r
int month = dt.GetMonth(); \r
int minute = dt.GetMinute(); \r
int second = dt.GetSecond();\r
\r
- time_t rawTime;\r
+ time_t rawTime;\r
struct tm* timeInfo;\r
\r
time(&rawTime);\r
timeInfo->tm_sec = second;\r
\r
time_t seconds = mktime(timeInfo);\r
+ SysTryReturnResult(NID_CNT, seconds != -1, E_INVALID_ARG, "Failed to convert DateTime to broken-down time.");\r
+\r
long long ticksInSeconds = (long long)seconds;\r
\r
r = inputExpr.Append(ticksInSeconds);\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "string append failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "string append failed.");\r
}\r
else\r
{\r
r = inputExpr.Append(token);\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "string append failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "string append failed.");\r
}\r
+\r
r = inputExpr.Append("'");\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "string append failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "string append failed.");\r
}\r
}\r
\r
__inputExpr.Clear();\r
r = __inputExpr.Insert(inputExpr, 0);\r
- SysTryReturnResult(NID_CNT, r == E_SUCCESS, E_SYSTEM, "string insert failed.");\r
+ SysTryReturnResult(NID_CNT, r == E_SUCCESS, r, "string insert failed.");\r
\r
return 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
+ SysLog(NID_CNT, "pColumnVal = %s", pName);\r
\r
- pAlbumName.reset(__pAlbumName);\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
- pValue = NULL;\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.release();\r
+ lastIndex++;\r
+ }\r
+ }\r
+ }\r
}\r
+\r
return r;\r
}\r
\r