优化表盘存储,增加稳定性;
authorCaisking <3449750381@qq.com>
Mon, 1 Apr 2024 07:14:11 +0000 (15:14 +0800)
committerCaisking <3449750381@qq.com>
Mon, 1 Apr 2024 07:21:47 +0000 (15:21 +0800)
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h
code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp
code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h
code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp
code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/ShutDownAnimatorView.h
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_other/src/TraingOtherView.cpp
code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp

index 81da551..019e326 100644 (file)
@@ -8,6 +8,13 @@
 #include "wearable_log.h"
 #include "components/ui_image_animator.h"
 #include "vector"
+
+struct dial_config
+{
+    std::string dialname;
+    int dialid;
+};
+extern struct dial_config global_dial_config;
 namespace OHOS
 {
     class ConfigModel
@@ -19,11 +26,6 @@ namespace OHOS
             char *oper;
             // uint8_t signal;
         };
-        struct dial_config
-        {
-            char *dialname;
-            int dialid;
-        };
 
     public:
         static ConfigModel *GetInstance();
@@ -47,7 +49,7 @@ namespace OHOS
         void WriteJsonData_VectorInt(cJSON *json_obj, const char *field_name, const std::vector<int> &data);
         void WriteJsonData_VectorDouble(cJSON *json_obj, const char *field_name, const std::vector<double> &data);
         void WriteJsonData_VectorString(cJSON *json_obj, const char *field_name, const std::vector<std::string> &data);
-        
+
         void WriteJsonToFile(const char *json_string, const char *file_path);
         /* -------------------------------------------------------------------------- */
         void ShowReadJsonData(void);
@@ -92,7 +94,7 @@ namespace OHOS
         bool TradionalBlueToothToggleButtonState{false};     // 用来记录蓝牙开关状态,默认关闭状态
         int HeartRateOrBloodOxygenQuickAccessSwitch{0};      // 心率或血氧快速访问开关,默认快速访问血氧打开
         int dialid_;                                         // 表盘Id
-        char *dialname_;                                     // 表盘名称
+        std::string dialname_;                               // 表盘名称
         int languageid_;                                     // 语言状态
         char *imei_str = NULL;
         char *pyVer = NULL;
index ef1454c..47f27e0 100644 (file)
@@ -403,24 +403,27 @@ namespace OHOS
         return HeartRateOrBloodOxygenQuickAccessSwitch;
     }
 
+    /* --------------------------------- 表盘信息操作 --------------------------------- */
     void ConfigModel::SetDialId(dial_config *dial)
     {
         dialid_ = dial->dialid;
         dialname_ = dial->dialname;
-        WriteJsonData<int>(GetcJSON(), "Dial_Id", dialid_);
-        WriteJsonData<char *>(GetcJSON(), "Dial_Name", dialname_);
+        // 写入json数据
+        WriteJsonData_Int(GetcJSON(), "Dial_Id", dialid_);
+        WriteJsonData_String(GetcJSON(), "Dial_Name", dialname_.c_str());
     }
 
     dial_config *ConfigModel::GetDialId()
     {
+        // 读取json数据
         dialid_ = (ReadJsonData<int>(GetcJSON(), "Dial_Id"));
-        dialname_ = (ReadJsonData<char *>(GetcJSON(), "Dial_Name"));
+        dialname_ = ReadJsonData_String(GetcJSON(), "Dial_Name");
         dial_config *dial = new dial_config();
         dial->dialid = dialid_;
         dial->dialname = dialname_;
         return dial;
     }
-
+    /* -------------------------------------------------------------------------- */
     void ConfigModel::SetLanguage(int language)
     {
         languageid_ = language;
index cfe39e2..e1dc61e 100644 (file)
@@ -51,6 +51,7 @@ namespace OHOS
         virtual ~DialUpdateModel();
         std::string dialConfigPath = "user/res/dialupdate/dial_config.json"; // JSON文件路径
         uint8_t Current_dial;                                                // 目前表盘
+        std::string Current_dialname;                                        // 表盘名称
         bool readstaust{false};
     };
 }
index 93483ed..3efc336 100644 (file)
@@ -112,27 +112,32 @@ namespace OHOS
      */
     uint8_t DialUpdateModel::GetDialConfigPath()
     {
-        // 避免多次访问
         if (!readstaust)
         {
             read_dial();
             readstaust = true;
         }
+
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetDialConfigPath:%d", Current_dial);
+
         dial_config *dial = ConfigModel::GetInstance()->GetDialId();
-        char *Current_dialname = dial.dialname;
-        Current_dial = dial.dialid;
-        if (strcmp(dialInfo_1[Current_dial].title, Current_dialname) != 0)
+        Current_dialname = dial->dialname;
+        Current_dial = dial->dialid;
+
+        if (strcmp(dialInfo_1[Current_dial].title, Current_dialname.c_str()) != 0)
         {
             for (int i = 0; i < dial_num; i++)
             {
-                if (strcmp(Current_dialname, dialInfo_1[i].title) == 0)
+                if (strcmp(Current_dialname.c_str(), dialInfo_1[i].title) == 0)
                 {
                     Current_dial = i;
                     break;
                 }
             }
         }
+
+        delete dial; // 释放动态分配的内存
+
         return Current_dial;
     }
 
@@ -145,11 +150,12 @@ namespace OHOS
         if (dialpathid != Current_dial)
         {
             Current_dial = dialpathid; // 更新表盘Id
-            char *Current_dialname = dialInfo_1[Current_dial].title;
+            Current_dialname = dialInfo_1[Current_dial].title;
             dial_config *dial = new dial_config();
             dial->dialid = Current_dial;
             dial->dialname = Current_dialname;
             ConfigModel::GetInstance()->SetDialId(dial);
+            delete dial; // 释放动态分配的内存
         }
     }
 
index 77e2daf..351457b 100644 (file)
@@ -18,7 +18,7 @@ namespace OHOS
     static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_Y = 0;
     static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_W = 466;
     static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_H = 466;
-    static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 36; // 图片帧数
+    static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 30; // 图片帧数
     static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_TIME = 150;           // 图片更新间隔
     static constexpr char *ShutDownPaths = "/user/res/RebootAndShutDown/ShutDown/"; //关机图片路径
     class ShutDownAnimatorView
index 9090ab3..c34472c 100644 (file)
@@ -61,7 +61,7 @@ namespace OHOS
 
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
-        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_WATER_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
         title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
         scrollView->Add(title);
         // UIList 的适配器
index 05fe6cb..9cdf181 100644 (file)
@@ -61,7 +61,7 @@ namespace OHOS
 
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
-        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_BALL_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
         title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
         scrollView->Add(title);
         // UIList 的适配器
index 715bf36..03c7e0e 100644 (file)
@@ -61,7 +61,7 @@ namespace OHOS
 
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
-        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_DANCING_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
         title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
         scrollView->Add(title);
         // UIList 的适配器
index 987c56d..86c1218 100644 (file)
@@ -59,7 +59,7 @@ namespace OHOS
 
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
-        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_EXERCISE_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
         title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
         scrollView->Add(title);
         // UIList 的适配器
index 935da9d..1d85526 100644 (file)
@@ -61,7 +61,7 @@ namespace OHOS
 
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
-        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_OTHER_TITLE, DEFAULT_VECTOR_FONT_FILENAME, 30);
         title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
         scrollView->Add(title);
         // UIList 的适配器
index ae10b33..7fdc257 100644 (file)
@@ -43,7 +43,7 @@ namespace OHOS
     {
         p_TraingRestListAdapter->AddItem(item);
     }
-   void TraingRestView::InitView()
+    void TraingRestView::InitView()
     {
         if (scrollView == nullptr)
         {
@@ -61,7 +61,7 @@ namespace OHOS
 
         /* -------------------------------------------------------------------------- */
         // 初始化Lable
-        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_EXTREME_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        TraingModel::GetInstance()->InitLabelExt(title, 125, 52, 200, 60, "label1", STR_RECREATIONAL_LIST, DEFAULT_VECTOR_FONT_FILENAME, 30);
         title->SetStyle(STYLE_TEXT_COLOR, Color::Green().full);
         scrollView->Add(title);
         // UIList 的适配器