Fix folder scanning error 14/235214/1
authorMinje Ahn <minje.ahn@samsung.com>
Wed, 3 Jun 2020 00:40:21 +0000 (09:40 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Wed, 3 Jun 2020 00:40:21 +0000 (09:40 +0900)
Fixed an issue where validity was not normally updated when the modification time of the file was changed.

Change-Id: I28d15a47cc05345ef34839589abc502388708ae9
Signed-off-by: Minje Ahn <minje.ahn@samsung.com>
src/common/media-svc-media.c
src/common/media-svc.c

index 8222de7..5983536 100755 (executable)
@@ -290,7 +290,7 @@ int _media_svc_update_item_with_data(bool is_direct, const char *storage_id, med
 
        char *sql = sqlite3_mprintf("UPDATE '%q' SET media_size=%lld, media_modified_time=%d, media_thumbnail_path=%Q, media_title=%Q, album_id=%d, media_album=%Q, media_artist=%Q, media_album_artist=%Q, media_genre=%Q, \
                media_composer=%Q, media_year=%Q, media_recorded_date=%Q, media_copyright=%Q, media_track_num=%Q, media_description=%Q, media_bitrate=%d, media_bitpersample=%d, media_samplerate=%d, media_channel=%d, media_duration=%d, \
-               media_longitude=%f, media_latitude=%f, media_altitude=%f, exposure_time=%Q, fnumber=%f, iso=%d, model=%Q, media_width=%d, media_height=%d, media_datetaken=%Q, media_orientation=%d WHERE media_path=%Q;",
+               media_longitude=%f, media_latitude=%f, media_altitude=%f, exposure_time=%Q, fnumber=%f, iso=%d, model=%Q, media_width=%d, media_height=%d, media_datetaken=%Q, media_orientation=%d, validity=1 WHERE media_path=%Q;",
                                storage_id,
                                content_info->size,
                                content_info->modified_time,
index 0f172ae..0efeb77 100755 (executable)
@@ -635,8 +635,18 @@ int media_svc_refresh_item(sqlite3 *handle, bool is_direct, const char *storage_
        ret = _media_svc_update_item_with_data(is_direct, storage_id, &content_info, uid);
 
        if (ret == MS_MEDIA_ERR_NONE) {
-               media_svc_debug("Update is successful. Sending noti for this");
-               _media_svc_publish_noti(MS_MEDIA_ITEM_UPDATE, content_info.path, noti_item->media_type, noti_item->media_uuid, noti_item->mime_type);
+               /* Except scanner case */
+               if (!is_direct) {
+                       media_svc_debug("Update is successful. Sending noti for this");
+                       _media_svc_publish_noti(MS_MEDIA_ITEM_UPDATE, content_info.path, noti_item->media_type, noti_item->media_uuid, noti_item->mime_type);
+               } else {
+                       /* To avoid over-occupying memory, update per BATCH_REQUEST_MAX. */
+                       if (++g_media_svc_insert_item_cur_data_cnt == BATCH_REQUEST_MAX) {
+                               ret = _media_svc_list_query_do(MEDIA_SVC_QUERY_INSERT_ITEM, uid);
+                               media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
+                               g_media_svc_insert_item_cur_data_cnt = 0;
+                       }
+               }
        } else {
                media_svc_error("_media_svc_update_item_with_data failed : %d", ret);
        }