From 241387101cab0e51bd366ae4b09db90ff04b60dc Mon Sep 17 00:00:00 2001
From: chenchen <chenchen310@huawei.com>
Date: Wed, 27 Nov 2024 16:52:37 +0800
Subject: [PATCH] after ota reset the thumbs flag

Signed-off-by: chenchen <chenchen310@huawei.com>
---
 .../clouddisk_database/include/clouddisk_db_const.h  |  3 ++-
 services/clouddisk_database/include/file_column.h    |  2 ++
 .../clouddisk_database/src/clouddisk_rdbstore.cpp    | 12 ++++++++++++
 services/clouddisk_database/src/file_column.cpp      |  3 +++
 4 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/services/clouddisk_database/include/clouddisk_db_const.h b/services/clouddisk_database/include/clouddisk_db_const.h
index 39fb2710..db6ab3b7 100644
--- a/services/clouddisk_database/include/clouddisk_db_const.h
+++ b/services/clouddisk_database/include/clouddisk_db_const.h
@@ -25,7 +25,7 @@ namespace CloudDisk {
 //rdb
 const std::string CLOUD_DISK_DATABASE_NAME = "clouddisk.db";
 //rdb version
-const int32_t CLOUD_DISK_RDB_VERSION = 14;
+const int32_t CLOUD_DISK_RDB_VERSION = 15;
 enum {
     VERSION_ADD_PARENT_CLOUD_ID_INDEX = 2,
     VERSION_FIX_FILE_TRIGGER = 3,
@@ -40,6 +40,7 @@ enum {
     VERSION_REMOVE_CLOUD_SYNC_FUNC_TRIGGER = 12,
     VERSION_ADD_ATTRIBUTE = 13,
     VERSION_ADD_THM_FLAG = 14,
+    VERSION_RESET_THUMBS_FLAG = 15,
 };
 // drive kit
 const std::string DK_FILE_NAME = "fileName";
diff --git a/services/clouddisk_database/include/file_column.h b/services/clouddisk_database/include/file_column.h
index e43a2d37..a2e9d62d 100644
--- a/services/clouddisk_database/include/file_column.h
+++ b/services/clouddisk_database/include/file_column.h
@@ -91,6 +91,8 @@ public:
 
     static const std::string ADD_UPLOAD_FLAG;
 
+    static const std::string RESET_THUMBS_FLAG;
+
     // Query FILES_TABLE for FileSystem
     static const std::vector<std::string> FILE_SYSTEM_QUERY_COLUMNS;
 
diff --git a/services/clouddisk_database/src/clouddisk_rdbstore.cpp b/services/clouddisk_database/src/clouddisk_rdbstore.cpp
index b1601f8f..08ee64bd 100644
--- a/services/clouddisk_database/src/clouddisk_rdbstore.cpp
+++ b/services/clouddisk_database/src/clouddisk_rdbstore.cpp
@@ -1681,6 +1681,15 @@ static void VersionAddThmFlag(RdbStore &store)
     }
 }
 
+static void VersionResetThmFlag(RdbStore &store)
+{
+    const string resetThmFlag = FileColumn::RESET_THUMBS_FLAG;
+    int32_t ret = store.ExecuteSql(resetThmFlag);
+    if (ret != NativeRdb::E_OK) {
+        LOGE("reset thm_flag fail, err %{public}d", ret);
+    }
+}
+
 static int32_t GetMetaBaseData(CloudDiskFileInfo &info, const shared_ptr<ResultSet> resultSet)
 {
     RETURN_ON_ERR(CloudDiskRdbUtils::GetString(FileColumn::CLOUD_ID, info.cloudId, resultSet));
@@ -1910,6 +1919,9 @@ int32_t CloudDiskDataCallBack::OnUpgrade(RdbStore &store, int32_t oldVersion, in
     if (oldVersion < VERSION_ADD_THM_FLAG) {
         VersionAddThmFlag(store);
     }
+    if (oldVersion < VERSION_RESET_THUMBS_FLAG) {
+        VersionResetThmFlag(store);
+    }
     return NativeRdb::E_OK;
 }
 }
\ No newline at end of file
diff --git a/services/clouddisk_database/src/file_column.cpp b/services/clouddisk_database/src/file_column.cpp
index 1ac03ad1..3d7b0912 100644
--- a/services/clouddisk_database/src/file_column.cpp
+++ b/services/clouddisk_database/src/file_column.cpp
@@ -109,6 +109,9 @@ const std::string FileColumn::ADD_LCD_FLAG = "ALTER Table " + FILES_TABLE +
 const std::string FileColumn::ADD_UPLOAD_FLAG = "ALTER Table " + FILES_TABLE +
     " ADD COLUMN " + NO_NEED_UPLOAD + " INT DEFAULT 0";
 
+const std::string FileColumn::RESET_THUMBS_FLAG = "UPDATE " + FILES_TABLE +
+    " SET " + THM_FLAG + " = 0, " + LCD_FLAG + " = 0 WHERE " + NO_NEED_UPLOAD + " = 0";
+
 const std::vector<std::string> FileColumn::FILE_SYSTEM_QUERY_COLUMNS = {
     FILE_NAME,
     CLOUD_ID,
-- 
Gitee