From 75b23685d03a2b81d7069293f4803f6c5cd4e4e4 Mon Sep 17 00:00:00 2001 From: luozheng <1732036298@qq.com> Date: Tue, 2 Apr 2024 11:47:24 +0800 Subject: [PATCH] =?utf8?q?1.ConfigModel=E6=B7=BB=E5=8A=A0=E9=9C=87?= =?utf8?q?=E5=8A=A8=E6=8F=90=E9=86=92=E5=92=8C=E9=9D=99=E9=9F=B3=E6=A8=A1?= =?utf8?q?=E5=BC=8F=E4=BF=9D=E5=AD=98=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- .../fd230app/nativeui/config/ConfigModel.json | 4 +- .../nativeui/config/include/ConfigModel.h | 11 +++- .../nativeui/config/src/ConfigModel.cpp | 62 +++++++++++++++++-- .../src/DisplayBrightnessModel.cpp | 4 +- .../include/SoundAndVibrationPresenter.h | 3 +- .../src/SoundAndVibrationModel.cpp | 15 ++++- .../src/SoundAndVibrationPresenter.cpp | 21 ++++--- .../src/SoundAndVibrationView.cpp | 12 ---- .../src/SystemVolumePresenter.cpp | 2 +- 9 files changed, 102 insertions(+), 32 deletions(-) diff --git a/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json b/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json index 838609752..55a811fad 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json +++ b/code/sdk/application/wearable/fd230app/nativeui/config/ConfigModel.json @@ -7,5 +7,7 @@ "Dial_Id": 0, "Dial_Name": "KUMI", "Language_Id": 0, - "Language_Code": "zh" + "Language_Code": "zh", + "VibrationReminder":false, + "SilentMode":false } \ 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 5c5a0f099..efbd9afb4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h @@ -38,7 +38,8 @@ namespace OHOS /* -------------------------------------------------------------------------- */ std::string ReadJsonData_String(const cJSON *json_obj, const char *field_name); - double ReadJsonData_Number(const cJSON *json_obj, const char *field_name); + double ReadJsonData_Double(const cJSON *json_obj, const char *field_name); + int ReadJsonData_Int(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); @@ -77,6 +78,10 @@ namespace OHOS void SetmoderVer(char *str); void SetLanguageCode(char *languagecode); const char *GetLanguageCode(void); + void SetVibrationReminder(bool state); + bool GetVibrationReminder(void); + void SetSilentMode(bool state); + bool GetSilentMode(void); // -------------------------------------------------------------------------- */ private: ConfigModel(); // 私有构造函数,确保无法在外部实例化 @@ -90,7 +95,7 @@ namespace OHOS /* ------------------------------- json中要读取的键 ------------------------------- */ bool RaiseToBrightnessCheckBoxButtonState{false}; // 抬腕按钮状态 ,默认补选中 unsigned char ScreenBrightnessValue{255}; // 亮度值 ,默认最大亮度 - unsigned int ScreenDurationRadioButtonSlectValue{1}; // 亮屏时长 ,0对应5秒熄屏,1对应10秒熄屏,2对应15秒熄屏 + unsigned int ScreenDurationRadioButtonSlectValue{1}; // 亮屏时长按钮选中编号 ,0对应5秒熄屏,1对应10秒熄屏,2对应15秒熄屏 bool TradionalBlueToothToggleButtonState{false}; // 用来记录蓝牙开关状态,默认关闭状态 int HeartRateOrBloodOxygenQuickAccessSwitch{0}; // 心率或血氧快速访问开关,默认快速访问血氧打开 int dialid_; // 表盘Id @@ -100,6 +105,8 @@ namespace OHOS char *pyVer = NULL; char *moderVer = NULL; std::string LanguageCode = "zh"; + bool VibrationReminder{false}; // 震动提醒 + bool SilentMode{false}; // 静音模式 cat1_msg_config cat1_msg_config_t; /* -------------------------------------------------------------------------- */ }; 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 47f27e0bf..1203c032c 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp @@ -65,12 +65,12 @@ namespace OHOS } /* - * @brief 读取数字 + * @brief 读取数字(浮点数) * @param {cJSON} json对象 * @param {char*} 字段名 * @return {double} 读取到的数字 */ - double ConfigModel::ReadJsonData_Number(const cJSON *json_obj, const char *field_name) + double ConfigModel::ReadJsonData_Double(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)) @@ -81,6 +81,23 @@ namespace OHOS return -1; // 或者返回一个错误值 } + /* + * @brief 读取数字(整数) + * @param {cJSON} json对象 + * @param {char*} 字段名 + * @return {int} 读取到的数字 + */ + int ConfigModel::ReadJsonData_Int(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 static_cast(field_item->valuedouble); + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found or not a number"); + return -1; // 或者返回一个错误值 + } + /* * @brief 读取布尔值 * @param {cJSON} json对象 @@ -92,7 +109,7 @@ namespace OHOS const cJSON *field_item = cJSON_GetObjectItem(json_obj, field_name); if (field_item != NULL && cJSON_IsBool(field_item)) { - return field_item->valueint != 0; + return cJSON_IsTrue(field_item) ? true : false; } WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Field not found or not a boolean"); return false; // 或者返回一个错误值 @@ -304,7 +321,7 @@ namespace OHOS return; } - FILE *fp = fopen(file_path, "w+"); + FILE *fp = fopen(file_path, "w"); if (fp == NULL) { printf("Failed to open file: %s\n", file_path); @@ -517,6 +534,43 @@ namespace OHOS } return; } + + /* + * @brief 设置震动提醒 + * @param {bool} true 开启 + * @param {bool} false 关闭 + */ + void ConfigModel::SetVibrationReminder(bool state) + { + VibrationReminder = state; + WriteJsonData_Bool(GetcJSON(), "VibrationReminder", VibrationReminder); // 应该放到关机时候写 + } + + /*获取震动提醒是否开启*/ + bool ConfigModel::GetVibrationReminder(void) + { + VibrationReminder = ReadJsonData_Bool(GetcJSON(), "VibrationReminder"); // 应该放到开机时候读 + return VibrationReminder; + } + + /* + * @brief 设置静音模式 + * @param {bool} true 开启 + * @param {bool} false 关闭 + */ + void ConfigModel::SetSilentMode(bool state) + { + SilentMode = state; + WriteJsonData_Bool(GetcJSON(), "SilentMode", SilentMode); // 应该放到关机时候写 + } + + /*获取静音模式是否开启*/ + bool ConfigModel::GetSilentMode(void) + { + SilentMode = ReadJsonData_Bool(GetcJSON(), "SilentMode"); // 应该放到开机时候读 + return SilentMode; + } + /* ------------------------------ ImageAnimator ----------------------------- */ ImageAnimator::ImageAnimator() diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp index 3b6544854..85c09a409 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp @@ -1,6 +1,8 @@ #include "displaybrightness/include/DisplayBrightnessModel.h" #include "displaybrightness/include/DisplayBrightnessPresenter.h" #include "wearable_log.h" +#include "cat1_ctl.h" +#include "../../../../../../drivers/peripheral/slip/cat1Service/cat1_ctl.h" namespace OHOS { @@ -38,7 +40,7 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail"); return false; } - displayBrightnessPresent->SetRaiseToBrightnessState(RaiseToBrightnessCheckBoxButtonState); // 抬腕按钮的状态 + displayBrightnessPresent->SetRaiseToBrightnessState(uapi_cat1_get_power_stat()); // 抬腕按钮的状态 return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h index df3df6e4a..8869a90a8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-02-19 10:39:08 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-03-21 11:49:25 + * @LastEditTime: 2024-04-01 19:33:48 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h */ #ifndef SOUND_AND_VIBRATION_PRESENTER_H @@ -11,6 +11,7 @@ #include "Presenter.h" #include "SoundAndVibrationView.h" #include "KeyInputListener.h" +#include "soundandvibration/include/SoundAndVibrationModel.h" namespace OHOS { diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp index 328c2d5fc..98e123998 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp @@ -1,10 +1,23 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-02-23 09:17:00 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-04-01 18:19:45 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp + */ #include "soundandvibration/include/SoundAndVibrationModel.h" #include "soundandvibration/include/SoundAndVibrationPresenter.h" #include "wearable_log.h" +#include "config/include/ConfigModel.h" namespace OHOS { - SoundAndVibrationModel::SoundAndVibrationModel() {} + SoundAndVibrationModel::SoundAndVibrationModel() + { + ConfigModel *p_ConfigModel = ConfigModel::GetInstance(); + VibrationReminderToggleButtonState = p_ConfigModel->GetVibrationReminder(); + SilentModeToggleButtonState = p_ConfigModel->GetSilentMode(); + } SoundAndVibrationModel::~SoundAndVibrationModel() {} diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp index 9ff5d096a..062f1e74a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp @@ -2,7 +2,7 @@ * @Author: luozheng 1732036298@qq.com * @Date: 2024-02-19 10:39:11 * @LastEditors: luozheng 1732036298@qq.com - * @LastEditTime: 2024-03-21 14:23:38 + * @LastEditTime: 2024-04-02 09:14:23 * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp */ @@ -13,9 +13,9 @@ #include "graphic_math.h" #include "string.h" #include "soundandvibration/include/SoundAndVibrationPresenter.h" -#include "soundandvibration/include/SoundAndVibrationModel.h" #include "common/key_code.h" #include "custom_utils.h" +#include "config/include/ConfigModel.h" namespace OHOS { @@ -54,7 +54,6 @@ namespace OHOS if (value != false) { p_SoundAndVibrationView->SetVibrationReminderToggleButtonState(true); - SoundAndVibrationModel::GetInstance()->SetVibrationReminderToggleButtonStaus(false); // 将Model层保存的状态清除 } } @@ -71,7 +70,6 @@ namespace OHOS if (value != false) { p_SoundAndVibrationView->SetSilentModeToggleButtonState(true); - SoundAndVibrationModel::GetInstance()->SetSilentModeToggleButtonStatus(false); // 将Model层保存的状态清除 } } @@ -160,20 +158,23 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::GetInstance fail!"); return false; } - + SoundAndVibrationModel* p_SoundAndVibrationModel = SoundAndVibrationModel::GetInstance(); + ConfigModel *p_ConfigModel = ConfigModel::GetInstance(); switch (state) { case UICheckBox::SELECTED: if (p_SoundAndVibrationView->GetVibrationReminderToggleButton() == (UIView *)view_) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationReminder is enable!"); - + p_SoundAndVibrationModel->SetVibrationReminderToggleButtonStaus(true); + p_ConfigModel->SetVibrationReminder(true); return true; } else if (p_SoundAndVibrationView->GetSilentModeToggleButton() == (UIView *)view_) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SilentMode is enable!"); - + p_SoundAndVibrationModel->SetSilentModeToggleButtonStatus(true); + p_ConfigModel->SetSilentMode(true); return true; } break; @@ -181,13 +182,15 @@ namespace OHOS if (p_SoundAndVibrationView->GetVibrationReminderToggleButton() == (UIView *)view_) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationReminder is disable!"); - + p_SoundAndVibrationModel->SetVibrationReminderToggleButtonStaus(false); + p_ConfigModel->SetVibrationReminder(false); return true; } else if (p_SoundAndVibrationView->GetSilentModeToggleButton() == (UIView *)view_) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SilentMode is disable!"); - + p_SoundAndVibrationModel->SetSilentModeToggleButtonStatus(false); + p_ConfigModel->SetSilentMode(false); return true; } break; diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp index 404fe0838..6d2a219b1 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp @@ -45,18 +45,6 @@ namespace OHOS { SoundAndVibrationScrollView->RemoveAll(); - bool state = GetVibrationReminderToggleButtonState(); - if (state == true) - { - SoundAndVibrationModel::GetInstance()->SetVibrationReminderToggleButtonStaus(true); - } - state = GetSilentModeToggleButtonState(); - - if (state == true) - { - SoundAndVibrationModel::GetInstance()->SetSilentModeToggleButtonStatus(true); - } - delete Title; Title = nullptr; diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp index 151f9725e..86590a32e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp @@ -180,7 +180,7 @@ namespace OHOS void VoumeProcessSliderEventListener::OnChange(int32_t value) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnChange %d", value); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnChange %d", value); ChangeVolumeValue(OTHER, value); } -- 2.17.1