Fix folder scanning error 09/235209/2
authorMinje Ahn <minje.ahn@samsung.com>
Tue, 2 Jun 2020 23:07:25 +0000 (08:07 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Tue, 2 Jun 2020 23:44:50 +0000 (08:44 +0900)
Fixed an issue where validity was not normally updated when the modification time of the file was changed.

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

index 1722c2a..fe4a42f 100755 (executable)
@@ -281,7 +281,7 @@ int _media_svc_update_item_with_data(bool is_direct, media_svc_content_info_s *c
 
        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;",
                                DB_TABLE_MEDIA,
                                content_info->size,
                                content_info->modified_time,
index aff037b..60aab6b 100755 (executable)
@@ -529,8 +529,18 @@ int media_svc_refresh_item(sqlite3 *handle, bool is_direct, const char *storage_
        ret = _media_svc_update_item_with_data(is_direct, &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_ITEM_COUNT_MAX. */
+                       if (++g_media_svc_cur_data_cnt == BATCH_ITEM_COUNT_MAX) {
+                               ret = _media_svc_list_query_do(MEDIA_SVC_QUERY_SCANNER, uid);
+                               media_svc_retv_del_if(ret != MS_MEDIA_ERR_NONE, ret, &content_info);
+                               g_media_svc_cur_data_cnt = 0;
+                       }
+               }
        } else {
                media_svc_error("_media_svc_update_item_with_data failed : %d", ret);
        }