From 99d4cebf3a91aa3351fdf4d70db54b0eb1256a4f Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Mon, 1 Apr 2024 12:55:49 +0800 Subject: [PATCH] =?utf8?q?ConfigModel=E4=B8=ADjson=E6=95=B0=E6=8D=AE?= =?utf8?q?=E7=9A=84=E8=AF=BB=E5=8F=96=E4=B8=8E=E5=86=99=E5=85=A5=E4=B8=8D?= =?utf8?q?=E5=9C=A8=E9=87=87=E7=94=A8=E6=A8=A1=E6=9D=BF=EF=BC=8C=E7=8E=B0?= =?utf8?q?=E5=9C=A8=E6=98=AF=E6=A0=B9=E6=8D=AE=E4=B8=8D=E5=90=8C=E6=95=B0?= =?utf8?q?=E6=8D=AE=E7=B1=BB=E5=9E=8B=EF=BC=88=E5=AD=97=E7=AC=A6=E4=B8=B2?= =?utf8?q?=E3=80=81=E6=95=B0=E5=AD=97=E3=80=81=E5=B8=83=E5=B0=94=E5=80=BC?= =?utf8?q?=E5=92=8C=E6=95=B0=E7=BB=84=E5=A4=A7=E5=B0=8F=EF=BC=89=E6=9D=A5?= =?utf8?q?=E4=BD=BF=E7=94=A8=E7=9B=B8=E5=BA=94=E7=9A=84set=E5=92=8Cget?= =?utf8?q?=E5=87=BD=E6=95=B0=E6=9D=A5=E5=86=99=E5=85=A5=E6=88=96=E8=AF=BB?= =?utf8?q?=E5=8F=96JSON=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../nativeui/applist/src/ApplistModel.cpp | 2 +- .../fd230app/nativeui/config/ConfigModel.json | 3 +- .../nativeui/config/include/ConfigModel.h | 24 +- .../nativeui/config/src/ConfigModel.cpp | 290 +++++++++++++++++- .../language/Language_xml/input_list_en.txt | 3 +- .../language/Language_xml/input_list_zh.txt | 3 +- .../language/Language_xml/language_en.xml | 1 + .../language/Language_xml/language_zh.xml | 1 + .../fd230app/nativeui/language/font/en.lang | Bin 2916 -> 2929 bytes .../language/font/ui_resource_string.h | 31 +- .../fd230app/nativeui/language/font/zh.lang | Bin 2860 -> 2871 bytes .../language/include/LanguageSwitchModel.h | 21 +- .../include/LanguageSwitchPresenter.h | 3 +- .../language/src/LanguageSwitchModel.cpp | 25 +- .../language/src/LanguageSwitchPresenter.cpp | 6 +- .../language/src/LanguageSwitchView.cpp | 18 +- 16 files changed, 380 insertions(+), 51 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp index 50d158867..01bb17e1b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp @@ -37,7 +37,7 @@ namespace OHOS {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, "通话记录", nullptr}, {VIEW_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "电话", nullptr}, {VIEW_CONNECT_PHONE, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, "连接手机", nullptr}, - {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, "语言切换", nullptr}, + //{VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, "语言切换", nullptr}, #ifdef SUPPORT_ALIPAY_SEC {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, "支付宝", nullptr}, #endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json b/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json index 8850d8c78..838609752 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json +++ b/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json @@ -6,5 +6,6 @@ "HeartRateOrBloodOxygenQuickAccessSwitch": 0, "Dial_Id": 0, "Dial_Name": "KUMI", - "Language_Id": 0 + "Language_Id": 0, + "Language_Code": "zh" } \ No newline at end of file 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 b42db7c95..cf8caeda0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h @@ -7,6 +7,7 @@ #include "../../../../../../open_source/openharmony/third_party/cJSON/cJSON.h" #include "wearable_log.h" #include "components/ui_image_animator.h" +#include "vector" namespace OHOS { class ConfigModel @@ -27,6 +28,23 @@ namespace OHOS T ReadJsonData(const cJSON *json_obj, const char *field_name); template void WriteJsonData(cJSON *json_obj, const char *field_name, T data); + + /* -------------------------------------------------------------------------- */ + std::string ReadJsonData_String(const cJSON *json_obj, const char *field_name); + double ReadJsonData_Number(const cJSON *json_obj, const char *field_name); + bool ReadJsonData_Bool(const cJSON *json_obj, const char *field_name); + int ReadJsonData_ArraySize(const cJSON *json_obj, const char *field_name); + + void WriteJsonData_Int(cJSON *json_obj, const char *field_name, int data); + void WriteJsonData_Double(cJSON *json_obj, const char *field_name, double data); + void WriteJsonData_Bool(cJSON *json_obj, const char *field_name, bool data); + void WriteJsonData_String(cJSON *json_obj, const char *field_name, const char *data); + 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); void Init(void); /* -------------------------------- set与get方法 ------------------------------- */ @@ -50,7 +68,8 @@ namespace OHOS void Setimei(char *str); void SetpyVer(char *str); void SetmoderVer(char *str); - + void SetLanguageCode(char *languagecode); + const char *GetLanguageCode(void); // -------------------------------------------------------------------------- */ private: ConfigModel(); // 私有构造函数,确保无法在外部实例化 @@ -72,7 +91,7 @@ namespace OHOS char *imei_str = NULL; char *pyVer = NULL; char *moderVer = NULL; - + std::string LanguageCode = "zh"; cat1_msg_config cat1_msg_config_t; /* -------------------------------------------------------------------------- */ }; @@ -150,6 +169,7 @@ namespace OHOS cJSON_ReplaceItemInObject(json_obj, field_name, data_obj); char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); if (jsonString != nullptr) { FILE *file = fopen(filePath.c_str(), "wb"); 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 447d4f922..c9b5670ba 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp @@ -4,12 +4,12 @@ namespace OHOS { ConfigModel::ConfigModel() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ConfigModel::ConfigModel"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " ConfigModel::ConfigModel"); } ConfigModel::~ConfigModel() { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ConfigModel::~ConfigModel"); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, " ConfigModel::~ConfigModel"); } ConfigModel *ConfigModel::GetInstance() @@ -45,6 +45,280 @@ namespace OHOS return false; } + /*1.读取字符串*/ + + /* + * @brief: 读取字符串 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @return {std::string} 读取到的字符串 + */ + std::string ConfigModel::ReadJsonData_String(const cJSON *json_obj, const char *field_name) + { + const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name); + if (field_item != NULL && cJSON_IsString(field_item)) + { + return std::string(field_item->valuestring); + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found or not a string"); + return "-1"; // 或者返回一个明确的错误字符串 + } + + /* + * @brief 读取数字 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @return {double} 读取到的数字 + */ + double ConfigModel::ReadJsonData_Number(const cJSON *json_obj, const char *field_name) + { + const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name); + if (field_item != NULL && cJSON_IsNumber(field_item)) + { + return field_item->valuedouble; + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found or not a number"); + return -1; // 或者返回一个错误值 + } + + /* + * @brief 读取布尔值 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @return {bool} 读取到的布尔值 + */ + bool ConfigModel::ReadJsonData_Bool(const cJSON *json_obj, const char *field_name) + { + const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name); + if (field_item != NULL && cJSON_IsBool(field_item)) + { + return field_item->valueint != 0; + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found or not a boolean"); + return false; // 或者返回一个错误值 + } + + /* + * @brief 读取数组大小 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @return {int} 数组大小 + */ + int ConfigModel::ReadJsonData_ArraySize(const cJSON *json_obj, const char *field_name) + { + const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name); + if (field_item != NULL && cJSON_IsArray(field_item)) + { + return cJSON_GetArraySize(field_item); + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found or not an array"); + return -1; // 或者返回一个错误值,表示没有找到或不是数组 + } + + /* + * @brief 写入int数据 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @param {int} 要写入的数据 + */ + void ConfigModel::WriteJsonData_Int(cJSON *json_obj, const char *field_name, int data) + { + if (json_obj == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!"); + return; + } + + cJSON *data_obj = cJSON_CreateNumber(static_cast(data)); + if (data_obj != nullptr) + { + cJSON_ReplaceItemInObject(json_obj, field_name, data_obj); + char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); + // Write to file as before + WriteJsonToFile(jsonString, filePath.c_str()); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create cJSON object"); + } + } + + /* + * @brief 写入double数据 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @param {double} 要写入的数据 + */ + void ConfigModel::WriteJsonData_Double(cJSON *json_obj, const char *field_name, double data) + { + if (json_obj == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!"); + return; + } + + cJSON *data_obj = cJSON_CreateNumber(data); + if (data_obj != nullptr) + { + cJSON_ReplaceItemInObject(json_obj, field_name, data_obj); + char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); + // Write to file as before + WriteJsonToFile(jsonString, filePath.c_str()); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create cJSON object"); + } + } + + /* + * @brief 写入Bool数据 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @param {bool} 要写入的数据 + */ + void ConfigModel::WriteJsonData_Bool(cJSON *json_obj, const char *field_name, bool data) + { + if (json_obj == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!"); + return; + } + + cJSON *data_obj = cJSON_CreateBool(data); + if (data_obj != nullptr) + { + cJSON_ReplaceItemInObject(json_obj, field_name, data_obj); + char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); + // Write to file as before + WriteJsonToFile(jsonString, filePath.c_str()); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create cJSON object"); + } + } + + /* + * @brief 写入字符串数据 + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @param {const char *} 要写入的数据 + */ + void ConfigModel::WriteJsonData_String(cJSON *json_obj, const char *field_name, const char *data) + { + if (json_obj == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!"); + return; + } + + cJSON *data_obj = cJSON_CreateString(data); + if (data_obj != nullptr) + { + cJSON_ReplaceItemInObject(json_obj, field_name, data_obj); + char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); + // Write to file as before + WriteJsonToFile(jsonString, filePath.c_str()); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to create cJSON object"); + } + } + + void ConfigModel::WriteJsonData_VectorInt(cJSON *json_obj, const char *field_name, const std::vector &data) + { + if (json_obj == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!"); + return; + } + + cJSON *array_obj = cJSON_CreateArray(); + for (const auto &item : data) + { + cJSON_AddItemToArray(array_obj, cJSON_CreateNumber(static_cast(item))); + } + cJSON_ReplaceItemInObject(json_obj, field_name, array_obj); + char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); + // Write to file as before + WriteJsonToFile(jsonString, filePath.c_str()); + } + + void ConfigModel::WriteJsonData_VectorDouble(cJSON *json_obj, const char *field_name, const std::vector &data) + { + if (json_obj == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!"); + return; + } + + cJSON *array_obj = cJSON_CreateArray(); + for (const auto &item : data) + { + cJSON_AddItemToArray(array_obj, cJSON_CreateNumber(item)); + } + cJSON_ReplaceItemInObject(json_obj, field_name, array_obj); + char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); + // Write to file as before + WriteJsonToFile(jsonString, filePath.c_str()); + } + + void ConfigModel::WriteJsonData_VectorString(cJSON *json_obj, const char *field_name, const std::vector &data) + { + if (json_obj == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "json_obj is nullptr!"); + return; + } + + cJSON *array_obj = cJSON_CreateArray(); + for (const auto &item : data) + { + cJSON_AddItemToArray(array_obj, cJSON_CreateString(item.c_str())); + } + cJSON_ReplaceItemInObject(json_obj, field_name, array_obj); + char *jsonString = cJSON_Print(json_obj); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "有格式的方式打印Json:\n%s\n", jsonString); + // Write to file as before + WriteJsonToFile(jsonString, filePath.c_str()); + } + + /* + * @brief 写入 JSON 数据到文件 + * @param {char} json字符串 + * @param {char} json文件路径 + */ + void ConfigModel::WriteJsonToFile(const char *json_string, const char *file_path) + { + if (json_string == NULL || file_path == NULL) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Invalid input parameters!"); + return; + } + + FILE *fp = fopen(file_path, "w+"); + if (fp == NULL) + { + printf("Failed to open file: %s\n", file_path); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to open file: %s", file_path); + return; + } + + fputs(json_string, fp); + fclose(fp); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "JSON data written to file: %s", file_path); + } + + /* -------------------------------------------------------------------------- */ + void ConfigModel::Init(void) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConfigModel::Init"); @@ -153,6 +427,18 @@ namespace OHOS return languageid_; } + void ConfigModel::SetLanguageCode(char *languagecode) + { + LanguageCode = languagecode; + WriteJsonData_String(GetcJSON(), "Language_Code", LanguageCode.c_str()); // 应该放到关机时候写 + } + + const char *ConfigModel::GetLanguageCode(void) + { + LanguageCode = ReadJsonData_String(GetcJSON(), "Language_Code"); // 应该放到开机时候读 + return LanguageCode.c_str(); + } + char *ConfigModel::Getimei() { return imei_str; diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_en.txt b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_en.txt index 5f4175cf9..067d7d641 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_en.txt +++ b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_en.txt @@ -186,4 +186,5 @@ STR_DANCING_TITLE,Dance Sport STR_BALL_LIST_TITLE,Ball Sport STR_OTHER_TITLE,Other Sport STR_EXERCISE_TITLE,Exercise Sport -STR_TRAINING,Training \ No newline at end of file +STR_TRAINING,Training +STR_LANGUAGE,Language \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt index 16603729e..d3ab46d28 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt +++ b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt @@ -186,4 +186,5 @@ STR_DANCING_TITLE,舞蹈运动 STR_BALL_LIST_TITLE,球类运动 STR_OTHER_TITLE,其他运动 STR_EXERCISE_TITLE,健身运动 -STR_TRAINING,训练 \ No newline at end of file +STR_TRAINING,训练 +STR_LANGUAGE,语言 \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_en.xml b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_en.xml index 84d8e0935..3dc014ad8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_en.xml +++ b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_en.xml @@ -188,4 +188,5 @@ + diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml index 7604c2f49..c9ceec399 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml +++ b/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml @@ -188,4 +188,5 @@ + diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang index a3ed1b8d68e307e24ee980aa680d7be8ee6f5a63..972b1181997493d455d254062f4f4daa034a42ce 100644 GIT binary patch delta 47 rcmaDN_EAi9QCUGyY90d$*t=2mBNJoXW@hF@4o;uMy!6t<^i&1_BW(-l delta 35 fcmew;_C!onKIUytY90d$*t1deBhzLs<~R-jtG@_& diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h b/code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h index ba90556f0..150dc6132 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h +++ b/code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h @@ -1,15 +1,15 @@ -/* -* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved. -* Description: language -* Author: Graphic develop team -* Create: 2021-07-06 -*/ - -#ifndef UI_RESOURCE_STRING_H -#define UI_RESOURCE_STRING_H -#include -namespace OHOS { -enum UIResourceTextId : uint16_t { +/* +* Copyright (c) xxxxxxxx Technologies Co., Ltd. 2021-2021. All rights reserved. +* Description: language +* Author: Graphic develop team +* Create: 2021-07-06 +*/ + +#ifndef UI_RESOURCE_STRING_H +#define UI_RESOURCE_STRING_H +#include +namespace OHOS { +enum UIResourceTextId : uint16_t { STR_EXERCISE_GENERAL = 0, STR_EXERCISE_FREETRAINING = 1, STR_EXERCISE_RESISTANCETRAINING = 2, @@ -198,10 +198,11 @@ enum UIResourceTextId : uint16_t { STR_OTHER_TITLE = 185, STR_EXERCISE_TITLE = 186, STR_TRAINING = 187, - STR_MAX_ID = 188, + STR_LANGUAGE = 188, + STR_MAX_ID = 189, }; // UIResourceTextId - -enum FontLanguageId : uint8_t { + +enum FontLanguageId : uint8_t { LANGUAGE_ID_ZH, LANGUAGE_ID_EN, LANGUAGE_ID_MAX diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang index 18730d308c35b370169ec3cb2de6c2c922013b59..98c9f70fa8de384d96439c30b9a820e05767af82 100644 GIT binary patch delta 45 qcmZ1@wp~p0g`ec)stg7cuy>>AMGetLanguageCode() != nullptr) + { + //printf("%s\n", p_ConfigModel->GetLanguageCode()); + CurLanguageCode = const_cast(p_ConfigModel->GetLanguageCode()); + } + } + + LanguageSwitchModel::~LanguageSwitchModel() + { + } + LanguageSwitchModel &LanguageSwitchModel::GetInstance() { static LanguageSwitchModel instance; @@ -21,7 +34,7 @@ namespace OHOS /* * @brief: 设置当前语言code */ - void LanguageSwitchModel::SetCurLanguageCode(char * curlanguagecode) + void LanguageSwitchModel::SetCurLanguageCode(char *curlanguagecode) { CurLanguageCode = curlanguagecode; } @@ -29,7 +42,7 @@ namespace OHOS /* * @brief 获取当前设置的语言code */ - char * LanguageSwitchModel::GetCurLanguageCode(void) + char *LanguageSwitchModel::GetCurLanguageCode(void) { return CurLanguageCode; } @@ -37,7 +50,7 @@ namespace OHOS /* * @brief 设置上一次语言code */ - void LanguageSwitchModel::SetLastLanguageCode(char * prelanguagecode) + void LanguageSwitchModel::SetLastLanguageCode(char *prelanguagecode) { PreLanguageCode = prelanguagecode; } @@ -45,7 +58,7 @@ namespace OHOS /* * @brief 获取上一次设置的语言code */ - char * LanguageSwitchModel::GetLastLanguageCode(void) + char *LanguageSwitchModel::GetLastLanguageCode(void) { return PreLanguageCode; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp index 2e5828d03..17cf4fe04 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-03-28 14:17:43 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-03-30 16:35:37 + * @LastEditTime: 2024-04-01 11:21:08 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp */ #include "AppViewIDs.h" @@ -115,8 +115,8 @@ namespace OHOS { LanguageId currentLanguageId = LanguageManager::GetInstance().GetLanguageIdByCode(p_LanguageSwitchModel->GetCurLanguageCode()); g_planguage->ChangeLanguage(currentLanguageId); - - m_labelext->SetTextId(0); + ConfigModel::GetInstance()->SetLanguageCode(p_LanguageSwitchModel->GetCurLanguageCode()); + m_labelext->SetTextId(STR_LANGUAGE); m_labelext->ForceResetText();// 强制刷新 p_UILabelButtonExt->SetImageSrc(SelectedImg, SelectedImg); diff --git a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp index 1a15db96f..55dcc12fc 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp @@ -4,11 +4,13 @@ namespace OHOS { - static constexpr int16_t TITLE_LABEL_X = 133; + static constexpr int16_t TITLE_LABEL_X = 83; static constexpr int16_t TITLE_LABEL_Y = 52; - static constexpr int16_t TITLE_LABEL_W = 20; + static constexpr int16_t TITLE_LABEL_W = 300; static constexpr int16_t TITLE_LABEL_H = 40; - + static constexpr int16_t TITLE_LABEL_TEXT_FONT = 30; + static constexpr int16_t TITLE_LABEL_LINE_HEIGHT = 35; + static constexpr int16_t TITLE_LABEL_TEXT_ROLLSPEED = 40; static constexpr int16_t LANGUAGE_LIST_X = 43; static constexpr int16_t LANGUAGE_LIST_Y = 120; @@ -89,14 +91,14 @@ namespace OHOS return false; } LanguageSwitchViewTitleLabel->SetPosition(TITLE_LABEL_X, TITLE_LABEL_Y, TITLE_LABEL_W, TITLE_LABEL_H); - LanguageSwitchViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30); - LanguageSwitchViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35); + LanguageSwitchViewTitleLabel->SetStyle(STYLE_TEXT_FONT, TITLE_LABEL_TEXT_FONT); + LanguageSwitchViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, TITLE_LABEL_LINE_HEIGHT); // LanguageSwitchViewTitleLabel->SetText("语言"); - LanguageSwitchViewTitleLabel->SetTextId(0); + LanguageSwitchViewTitleLabel->SetTextId(STR_LANGUAGE); LanguageSwitchViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE); LanguageSwitchViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); - LanguageSwitchViewTitleLabel->SetRollSpeed(40); - LanguageSwitchViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + LanguageSwitchViewTitleLabel->SetRollSpeed(TITLE_LABEL_TEXT_ROLLSPEED); + LanguageSwitchViewTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, TITLE_LABEL_TEXT_FONT); LanguageSwitchPresenter::GetInstance()->SetLabelExt(LanguageSwitchViewTitleLabel); return true; } -- 2.17.1