Improve readability of media_bookmark
[platform/core/api/media-content.git] / src / media_db.c
index 9f68545..26f866e 100755 (executable)
@@ -203,62 +203,51 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
 {
        int ret = MEDIA_CONTENT_ERROR_NONE;
        sqlite3_stmt *stmt = NULL;
-       char select_query[MAX_QUERY_SIZE] = {0, };
+       char *select_query = NULL;
        char *condition_query = NULL;
        char *option_query = NULL;
        filter_s *_filter = (filter_s *)filter;
 
-       memset(select_query, 0x00, sizeof(select_query));
-
        switch (group_type) {
        case MEDIA_GROUP_ALBUM:
                if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_ALBUM_COUNT, _filter->storage_id);
+                       select_query = g_strdup_printf(SELECT_ALBUM_COUNT, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_ALBUM_COUNT, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_ALBUM_COUNT, DB_VIEW_MEDIA);
                break;
 
        case MEDIA_GROUP_FOLDER:
                if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_FOLDER_COUNT_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id);
+                       select_query = g_strdup_printf(SELECT_FOLDER_COUNT_BY_STORAGE_ID, _filter->storage_id, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_FOLDER_COUNT, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_FOLDER_COUNT, DB_VIEW_MEDIA);
                break;
 
        case MEDIA_GROUP_PLAYLIST:
-               if (!SAFE_STRLCPY(select_query, SELECT_PLAYLIST_COUNT, sizeof(select_query))) {
-                       media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
-                       return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
-               }
+               select_query = g_strdup(SELECT_PLAYLIST_COUNT);
                break;
 
        case MEDIA_GROUP_TAG:
-               if (!SAFE_STRLCPY(select_query, SELECT_TAG_COUNT, sizeof(select_query))) {
-                       media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
-                       return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
-               }
+               select_query = g_strdup(SELECT_TAG_COUNT);
                break;
 
        case MEDIA_GROUP_BOOKMARK:
                if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_COUNT, _filter->storage_id);
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_BOOKMARK_COUNT, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_BOOKMARK_COUNT, DB_VIEW_MEDIA);
 
                break;
 
        case MEDIA_GROUP_STORAGE:
-               if (!SAFE_STRLCPY(select_query, SELECT_STORAGE_COUNT, sizeof(select_query))) {
-                       media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
-                       return MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
-               }
+               select_query = g_strdup(SELECT_STORAGE_COUNT);
                break;
 
        case MEDIA_GROUP_FACE:
                if ((_filter != NULL) && STRING_VALID(_filter->storage_id))
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_COUNT, _filter->storage_id);
+                       select_query = g_strdup_printf(SELECT_FACE_COUNT, _filter->storage_id);
                else
-                       snprintf(select_query, sizeof(select_query), SELECT_FACE_COUNT, DB_VIEW_MEDIA);
+                       select_query = g_strdup_printf(SELECT_FACE_COUNT, DB_VIEW_MEDIA);
                break;
 
        default:
@@ -267,11 +256,15 @@ int _media_db_get_group_count(filter_h filter, group_list_e group_type, int *gro
        }
 
        ret = __media_db_make_query(filter, &condition_query, &option_query);
-       media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+       if (ret != MEDIA_CONTENT_ERROR_NONE) {
+               g_free(select_query);
+               return ret;
+       }
 
        ret = _content_query_prepare(select_query, condition_query, option_query, &stmt);
-       SAFE_FREE(condition_query);
-       SAFE_FREE(option_query);
+       g_free(select_query);
+       g_free(condition_query);
+       g_free(option_query);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
        if (sqlite3_step(stmt) == SQLITE_ROW)
@@ -397,7 +390,7 @@ int _media_db_get_media_group_and_count(media_group_e group, filter_h filter, me
        memset(select_query, 0x00, sizeof(select_query));
        memset(group_query, 0x00, sizeof(group_query));
 
-       char* group_name = __media_db_get_group_name(group);
+       const char* group_name = __media_db_get_group_name(group);
        if (!STRING_VALID(group_name)) {
                ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
                media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
@@ -1090,9 +1083,16 @@ int _media_db_get_group_item_count(const char *group_name, filter_h filter, grou
 #endif
                } else {
 #ifdef _USE_TVPD_MODE
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, DB_VIEW_MEDIA);
+                       if (STRING_VALID(_filter->storage_id))
+                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, _filter->storage_id);
+                       else
+                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA, DB_VIEW_MEDIA);
 #else
-                       snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA);
+                       if (STRING_VALID(_filter->storage_id))
+                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA_BY_STORAGE_ID, _filter->storage_id);
+                       else
+                               snprintf(select_query, sizeof(select_query), SELECT_MEDIA_COUNT_FROM_MEDIA);
+
 #endif
                        need_bracket = true;
                }
@@ -1501,6 +1501,7 @@ int _media_db_get_media_group_item_count(const char *group_name, filter_h filter
        ret = __media_db_make_query(filter, &condition_query, &option_query);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
+       /* If 'filter' is not NULL, 'option_query' must be created. */
        if (option_query) {
                tmp_option = g_strconcat(option_query, ")", NULL);
                g_free(option_query);