From: Caisking <3449750381@qq.com> Date: Tue, 20 Aug 2024 06:32:08 +0000 (+0800) Subject: 增加表盘管理状态:勿扰 睡眠 密码锁 X-Git-Tag: release_V1.2.70_20241020_135402~617^2~17 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=ca9371cda1b6d00863ad25f73779b528d9411454;p=mirrors%2FFD230.git 增加表盘管理状态:勿扰 睡眠 密码锁 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp index b37b1e4a8..38e8a3820 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp @@ -1,6 +1,19 @@ +/*** + * @Date: 2024-08-12 10:11:33 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-20 14:05:51 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp + */ +/*** + * @Date: 2024-08-12 10:11:33 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-20 12:09:12 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/dnotdisturb/src/DnotDisturbModel.cpp + */ #include "dnotdisturb/include/DnotDisturbModel.h" #include "main/include/PullUpDownView.h" #include "main/include/MainViewSample.h" +#include "MainModel.h" #include "ConfigModel.h" namespace OHOS { @@ -17,13 +30,13 @@ namespace OHOS void DnotDisturbModel::SetDoNotDisturbModeEnabled(bool enabled) { - // isDoNotDisturbModeEnabled = enabled; ConfigModel::GetInstance()->SetDnotdisturb(enabled); + /*更新主界面配置*/ + MainModel::GetInstance().setDialState(DialState::DO_NOT_DISTURB, enabled); } bool DnotDisturbModel::GetDoNotDisturbModeEnabled() const { - // return isDoNotDisturbModeEnabled; return ConfigModel::GetInstance()->GetDnotdisturb(); } @@ -35,7 +48,8 @@ namespace OHOS /*更新主界面下拉界面配置*/ PullUpDownView::GetInstance()->UpdateDnotDisturbStatus(GetDoNotDisturbModeEnabled()); /*更新主界面配置*/ - MainViewSample::GetInstance()->DisturbIcon()->SetVisible(GetDoNotDisturbModeEnabled()); + MainModel::GetInstance().setDialState(DialState::DO_NOT_DISTURB, GetDoNotDisturbModeEnabled()); + MainViewSample::GetInstance()->UpdateStateShow(); } return; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h index f2ac1acdc..9a96317e0 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h @@ -1,4 +1,9 @@ - +/*** + * @Date: 2024-06-21 09:56:18 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-20 10:44:15 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h + */ #ifndef MAIN_MODEL_H #define MAIN_MODEL_H @@ -35,6 +40,21 @@ namespace OHOS std::string dialFullName; } DialSetting; + /*表盘状态*/ + enum class DialState + { + DO_NOT_DISTURB, // 勿扰 + SLEEP, // 睡眠 + LOCK, // 锁 + INVALID // 无效状态 + }; + const int STATE_COUNT = 3; // 确保这里的数量与 DialState 状态数相同 + + struct DialStateInfo + { + DialState state; + bool active; // 是否激活 + }; class MainModel { public: @@ -57,6 +77,11 @@ namespace OHOS const char *getCardNameFromMap(uint8_t cardId) const; const bool GetCardInfoSet(uint8_t index) const; + void setDialState(DialState state, bool value); + DialState getHighestPriorityActiveState(); + bool getMessageActiveState(); + void printDialStates(); + private: void InitDialSettingDefault(int Id); MainModel(); 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 e1bcd3d28..d223ae7b3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h @@ -75,21 +75,14 @@ namespace OHOS PullUpDownView *GetPullUpView(); void SetDisturbState(bool state); /*控制勿扰状态图标*/ // UICrossView::VPage GetVerCurrentCard() const; - UIView *GetMainViewGroup(void) const { return mainSwipeGroup; } - UICardPage *GetViewById(int16_t id) const { return recordCard[id]; } - /*获取勿扰图标image*/ - UIImageView *DisturbIcon() const - { - return disturbanceicon_; - } void SwitchToClockPage(void) { if (mainClockView != nullptr) @@ -103,6 +96,7 @@ namespace OHOS void SetDragFg(bool continFg); bool GetDragFg(void); void SetPage(int16_t page); + void UpdateStateShow(); private: PullUpDownView *dropDownView{nullptr}; @@ -123,7 +117,8 @@ namespace OHOS goalControlView *GoalControlView{nullptr}; // ApplistCardView *applistCardView{nullptr}; UIButton *changebut{nullptr}; - UIImageView *disturbanceicon_{nullptr}; // 勿扰图标 + + UIImageView *dialstateicon_{nullptr}; // 勿扰图标 UIImageView *messageicon_{nullptr}; // 未读图标 /* -------------------------------------------------------------------------- */ UICardPage *recordCard[MAX_CARD]{nullptr}; 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 3cf0ea2c4..d28456677 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp @@ -10,7 +10,9 @@ #include "kv_store.h" #include "securec.h" #include "wearable_log.h" - +#include "ConfigModel.h" +#include +#include namespace OHOS { static const int CARD_SETTING_VALUE_LEN = 32; @@ -28,16 +30,15 @@ namespace OHOS {MUSIC_PLAYER, PNG_SET_CARD_PLAYER, false}, }; /*维护卡片*/ - CardInfoSet cardInfoSet[] = - { - {HEART_RATE, true}, - {TRAINING, false}, - {COMPASS, true}, - {SLEEP, false}, - {BLOODOXGEN, false}, - {GOAL, false}, - {WEATHER, false}, - {MUSIC_PLAYER, true}, + CardInfoSet cardInfoSet[] = { + {HEART_RATE, true}, + {TRAINING, false}, + {COMPASS, true}, + {SLEEP, false}, + {BLOODOXGEN, false}, + {GOAL, false}, + {WEATHER, false}, + {MUSIC_PLAYER, true}, }; /*自定义map配置*/ const DialInfo dialInfoMap[] = { @@ -52,7 +53,6 @@ namespace OHOS #endif }; - const CardInfo printfMap[] = { {HEART_RATE, "心率卡片"}, {COMPASS, "指南针"}, @@ -63,10 +63,14 @@ namespace OHOS {GOAL, "每日目标"}, {SLEEP, "睡眠"}, }; + /*表盘显示状态map*/ + std::array dialstateInfo = {{ + {DialState::DO_NOT_DISTURB, false}, + {DialState::SLEEP, false}, + {DialState::LOCK, false}, + }}; MainModel::MainModel() {} - MainModel::~MainModel() {} - MainModel &MainModel::GetInstance() { static MainModel instance; @@ -455,6 +459,64 @@ namespace OHOS { return dialSetting; } + + /* + ###表盘状态### + + 接口 1 设置某个项的属性为ture or false + 接口 2 获取最高优先级为ture的状态为哪一个 并且返回 + 接口 3 打印状态 + + 管理状态:勿扰 睡眠 密码锁 + */ + + // 接口 1: 设置某个状态的属性 + void MainModel::setDialState(DialState state, bool value) + { + // 将 state 转换为整数以进行比较 + int stateIndex = static_cast(state); + if (stateIndex >= 0 && stateIndex < STATE_COUNT) + { // 确保 index 在有效范围 + dialstateInfo[stateIndex].active = value; // 使用转换后的索引 + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Set dialstateInfo[%d].active = %d", stateIndex, value); + } + else + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "state %d is error", stateIndex); + } + } + + // 接口 2: 获取最高优先级为 true 的状态 + DialState MainModel::getHighestPriorityActiveState() + { + for (int i = STATE_COUNT - 1; i >= 0; i--) + { + if (dialstateInfo[i].active) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "high dialstateInfo[%d].active", i); + return dialstateInfo[i].state; // 返回活跃状态中优先级最高的 + } + } + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "no have high dialstateInfo.active"); + return DialState::INVALID; // 如果没有找到活跃状态,返回无效状态 + } + + // 接口 3: 打印所有状态及其是否激活 + void MainModel::printDialStates() + { + for (int i = 0; i < STATE_COUNT; ++i) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dialstateInfo[%d].active = %d", i, dialstateInfo[i].active); + } + } + + // 未读状态判断 + bool MainModel::getMessageActiveState() + { + bool unread_state = ConfigModel::GetInstance()->get_configData_bool(ConfigModel::CONFIGMODEL_ITEM_MESSAGE_UNREAD); + return unread_state; + } + } #if 0 void MainModel::DeleteCardSetting(uint8_t index) diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp index 65644f598..d6290dded 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp @@ -31,6 +31,7 @@ #include "dnotdisturb/include/DnotDisturbModel.h" #include "weather/include/WeatherModel.h" #include "heart_blood/health_service/health_service.h" +#include "MainModel.h" #if USE_OFFLINE_DIAL #include "DialViewGroup.h" @@ -183,11 +184,11 @@ namespace OHOS { PullUpDownView::GetInstance()->UpdateDnotDisturbStatus(false); DnotDisturbModel::GetInstance().SetDoNotDisturbModeEnabled(false); - /*更新表盘勿扰图标显示*/ - MainViewSample::GetInstance()->DisturbIcon()->SetVisible(false); + /*更新主界面配置*/ + MainModel::GetInstance().setDialState(DialState::DO_NOT_DISTURB,false); + MainViewSample::GetInstance()->UpdateStateShow(); return true; } - if (g_jumpView.count(curViewId) != 0) { NativeAbility::GetInstance().EnterSlice(g_jumpView[curViewId]); 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 2b89e1b02..5375cebd2 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp @@ -12,8 +12,10 @@ extern DialInfo_1 dialInfo_1[MAX_DIALNUM_1]; namespace OHOS { - static constexpr const char *DISTURBICON = "user/res/users/dial_status/disturbicon.bin"; - static constexpr const char *MESSAGEICON = "user/res/users/dial_status/unread.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"; static MainViewSample *g_pMainView = nullptr; static constexpr uint16_t MESLABLE_X_TMP = 177; @@ -110,11 +112,11 @@ namespace OHOS delete MessageLable; MessageLable = nullptr; } - if (disturbanceicon_ != nullptr) + if (dialstateicon_ != nullptr) { - mainClockView->Remove(disturbanceicon_); - delete disturbanceicon_; - disturbanceicon_ = nullptr; + mainClockView->Remove(dialstateicon_); + delete dialstateicon_; + dialstateicon_ = nullptr; } if (messageicon_ != nullptr) { @@ -185,7 +187,30 @@ 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"); @@ -241,21 +266,17 @@ namespace OHOS SwitchToClockPage(); } #if DIALSTATE + /*增加勿扰图标*/ - InitImageView(disturbanceicon_, 213, 0, 40, 40, "disturbIcon", DISTURBICON); + InitImageView(dialstateicon_, 213, 0, 40, 40, "disturbicon", DISTURBICON); + // dialstateicon_->SetVisible(false); + /*增加未读图标*/ InitImageView(messageicon_, 223, 446, 40, 40, "messageicon_", MESSAGEICON); - /*获取勿扰状态*/ - bool disturb_state = ConfigModel::GetInstance()->get_configData_bool(ConfigModel::CONFIGMODEL_ITEM_DNOTDISTURB); - disturbanceicon_->SetVisible(disturb_state); - /*获取未读状态*/ - bool unread_state = ConfigModel::GetInstance()->get_configData_bool(ConfigModel::CONFIGMODEL_ITEM_MESSAGE_UNREAD); - messageicon_->SetVisible(unread_state); - - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[disturb_state:%d unread_state:%d]\r\n", disturb_state, unread_state); + UpdateStateShow(); - mainClockView->Add(disturbanceicon_); + mainClockView->Add(dialstateicon_); mainClockView->Add(messageicon_); #endif SetContainerView(mainSwipeGroup); diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/users/dial_status/disturbicon.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/disturbicon.bin similarity index 100% rename from code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/users/dial_status/disturbicon.bin rename to code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/disturbicon.bin diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/lock.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/lock.bin new file mode 100644 index 000000000..6f52123bf --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/lock.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2025b6ac45f5e90be559b61e6c1c2e646fd51b272c9022de680ea44721f95aa3 +size 920 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/sleep.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/sleep.bin new file mode 100644 index 000000000..d401e1ee2 --- /dev/null +++ b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/sleep.bin @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:64e2f2f67dcd02842ae67cc94022adc8c26ee8f253054c2450bc799e29298a5f +size 1144 diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/users/dial_status/unread.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/unread.bin similarity index 100% rename from code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/users/dial_status/unread.bin rename to code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/dial_state/unread.bin diff --git a/tools/image_converter_tool/test/hert/users/dial_status/lock.png b/tools/image_converter_tool/test/hert/users/dial_status/lock.png new file mode 100644 index 000000000..3cd065387 Binary files /dev/null and b/tools/image_converter_tool/test/hert/users/dial_status/lock.png differ diff --git a/tools/image_converter_tool/test/hert/users/dial_status/lock.png:Zone.Identifier b/tools/image_converter_tool/test/hert/users/dial_status/lock.png:Zone.Identifier new file mode 100644 index 000000000..053d1127c --- /dev/null +++ b/tools/image_converter_tool/test/hert/users/dial_status/lock.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=about:internet diff --git a/tools/image_converter_tool/test/hert/users/dial_status/sleep.png b/tools/image_converter_tool/test/hert/users/dial_status/sleep.png new file mode 100644 index 000000000..81b29e25e Binary files /dev/null and b/tools/image_converter_tool/test/hert/users/dial_status/sleep.png differ diff --git a/tools/image_converter_tool/test/hert/users/dial_status/sleep.png:Zone.Identifier b/tools/image_converter_tool/test/hert/users/dial_status/sleep.png:Zone.Identifier new file mode 100644 index 000000000..053d1127c --- /dev/null +++ b/tools/image_converter_tool/test/hert/users/dial_status/sleep.png:Zone.Identifier @@ -0,0 +1,3 @@ +[ZoneTransfer] +ZoneId=3 +HostUrl=about:internet