From 7aca7414a06971e6f1467d7a7ece8328007ca5e8 Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Tue, 29 Jan 2019 10:56:45 +0900 Subject: [PATCH] [ACR-1348] Fix bug of media_info_insert_to_db API When the media_info handle is returned, modify it to include the latest media information. (In the past, if the media info you requested was in the database, this API returned the media info without making sure it was up-to-date.) Change-Id: I714b9e62504641e15f4c2df8e8c7d8b49cb73cd8 Signed-off-by: Minje Ahn --- include/media-svc.h | 1 + src/common/media-svc-media.c | 20 ++++++++++++++++++++ src/common/media-svc.c | 5 +++++ src/include/common/media-svc-media.h | 1 + 4 files changed, 27 insertions(+) diff --git a/include/media-svc.h b/include/media-svc.h index ad8f460..8779000 100755 --- a/include/media-svc.h +++ b/include/media-svc.h @@ -38,6 +38,7 @@ extern "C" { int media_svc_get_user_version(sqlite3 *handle, int *user_version); int media_svc_create_table(uid_t uid); int media_svc_check_item_exist_by_path(sqlite3 *handle, const char *storage_id, const char *path); +int media_svc_get_modified_time(sqlite3 *handle, const char *storage_id, const char *path, int *modified_time); int media_svc_insert_folder(sqlite3 *handle, const char *storage_id, ms_user_storage_type_e storage_type, const char *path, uid_t uid); int media_svc_insert_item_begin(int data_cnt, int with_noti, int from_pid); int media_svc_insert_item_end(uid_t uid); diff --git a/src/common/media-svc-media.c b/src/common/media-svc-media.c index 29918ed..a0bdeca 100755 --- a/src/common/media-svc-media.c +++ b/src/common/media-svc-media.c @@ -57,6 +57,26 @@ int _media_svc_count_record_with_path(sqlite3 *handle, const char *storage_id, c return MS_MEDIA_ERR_NONE; } +int _media_svc_get_modified_time(sqlite3 *handle, const char *storage_id, const char *path, int *modified_time) +{ + int ret = MS_MEDIA_ERR_NONE; + sqlite3_stmt *sql_stmt = NULL; + char *sql = NULL; + + media_svc_retvm_if(!STRING_VALID(storage_id), MS_MEDIA_ERR_INVALID_PARAMETER, "storage_id is NULL"); + media_svc_retvm_if(!STRING_VALID(path), MS_MEDIA_ERR_INVALID_PARAMETER, "Path is NULL"); + + sql = sqlite3_mprintf("SELECT modified_time FROM '%q' WHERE path='%q'", storage_id, path); + ret = _media_svc_sql_prepare_to_step(handle, sql, &sql_stmt); + media_svc_retv_if(ret != MS_MEDIA_ERR_NONE, ret); + + *modified_time = sqlite3_column_int(sql_stmt, 0); + + SQLITE3_FINALIZE(sql_stmt); + + return MS_MEDIA_ERR_NONE; +} + int _media_svc_insert_item_with_data(sqlite3 *handle, const char *storage_id, media_svc_content_info_s *content_info, bool stack_query, uid_t uid) { int ret = MS_MEDIA_ERR_NONE; diff --git a/src/common/media-svc.c b/src/common/media-svc.c index bc0fd96..19b934f 100755 --- a/src/common/media-svc.c +++ b/src/common/media-svc.c @@ -182,6 +182,11 @@ int media_svc_check_item_exist_by_path(sqlite3 *handle, const char *storage_id, return MS_MEDIA_ERR_NONE; } +int media_svc_get_modified_time(sqlite3 *handle, const char *storage_id, const char *path, int *modified_time) +{ + return _media_svc_get_modified_time(handle, storage_id, path, modified_time); +} + int media_svc_insert_item_begin(int data_cnt, int with_noti, int from_pid) { media_svc_debug("Transaction data count : [%d]", data_cnt); diff --git a/src/include/common/media-svc-media.h b/src/include/common/media-svc-media.h index 091b496..0291193 100755 --- a/src/include/common/media-svc-media.h +++ b/src/include/common/media-svc-media.h @@ -29,6 +29,7 @@ #include "media-svc-util.h" int _media_svc_count_record_with_path(sqlite3 *handle, const char *storage_id, const char *path, int *count); +int _media_svc_get_modified_time(sqlite3 *handle, const char *storage_id, const char *path, int *modified_time); int _media_svc_insert_item_with_data(sqlite3 *handle, const char *storage_id, media_svc_content_info_s *content_info, bool stack_query, uid_t uid); int _media_svc_update_item_with_data(const char *storage_id, media_svc_content_info_s *content_info, uid_t uid); int _media_svc_get_thumbnail_path_by_path(sqlite3 *handle, const char *path, char *thumbnail_path); -- 2.7.4