From 3fdb4f61438a2f90db83350cde772527ec8ea57d Mon Sep 17 00:00:00 2001 From: Minje Ahn Date: Wed, 29 May 2019 11:29:42 +0900 Subject: [PATCH] Change folder scanning Fixed an issue where media could not be seen during folder scan Change-Id: I6c356f58771aed7a45b13f6b96d9de88dde1fd89 Signed-off-by: Minje Ahn --- src/common/include/media-common-types.h | 5 +++-- src/common/media-common-db-svc.c | 6 +++--- src/scanner-v2/media-scanner-scan-v2.c | 4 ++-- src/scanner/media-scanner-scan.c | 6 +++--- 4 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/common/include/media-common-types.h b/src/common/include/media-common-types.h index dab94d6..3d00177 100755 --- a/src/common/include/media-common-types.h +++ b/src/common/include/media-common-types.h @@ -32,9 +32,10 @@ #include -#define MS_VALIND 1 +#define MS_VALID 1 #define MS_INVALID 0 -#define MS_VALIND_V2 2 +#define MS_SCANNING 2 +#define MS_VALID_V2 2 #define MS_RECURSIVE 1 #define MS_NON_RECURSIVE 0 diff --git a/src/common/media-common-db-svc.c b/src/common/media-common-db-svc.c index d9c0a91..633fc61 100755 --- a/src/common/media-common-db-svc.c +++ b/src/common/media-common-db-svc.c @@ -536,7 +536,7 @@ int ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid) thumb_list = g_array_new(FALSE, FALSE, sizeof(char*)); - char *sql = sqlite3_mprintf("SELECT media_thumbnail_path FROM '%q' WHERE validity=0 AND media_thumbnail_path IS NOT NULL", storage_id); + char *sql = sqlite3_mprintf("SELECT media_thumbnail_path FROM '%q' WHERE validity IN (%d, %d) AND media_thumbnail_path IS NOT NULL", storage_id, MS_INVALID, MS_SCANNING); MS_DBG_SLOG("[SQL query] : %s", sql); @@ -551,7 +551,7 @@ int ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid) MS_SQLITE3_FINALIZE(sql_stmt); - sql = sqlite3_mprintf("DELETE FROM '%q' WHERE validity=0;", storage_id); + sql = sqlite3_mprintf("DELETE FROM '%q' WHERE validity IN (%d, %d)", storage_id, MS_INVALID, MS_SCANNING); ret = media_db_update_db_direct(sql, uid); MS_SQLITE3_SAFE_FREE(sql); @@ -734,7 +734,7 @@ int ms_delete_invalid_folder(const char *storage_id, uid_t uid) MS_DBG_RETVM_IF(!MS_STRING_VALID(storage_id), MS_MEDIA_ERR_INVALID_PARAMETER, "storage_id is NULL"); - sql = sqlite3_mprintf("DELETE FROM folder WHERE storage_uuid='%q' AND validity=0;", storage_id); + sql = sqlite3_mprintf("DELETE FROM folder WHERE storage_uuid='%q' AND validity IN (%d, %d)", storage_id, MS_INVALID, MS_SCANNING); ret = media_db_update_db_direct(sql, uid); diff --git a/src/scanner-v2/media-scanner-scan-v2.c b/src/scanner-v2/media-scanner-scan-v2.c index fc73926..2854e95 100755 --- a/src/scanner-v2/media-scanner-scan-v2.c +++ b/src/scanner-v2/media-scanner-scan-v2.c @@ -1206,7 +1206,7 @@ gboolean msc_directory_scan_thread(void *data) ms_get_folder_scan_status(handle, storage_id, scan_data->msg, (int*)&scan_status); if (scan_status == MS_DIR_SCAN_DONE) - ms_set_folder_item_validity(handle, storage_id, scan_data->msg, MS_VALIND_V2, MS_RECURSIVE, uid); + ms_set_folder_item_validity(handle, storage_id, scan_data->msg, MS_VALID_V2, MS_RECURSIVE, uid); else ms_set_folder_item_validity(handle, storage_id, scan_data->msg, MS_INVALID, MS_RECURSIVE, uid); } @@ -1225,7 +1225,7 @@ gboolean msc_directory_scan_thread(void *data) /* do nothing */ MS_DBG_WARN("[%.*s] scan done", MAX_MSG_SIZE, scan_data->msg); /*fix timing issue, deleted items scanned by storage scan is set validity 1 again*/ - /*err = ms_set_folder_item_validity(handle, storage_id, scan_data->msg, MS_VALIND, MS_NON_RECURSIVE, uid);*/ + /*err = ms_set_folder_item_validity(handle, storage_id, scan_data->msg, MS_VALID, MS_NON_RECURSIVE, uid);*/ goto SCAN_DONE; } else if (scan_status == MS_DIR_SCAN_PROCESSING) { MS_DBG_WARN("[%.*s] scanning, waiting...", MAX_MSG_SIZE, scan_data->msg); diff --git a/src/scanner/media-scanner-scan.c b/src/scanner/media-scanner-scan.c index 77ce858..c7b4631 100755 --- a/src/scanner/media-scanner-scan.c +++ b/src/scanner/media-scanner-scan.c @@ -272,15 +272,15 @@ gboolean msc_directory_scan_thread(void *data) } if (noti_type != MS_ITEM_INSERT) { - /* folder validity set 0 under the start_path in folder table*/ - ret = ms_set_folder_validity(handle, storage_id, scan_data->msg, MS_INVALID, is_recursive, scan_data->uid); + /* folder validity set 2 under the start_path in folder table*/ + ret = ms_set_folder_validity(handle, storage_id, scan_data->msg, MS_SCANNING, is_recursive, scan_data->uid); if (ret != MS_MEDIA_ERR_NONE) { MS_DBG_ERR("set_folder_validity failed [%d] ", scan_type); goto NEXT; } /*change validity before scanning*/ - ret = ms_set_folder_item_validity(handle, storage_id, scan_data->msg, MS_INVALID, is_recursive, scan_data->uid); + ret = ms_set_folder_item_validity(handle, storage_id, scan_data->msg, MS_SCANNING, is_recursive, scan_data->uid); if (ret != MS_MEDIA_ERR_NONE) { MS_DBG_ERR("set_folder_validity failed [%d] ", scan_type); goto NEXT; -- 2.7.4