Fix external storage related code 73/243773/1
authorMinje Ahn <minje.ahn@samsung.com>
Thu, 10 Sep 2020 04:31:47 +0000 (13:31 +0900)
committerMinje Ahn <minje.ahn@samsung.com>
Thu, 10 Sep 2020 04:31:47 +0000 (13:31 +0900)
Fixed an issue where media was visible even when external storage was unmounted.

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

index 451dae8..32e54fc 100644 (file)
@@ -385,7 +385,7 @@ int ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid)
 
        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);
 #else
-       char *sql = sqlite3_mprintf("SELECT media_thumbnail_path FROM media WHERE validity IN (%d, %d) AND media_thumbnail_path IS NOT NULL", MS_INVALID, MS_SCANNING);
+       char *sql = sqlite3_mprintf("SELECT media_thumbnail_path FROM media WHERE validity IN (%d, %d) AND media_thumbnail_path IS NOT NULL AND storage_uuid=%Q", MS_INVALID, MS_SCANNING, storage_id);
 #endif
        MS_DBG_SLOG("[SQL query] : %s", sql);
 
@@ -406,7 +406,7 @@ int ms_delete_invalid_items(sqlite3 *handle, const char *storage_id, uid_t uid)
 #ifdef _USE_TVPD_MODE
        sql = sqlite3_mprintf("DELETE FROM '%q' WHERE validity IN (%d, %d)", storage_id, MS_INVALID, MS_SCANNING);
 #else
-       sql = sqlite3_mprintf("DELETE FROM media WHERE validity IN (%d, %d)", MS_INVALID, MS_SCANNING);
+       sql = sqlite3_mprintf("DELETE FROM media WHERE validity IN (%d, %d) AND storage_uuid=%Q", MS_INVALID, MS_SCANNING, storage_id);
 #endif
 
        ret = media_db_update_db_direct(sql, uid);
@@ -537,7 +537,7 @@ int ms_delete_invalid_folder(const char *storage_id, uid_t uid)
 
        sql = sqlite3_mprintf("DELETE FROM folder WHERE storage_uuid='%q' AND validity IN (%d, %d)", storage_id, MS_INVALID, MS_SCANNING);
 #else
-       sql = sqlite3_mprintf("DELETE FROM folder WHERE validity IN (%d, %d)", MS_INVALID, MS_SCANNING);
+       sql = sqlite3_mprintf("DELETE FROM folder WHERE validity IN (%d, %d) AND storage_uuid=%Q", MS_INVALID, MS_SCANNING, storage_id);
 #endif
        ret = media_db_update_db_direct(sql, uid);