Change folder scanning 13/206913/2 accepted/tizen/unified/20190603.095224 submit/tizen/20190531.055912
authorMinje Ahn <minje.ahn@samsung.com>
Wed, 29 May 2019 02:29:42 +0000 (11:29 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Wed, 29 May 2019 03:54:57 +0000 (12:54 +0900)
Fixed an issue where media could not be seen during folder scan

Change-Id: I6c356f58771aed7a45b13f6b96d9de88dde1fd89
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/common/include/media-common-types.h
src/common/media-common-db-svc.c
src/scanner-v2/media-scanner-scan-v2.c
src/scanner/media-scanner-scan.c

index dab94d6..3d00177 100755 (executable)
 
 #include <tzplatform_config.h>
 
-#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
index d9c0a91..633fc61 100755 (executable)
@@ -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);
 
index fc73926..2854e95 100755 (executable)
@@ -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);
index 77ce858..c7b4631 100755 (executable)
@@ -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;