修复自定义表盘读取配置异常bug
authorCaisking <3449750381@qq.com>
Mon, 2 Sep 2024 08:58:50 +0000 (16:58 +0800)
committerCaisking <3449750381@qq.com>
Mon, 2 Sep 2024 08:58:50 +0000 (16:58 +0800)
code/sdk/application/wearable/fd230app/nativeui/set_dial/src/SetDialModel.cpp

index 0367f9a..0f9c730 100644 (file)
@@ -13,6 +13,7 @@
 #include <iomanip>
 #include <iostream>
 #include <fstream>
+#include <array>   
 #include <stdio.h>
 #include <sys/stat.h>
 #include <unistd.h>
@@ -579,8 +580,7 @@ namespace OHOS
     */
     bool SetDialModel::loadDialConfig(int Id, DialLayout &layout)
     {
-        std::string filename = std::string(APP_CUSTOM_DIAL_PATH) + "/" + std::to_string(Id) + ".bin";
-
+        std::string filename = GetSaveDir(Id) + "/" + std::to_string(Id) + ".bin";
         // 打开文件
         std::ifstream configFile(filename, std::ios::binary);
         if (!configFile.is_open())
@@ -590,12 +590,12 @@ namespace OHOS
         }
 
         // 读取配置
-        char settings[3]; // 读取3个字节
-        configFile.read(settings, sizeof(settings));
-        if (configFile.gcount() != sizeof(settings))
+        std::array<char, 3> settings;
+        configFile.read(settings.data(), settings.size());
+
+        if (configFile.gcount() != settings.size())
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to read config file or insufficient file content!");
-            configFile.close();
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to read configuration: %s", filename.c_str());
             return false; // 读取失败
         }
 
@@ -605,7 +605,6 @@ namespace OHOS
         layout.colorTypeSet = static_cast<ColorTypeSet>(settings[2]);         // 字体颜色
 
         // 关闭文件
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to read config file or insufficient file content!");
         configFile.close();
         return true; // 成功读取配置
     }