Add name field in bookmark table 95/121595/4 submit/tizen/20170405.040602
authorHaejeong Kim <backto.kim@samsung.com>
Tue, 28 Mar 2017 09:38:13 +0000 (18:38 +0900)
committerhj kim <backto.kim@samsung.com>
Wed, 5 Apr 2017 01:57:55 +0000 (18:57 -0700)
Change-Id: I9b3123bfbce7c2b9c472eadf1c0e84ac39876e9a

include/media_info_private.h
src/media_bookmark.c
src/media_content.c
src/media_db.c

index 918f775..ddc4e08 100755 (executable)
@@ -204,6 +204,7 @@ typedef struct {
        char *media_id;
        time_t marked_time;
        char *thumbnail_path;
+       char *name;
 } media_bookmark_s;
 
 typedef struct {
@@ -513,6 +514,7 @@ typedef struct _media_content_cb_data {
 /* DB field for bookmark */
 #define DB_FIELD_BOOKMARK_ID   "bookmark_id"
 #define DB_FIELD_BOOKMARK_MARKED_TIME  "marked_time"
+#define DB_FIELD_BOOKMARK_NAME "name"
 
 /* DB field for album*/
 #define DB_FIELD_ALBUM_ID                      "album_id"
@@ -613,7 +615,8 @@ typedef struct _media_content_cb_data {
 /* Bookmark */
 #define INSERT_BOOKMARK_TO_BOOKMARK                    "INSERT INTO "DB_TABLE_BOOKMARK" (media_uuid, marked_time, thumbnail_path) VALUES ('%q', '%d', %Q)"
 #define SELECT_BOOKMARK_COUNT_BY_MEDIA_ID              "SELECT COUNT(*) FROM "BOOKMARK_MEDIA_JOIN" AND b.media_uuid='%s'"
-#define SELECT_BOOKMARK_LIST_BY_MEDIA_ID                       "SELECT b.bookmark_id, b.media_uuid, b.marked_time, b.thumbnail_path FROM "BOOKMARK_MEDIA_JOIN" AND b.media_uuid='%s'"
+#define SELECT_BOOKMARK_LIST_BY_MEDIA_ID                       "SELECT b.bookmark_id, b.media_uuid, b.marked_time, b.thumbnail_path, b.name FROM "BOOKMARK_MEDIA_JOIN" AND b.media_uuid='%s'"
+#define UPDATE_BOOKMARK_FROM_BOOKMARK          "UPDATE "DB_TABLE_BOOKMARK" SET name=%Q WHERE bookmark_id=%d;"
 
 /* Update Meta*/
 #define UPDATE_AV_META_FROM_MEDIA      "UPDATE '%s' SET played_count=%d, last_played_time=%d, last_played_position=%d WHERE media_uuid='%q'"
index 829bed4..9ca8440 100755 (executable)
@@ -84,6 +84,7 @@ int media_bookmark_destroy(media_bookmark_h bookmark)
        if (_bookmark) {
                SAFE_FREE(_bookmark->media_id);
                SAFE_FREE(_bookmark->thumbnail_path);
+               SAFE_FREE(_bookmark->name);
                free(_bookmark);
                ret = MEDIA_CONTENT_ERROR_NONE;
        } else {
@@ -124,6 +125,15 @@ int media_bookmark_clone(media_bookmark_h *dst, media_bookmark_h src)
                        }
                }
 
+               if (STRING_VALID(_src->name)) {
+                       _dst->name = (char*)strdup(_src->name);
+                       if (_dst->name == NULL) {
+                               media_content_error("OUT_OF_MEMORY(0x%08x)", MEDIA_CONTENT_ERROR_OUT_OF_MEMORY);
+                               media_bookmark_destroy((media_bookmark_h)_dst);
+                               return MEDIA_CONTENT_ERROR_OUT_OF_MEMORY;
+                       }
+               }
+
                *dst = (media_bookmark_h)_dst;
 
                ret = MEDIA_CONTENT_ERROR_NONE;
@@ -188,3 +198,58 @@ int media_bookmark_get_thumbnail_path(media_bookmark_h bookmark, char **path)
 
        return ret;
 }
+
+int media_bookmark_get_name(media_bookmark_h bookmark, char **name)
+{
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
+
+       if (_bookmark) {
+               if (STRING_VALID(_bookmark->name)) {
+                       *name = strdup(_bookmark->name);
+                       media_content_retvm_if(*name == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+               } else {
+                       *name = NULL;
+               }
+
+               ret = MEDIA_CONTENT_ERROR_NONE;
+       } else {
+               media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+       }
+
+       return ret;
+}
+
+int media_bookmark_set_name(media_bookmark_h bookmark, const char *name)
+{
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
+
+       if (STRING_VALID(name)) {
+               _bookmark->name = strdup(name);
+               media_content_retvm_if(_bookmark->name == NULL, MEDIA_CONTENT_ERROR_OUT_OF_MEMORY, "OUT_OF_MEMORY");
+       } else {
+               _bookmark->name = NULL;
+       }
+
+       return ret;
+}
+
+int media_bookmark_update_to_db(media_bookmark_h bookmark)
+{
+       int ret = MEDIA_CONTENT_ERROR_NONE;
+       media_bookmark_s *_bookmark = (media_bookmark_s*)bookmark;
+       char *sql = NULL;
+
+       if (_bookmark != NULL) {
+               sql = sqlite3_mprintf(UPDATE_BOOKMARK_FROM_BOOKMARK, _bookmark->name, _bookmark->bookmark_id);
+               ret = _content_query_sql(sql);
+               SQLITE3_SAFE_FREE(sql);
+       } else {
+               media_content_error("INVALID_PARAMETER(0x%08x)", MEDIA_CONTENT_ERROR_INVALID_PARAMETER);
+               ret = MEDIA_CONTENT_ERROR_INVALID_PARAMETER;
+       }
+
+       return ret;
+}
index 1a2fa60..e443f0e 100755 (executable)
@@ -276,6 +276,9 @@ static int __media_content_create_attr_handle(void)
        ret = _media_filter_attribute_add(g_attr_handle, BOOKMARK_MARKED_TIME, DB_FIELD_BOOKMARK_MARKED_TIME);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
+       ret = _media_filter_attribute_add(g_attr_handle, BOOKMARK_NAME, DB_FIELD_BOOKMARK_NAME);
+       media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+
        ret = _media_filter_attribute_add(g_attr_handle, MEDIA_360, DB_FIELD_MEDIA_360);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
@@ -723,6 +726,9 @@ static int __media_content_create_alias_attr_handle(void)
        ret = _media_filter_attribute_add(g_alias_attr_handle, BOOKMARK_MARKED_TIME, DB_TABLE_ALIAS_BOOKMARK"."DB_FIELD_BOOKMARK_MARKED_TIME);
        media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
 
+       ret = _media_filter_attribute_add(g_alias_attr_handle, BOOKMARK_NAME, DB_TABLE_ALIAS_BOOKMARK"."BOOKMARK_NAME);
+       media_content_retv_if(ret != MEDIA_CONTENT_ERROR_NONE, ret);
+
        return ret;
 }
 
index c4896a2..959ef3b 100755 (executable)
@@ -874,6 +874,8 @@ int _media_db_get_bookmark(const char *media_id, filter_h filter, media_bookmark
                }
 #endif
 
+               bookmark->name = g_strdup((const char *)sqlite3_column_text(stmt, 4));
+
                if (callback((media_bookmark_h)bookmark, user_data) == false) {
                        media_bookmark_destroy((media_bookmark_h)bookmark);
                        break;