From: 袁清梦 <3449750381@qq.com> Date: Sat, 9 Nov 2024 08:56:54 +0000 (+0000) Subject: Merge #1377 into sdk602patch0911 from refs/changes/1377/head X-Git-Tag: fd230_release_V1.3.102~97^2~6 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=0737114671dfa355dfaa04bfe16276a50b7bbed0;p=mirrors%2FFD230.git Merge #1377 into sdk602patch0911 from refs/changes/1377/head Code review from 袁清梦 * refs/changes/1377/head: (4 commits squashed) - 系统:优化vote获取显示 - 系统:修复vote的显示 - #1149 APP--黑曜表盘显示图替换成实际表盘效果图 - #1000 手表,开启睡眠模式后,在开室内走路运动,之后关闭掉回主表盘,顶部的睡眠模式图标消失,进出菜单后恢复 Signed-off-by: Caisking <3449750381@qq.com> Reviewed-by: Caisking <3449750381@qq.com> Reviewed-by: 罗正 <1732036298@qq.com> Reviewed-by: aliyun8003852482 <1224667075@qq.com> Reviewed-by: snickersun@163.com Reviewed-by: aliyun6865282430 <1624952103@qq.com> Merged-by: snickersun@163.com CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1377 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/clock/include/MainClockView.h b/code/sdk/application/wearable/fd230app/nativeui/clock/include/MainClockView.h index 7c83d8154..068b647ea 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/clock/include/MainClockView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/clock/include/MainClockView.h @@ -100,6 +100,8 @@ namespace OHOS bool InitBatteryView(BatteryDisplayType type); // 电量 bool InitColor(ColorTypeSet type); // 颜色 + void UpdateStateShow(void); + private: void InitStepValue(); bool InitLabelView(void); @@ -141,6 +143,9 @@ namespace OHOS Image *medCircle{nullptr}; Image *smallCircle{nullptr}; + UIImageView *dialstateicon_{nullptr}; // 勿扰 + UIImageView *messageicon_{nullptr}; // 未读图标 + bool viewiInitStatus{false}; bool resLoadStatus{false}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/clock/src/MainClockView.cpp b/code/sdk/application/wearable/fd230app/nativeui/clock/src/MainClockView.cpp index 72edf7314..a3cbbf34e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/clock/src/MainClockView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/clock/src/MainClockView.cpp @@ -12,6 +12,7 @@ */ #include "MainClockView.h" +#include "MainModel.h" #include "MainPresenterSample.h" #include "SetDialModel.h" #include "battery_hal.h" @@ -44,6 +45,11 @@ static constexpr const char *CHAGE_BATTERY = "/user/res/Battery/Icon.bin"; static constexpr const char *WHITE_BATTERY = "/user/res/Battery/Battery_White.bin"; static constexpr const char *BLACK_BATTERY = "/user/res/Battery/Battery_Black.bin"; +static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin"; +static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin"; +static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin"; +static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin"; + // 定义一些常量 constexpr int HOURS_IN_DAY = 24; constexpr int MINUTES_IN_HOUR = 60; @@ -124,6 +130,15 @@ namespace OHOS stepLabel = nullptr; delete heartlabel; // 心率 heartlabel = nullptr; + if (dialstateicon_ != nullptr) { + delete dialstateicon_; + dialstateicon_ = nullptr; + } + + if (messageicon_ != nullptr) { + delete messageicon_; + messageicon_ = nullptr; + } g_pMainClockView = nullptr; } @@ -413,12 +428,51 @@ namespace OHOS return true; } + void MainClockView::UpdateStateShow() + { + if (messageicon_ == nullptr || dialstateicon_ == nullptr) + return; + + /*配置未读状态*/ + messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState()); + /*配置表盘状态*/ + dialstateicon_->SetVisible(true); + switch (MainModel::GetInstance().getHighestPriorityActiveState()) + { + case DialState::DO_NOT_DISTURB: + dialstateicon_->SetSrc(DISTURBICON); + break; + case DialState::SLEEP: + dialstateicon_->SetSrc(SLEEPICON); + break; + case DialState::LOCK: + dialstateicon_->SetSrc(LOCKICON); + break; + default: + dialstateicon_->SetVisible(false); + break; + } + } + void MainClockView::PreLoad(void) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainClockView::PreLoad"); if (!viewiInitStatus) { InitView(); + + /*增加手表状态图标*/ + InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON); + // dialstateicon_->SetVisible(false); + + /*增加未读图标*/ + InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON); + + UpdateStateShow(); + + Add(dialstateicon_); + Add(messageicon_); + viewiInitStatus = true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h index 219dbad15..9a9893001 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h @@ -97,8 +97,9 @@ namespace OHOS void SetDragFg(bool continFg); bool GetDragFg(void); void SetPage(int16_t page); - void UpdateStateShow(); + void UpdateStateShow(UIImageView *&messageicon,UIImageView *&dialstateicon); void HandOnKeyEventSwitchMainPullDownView(void); + void UpdateStateShow(void); private: PullUpDownView *dropDownView{nullptr}; @@ -120,8 +121,8 @@ namespace OHOS // ApplistCardView *applistCardView{nullptr}; UIButton *changebut{nullptr}; - UIImageView *dialstateicon_{nullptr}; // 勿扰图标 - UIImageView *messageicon_{nullptr}; // 未读图标 + // UIImageView *dialstateicon_{nullptr}; // 勿扰图标 + // UIImageView *messageicon_{nullptr}; // 未读图标 /* -------------------------------------------------------------------------- */ UICardPage *recordCard[MAX_CARD]{nullptr}; bool pageStatus[MAX_CARD]{false}; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h index 49a94cc40..ee1a8ad4d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h @@ -119,6 +119,9 @@ public: void StopDial(); void StartDial(); + /*外部接口更新表盘状态*/ + void UpdateStateShow(); + MediaVideoPlay* GetVideoPlay(); private: @@ -137,7 +140,9 @@ private: std::string filePath_; FILE* fp_ = nullptr; DialVideoView* video_ = nullptr; - UIKaleidoscopeView* kaleidoscope_ = nullptr; + UIKaleidoscopeView *kaleidoscope_ = nullptr; + UIImageView *dialstateicon_{nullptr}; // 勿扰图标 + UIImageView *messageicon_{nullptr}; // 未读图标 typedef struct { Rect area; diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp index 9532268f6..093ac6221 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp @@ -18,6 +18,7 @@ #include "SetDialModel.h" #include "dnotdisturb/include/DnotDisturbModel.h" #include "custom_utils.h" +#include "DialViewGroup.h" extern "C" void uapi_dev_runtime_set_lock_status(uint8_t status); diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp index 17acaad16..6bdd96b23 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp @@ -16,10 +16,6 @@ extern "C" uint8_t uapi_dev_runtime_get_lock_status(void); namespace OHOS { - static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin"; - static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin"; - static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin"; - static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin"; static MainViewSample *g_pMainView = nullptr; static constexpr uint16_t MESLABLE_X_TMP = 177; @@ -114,18 +110,18 @@ namespace OHOS delete MessageLable; MessageLable = nullptr; } - if (dialstateicon_ != nullptr) - { - mainClockView->Remove(dialstateicon_); - delete dialstateicon_; - dialstateicon_ = nullptr; - } - if (messageicon_ != nullptr) - { - mainClockView->Remove(messageicon_); - delete messageicon_; - messageicon_ = nullptr; - } + // if (dialstateicon != nullptr) + // { + // mainClockView->Remove(dialstateicon); + // delete dialstateicon; + // dialstateicon = nullptr; + // } + // if (messageicon != nullptr) + // { + // mainClockView->Remove(messageicon); + // delete messageicon; + // messageicon = nullptr; + // } if (compassControlView != nullptr) { compassControlView->RemoveAll(); @@ -194,31 +190,7 @@ namespace OHOS { return g_pMainView; } - void MainViewSample::UpdateStateShow() - { - if (messageicon_ == nullptr || dialstateicon_ == nullptr) - return; - /*配置未读状态*/ - messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState()); - /*配置表盘状态*/ - dialstateicon_->SetVisible(true); - switch (MainModel::GetInstance().getHighestPriorityActiveState()) - { - case DialState::DO_NOT_DISTURB: - dialstateicon_->SetSrc(DISTURBICON); - break; - case DialState::SLEEP: - dialstateicon_->SetSrc(SLEEPICON); - break; - case DialState::LOCK: - dialstateicon_->SetSrc(LOCKICON); - break; - default: - dialstateicon_->SetVisible(false); - break; - } - } void MainViewSample::OnStart() { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStart"); @@ -292,23 +264,26 @@ namespace OHOS } } -#if DIALSTATE - - /*增加手表状态图标*/ - InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON); - // dialstateicon_->SetVisible(false); - - /*增加未读图标*/ - InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON); - - UpdateStateShow(); - - mainClockView->Add(dialstateicon_); - mainClockView->Add(messageicon_); -#endif SetContainerView(mainSwipeGroup); } + void MainViewSample::UpdateStateShow() { + DialSetting &setting = presenter_->GetDialSetting(); + //离线表盘 + if (setting.dialFlag) { + if (mainClockView != nullptr) { + dynamic_cast(mainClockView)->UpdateStateShow(); + } + } + //在线表盘 + else { + if (mainClockView != nullptr) { + dynamic_cast(mainClockView)->UpdateStateShow(); + } + + } + } + bool MainViewSample::HorizontalViewInit(void) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit"); diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp index 3c163fffb..201cda53b 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp @@ -13,13 +13,19 @@ #include "message/include/MessageControlView.h" #include "hal_tick.h" #include "common/image_cache_manager.h" +#include "MainViewSample.h" #include "alipay_feature.h" #ifdef SUPPORT_AT_OHOSFWK #include "ui_screennotify.h" #endif namespace OHOS { - static DialVideoView *g_video = nullptr; +static DialVideoView *g_video = nullptr; + + static constexpr const char *DISTURBICON = "user/res/dial_state/disturbicon.bin"; + static constexpr const char *MESSAGEICON = "user/res/dial_state/unread.bin"; + static constexpr const char *SLEEPICON = "user/res/dial_state/sleep.bin"; + static constexpr const char *LOCKICON = "user/res/dial_state/lock.bin"; #ifdef SUPPORT_AT_OHOSFWK static void ScreenStatusNotify(ScreenStatus status) @@ -111,6 +117,16 @@ namespace OHOS video_ = nullptr; + if (dialstateicon_ != nullptr) { + delete dialstateicon_; + dialstateicon_ = nullptr; + } + + if (messageicon_ != nullptr) { + delete messageicon_; + messageicon_ = nullptr; + } + if (fp_ != nullptr) { fclose(fp_); @@ -125,6 +141,31 @@ namespace OHOS filePath_ = filePath; } + void DialViewGroup::UpdateStateShow() + { + if (messageicon_ == nullptr || dialstateicon_ == nullptr) + return; + + /*配置未读状态*/ + messageicon_->SetVisible(MainModel::GetInstance().getMessageActiveState()); + /*配置表盘状态*/ + dialstateicon_->SetVisible(true); + switch (MainModel::GetInstance().getHighestPriorityActiveState()) + { + case DialState::DO_NOT_DISTURB: + dialstateicon_->SetSrc(DISTURBICON); + break; + case DialState::SLEEP: + dialstateicon_->SetSrc(SLEEPICON); + break; + case DialState::LOCK: + dialstateicon_->SetSrc(LOCKICON); + break; + default: + dialstateicon_->SetVisible(false); + break; + } + } void DialViewGroup::PreLoad(void) { WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialViewGroup::PreLoad"); @@ -137,7 +178,21 @@ namespace OHOS GRAPHIC_LOGE("cannot open file: %s\n", filePath_.c_str()); return; } - DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this); + DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this); // 添加主表盘卡片内容 + // 添加自定义logo,例如勿扰模式 + + /*增加手表状态图标*/ + InitImageView(dialstateicon_, 213, 2, 40, 40, "disturbicon", DISTURBICON); + // dialstateicon_->SetVisible(false); + + /*增加未读图标*/ + InitImageView(messageicon_, 223, 444, 20, 20, "messageicon_", MESSAGEICON); + + UpdateStateShow(); + + Add(dialstateicon_); + Add(messageicon_); + resPreloaded_ = true; } @@ -159,6 +214,7 @@ namespace OHOS resLoadStatus = false; } } + void DialViewGroup::ProcessData(DialDataType type, DialView *view) { diff --git a/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp b/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp index 4af0518bc..a02b1c04a 100644 --- a/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp +++ b/code/sdk/application/wearable/service/msg_center/src/notify/debug_output_notification/debug_output_notification.cpp @@ -607,7 +607,7 @@ namespace OHOS std::string DebugOutputViewEventListener::get_current_vote_status() { // 获取系统日志实例 char buf[256]; - get_vote_status(buf); + get_vote_status(buf,sizeof(buf)); return std::string(buf); } diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/mirrorvoyager.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/mirrorvoyager.bin index 6f29368a5..1d394fe8d 100644 --- a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/mirrorvoyager.bin +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/mirrorvoyager.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:21b21f7733f7fdf755190222c462c4f0292aaa861cd7bacb7c9e9d4240c153d0 -size 386125 +oid sha256:6b6c9f9c0d4aba16c42db41d8feaf527c0b42a652b32ea7b14921205ce861989 +size 300109 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/obsidianrhythm.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/obsidianrhythm.bin index 6a38bb06f..3b1d155ff 100644 --- a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/obsidianrhythm.bin +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/dial/res_dial/obsidianrhythm.bin @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:144892621b0bd8bb7ffdae13bb1c811e1ad99f5827813719cea9bb2820a4187a -size 1399243 +oid sha256:9c14c9cb4b2bb308968a66e5c4a9de5ec5a02658522c8c47629031b024a02ad0 +size 1688324 diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 2a820252e..5838ed3b4 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -1290,23 +1290,35 @@ void uapi_set_screen_on_api(void) { } //获取vote正在执行的状态 -errcode_t get_vote_status(char*str) -{ - uint8_t i = 0; - uint8_t falg = 0; - pm_veto_t *pm_veto_ptr = pm_veto_get_info(); - for (i = 0; i < PM_ID_MAX; i++) { - if (pm_veto_ptr->veto_counts.sub_counts[i] == 1) { - sprintf(str, "%s %s", str, get_pm_id_name(i)); - falg = 1; - } - } - if (falg==0) { - str = "没有正在进行的服务"; - } - PRINT("***************get_vote_status***************\n %s\n", str); - return ERRCODE_SUCC; -} +// 获取 vote 正在执行的状态 +errcode_t get_vote_status(char* str, size_t str_size) { + uint8_t i; + uint8_t flag = 0; + pm_veto_t* pm_veto_ptr = pm_veto_get_info(); + + PRINT("***************get_vote_status***************\n"); + + // 初始化字符串为空 + str[0] = '\0'; + + for (i = 0; i < PM_ID_MAX; i++) { + if (pm_veto_ptr->veto_counts.sub_counts[i] == 1) { + // 拼接当前 pm ID 并添加换行符 + snprintf(str + strlen(str), str_size - strlen(str), "%s%s\n", (flag ? " " : ""), get_pm_id_name(i)); + flag = 1; + PRINT("vote_status: %s %d\n", get_pm_id_name(i), pm_veto_ptr->veto_counts.sub_counts[i]); + } else { + PRINT("vote_status: %s %d\n", get_pm_id_name(i), pm_veto_ptr->veto_counts.sub_counts[i]); + } + } + + if (flag == 0) { + snprintf(str, str_size, "没有正在进行的服务"); + } + + PRINT("***************get_vote_status*************** %s\n", str); + return ERRCODE_SUCC; +} /*系统声音设置*/ void uapi_systemVolumeSet(int32_t sounding) diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.h b/code/sdk/drivers/peripheral/utils/custom_utils.h index 3c584593f..9d65c0de7 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.h +++ b/code/sdk/drivers/peripheral/utils/custom_utils.h @@ -87,7 +87,7 @@ errcode_t uapi_get_WeekStr(char *p_week); /*设置屏幕亮屏*/ void uapi_set_screen_on_api(void); /*获取Vote状态*/ -errcode_t get_vote_status(char *str); +errcode_t get_vote_status(char *str,size_t str_size); /** * @brief 日期格式选项枚举 diff --git a/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.lzma b/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.lzma index f98e4a613..cc7ef55e8 100644 Binary files a/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.lzma and b/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.lzma differ diff --git a/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.png b/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.png index 39917967a..70acebfde 100644 Binary files a/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.png and b/tools/dial_converter_tool/dial_lzma/114/obsidianrhythm.png differ diff --git a/tools/dial_converter_tool/dial_lzma/115/mirrorvoyager.lzma b/tools/dial_converter_tool/dial_lzma/115/mirrorvoyager.lzma index e8647b5ed..028b2573f 100644 Binary files a/tools/dial_converter_tool/dial_lzma/115/mirrorvoyager.lzma and b/tools/dial_converter_tool/dial_lzma/115/mirrorvoyager.lzma differ diff --git a/tools/dial_converter_tool/instance/114/obsidianrhythm.png b/tools/dial_converter_tool/instance/114/obsidianrhythm.png index f30682ce8..fd88e0390 100644 Binary files a/tools/dial_converter_tool/instance/114/obsidianrhythm.png and b/tools/dial_converter_tool/instance/114/obsidianrhythm.png differ diff --git a/tools/dial_converter_tool/instance/115/mirrorvoyager.png b/tools/dial_converter_tool/instance/115/mirrorvoyager.png index 742bb51fe..602b221cf 100644 Binary files a/tools/dial_converter_tool/instance/115/mirrorvoyager.png and b/tools/dial_converter_tool/instance/115/mirrorvoyager.png differ