From: Caisking <3449750381@qq.com> Date: Mon, 1 Apr 2024 07:14:11 +0000 (+0800) Subject: 优化表盘存储,增加稳定性; X-Git-Tag: release_V1.2.70_20241020_135402~1241^2~3 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=f3a86c40210952465110f97cd1a719fd36a2920b;p=mirrors%2FFD230.git 优化表盘存储,增加稳定性; --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h index 81da5510b..019e32662 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h @@ -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 &data); void WriteJsonData_VectorDouble(cJSON *json_obj, const char *field_name, const std::vector &data); void WriteJsonData_VectorString(cJSON *json_obj, const char *field_name, const std::vector &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; diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp index ef1454cb0..47f27e0bf 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp @@ -403,24 +403,27 @@ namespace OHOS return HeartRateOrBloodOxygenQuickAccessSwitch; } + /* --------------------------------- 表盘信息操作 --------------------------------- */ void ConfigModel::SetDialId(dial_config *dial) { dialid_ = dial->dialid; dialname_ = dial->dialname; - WriteJsonData(GetcJSON(), "Dial_Id", dialid_); - WriteJsonData(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(GetcJSON(), "Dial_Id")); - dialname_ = (ReadJsonData(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; diff --git a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h index cfe39e2b5..e1dc61efe 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/include/DialUpdateModel.h @@ -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}; }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp index 93483ed18..3efc336c8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/dialupdate/src/DialUpdateModel.cpp @@ -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; // 释放动态分配的内存 } } diff --git a/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/ShutDownAnimatorView.h b/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/ShutDownAnimatorView.h index 77e2daf3e..351457b6c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/ShutDownAnimatorView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/ShutDownAnimatorView.h @@ -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 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp index 9090ab33a..c34472c8a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_aquatic/src/TraingAquaticView.cpp @@ -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 的适配器 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp index 05fe6cb09..9cdf18118 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_ball/src/TraingBallView.cpp @@ -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 的适配器 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp index 715bf369f..03c7e0ec0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_dance/src/TraingDanceView.cpp @@ -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 的适配器 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp index 987c56dfa..86c12183e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_fitness/src/TraingFitnessView.cpp @@ -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 的适配器 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_other/src/TraingOtherView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_other/src/TraingOtherView.cpp index 935da9d23..1d85526ce 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_other/src/TraingOtherView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_other/src/TraingOtherView.cpp @@ -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 的适配器 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp index ae10b334c..7fdc25778 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_list_rest/src/TraingRestView.cpp @@ -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 的适配器