From ef0c7d03a4d6fca08c1a86f884702678b1cb4d40 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=E8=A2=81=E6=B8=85=E6=A2=A6?= <3449750381@qq.com> Date: Sat, 23 Aug 2025 03:34:34 +0000 Subject: [PATCH] Merge #2136 into sdk650pathc0423 from refs/changes/2136/head MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Code review from 袁清梦 * refs/changes/2136/head: (3 commits squashed) - 增加include的相关头文件 - Merge branch 'sdk650pathc0423' of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk650pathc0423 - 暂时屏蔽死机问题 Signed-off-by: Caisking <3449750381@qq.com> Merged-by: Caisking <3449750381@qq.com> CR-link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/2136 --- .../wearable/fd230/nativeapp/CMakeLists.txt | 1 + .../include/add_card/AddCardAdapter.h | 46 ++++ .../nativeui/include/add_card/AddCardItem.h | 42 ++++ .../nativeui/include/add_card/AddCardModel.h | 34 +++ .../include/add_card/AddCardPresenter.h | 45 ++++ .../nativeui/include/add_card/AddCardView.h | 47 ++++ .../nativeui/include/clock/AmbientClockView.h | 65 ++++++ .../nativeui/include/clock/MainClockView.h | 75 +++++++ .../nativeui/include/main/AppGroupView.h | 28 +++ .../nativeui/include/main/DialBinParser.h | 59 +++++ .../include/main/DialBinParserManager.h | 73 +++++++ .../nativeui/include/main/DialBinParserV3.h | 75 +++++++ .../nativeui/include/main/DialBinTypes.h | 180 ++++++++++++++++ .../nativeui/include/main/DialBinTypesV2.h | 167 ++++++++++++++ .../nativeui/include/main/HealthModel.h | 69 ++++++ .../nativeapp/nativeui/include/main/LoadImg.h | 23 ++ .../nativeui/include/main/MainModel.h | 71 ++++++ .../include/main/MainPresenterSample.h | 87 ++++++++ .../nativeui/include/main/MainViewSample.h | 103 +++++++++ .../nativeui/include/main/MessageAdapter.h | 66 ++++++ .../nativeui/include/main/MessageItemView.h | 40 ++++ .../nativeui/include/main/MessageMainView.h | 54 +++++ .../nativeui/include/main/MessageModel.h | 44 ++++ .../include/main/ModelListenerSample.h | 31 +++ .../nativeui/include/main/PullUpDownView.h | 53 +++++ .../nativeui/include/main/UiServersMsg.h | 44 ++++ .../nativeui/include/main/UiViewId.h | 25 +++ .../include/main/VolumeSettingPresenter.h | 56 +++++ .../nativeui/include/main/VolumeSettingView.h | 41 ++++ .../include/main/dial/DialArcLabelView.h | 35 +++ .../include/main/dial/DialArcProgressView.h | 22 ++ .../include/main/dial/DialBaseModel.h | 65 ++++++ .../include/main/dial/DialBoxProgressModel.h | 42 ++++ .../include/main/dial/DialBoxProgressView.h | 22 ++ .../nativeui/include/main/dial/DialDataBase.h | 76 +++++++ .../nativeui/include/main/dial/DialDataType.h | 204 ++++++++++++++++++ .../include/main/dial/DialDigitalImgView.h | 68 ++++++ .../include/main/dial/DialKaleidoscopeView.h | 11 + .../include/main/dial/DialLabelView.h | 35 +++ .../include/main/dial/DialModelCalorie.h | 39 ++++ .../include/main/dial/DialModelCharge.h | 32 +++ .../include/main/dial/DialModelChargeC.h | 19 ++ .../include/main/dial/DialModelDateEnStr.h | 28 +++ .../include/main/dial/DialModelDateStr.h | 30 +++ .../main/dial/DialModelDateWeekMDStr.h | 36 ++++ .../include/main/dial/DialModelDateWeekStr.h | 28 +++ .../include/main/dial/DialModelDistance.h | 39 ++++ .../include/main/dial/DialModelHeartRate.h | 31 +++ .../include/main/dial/DialModelHourTens.h | 27 +++ .../include/main/dial/DialModelHourUnits.h | 29 +++ .../include/main/dial/DialModelKcalgoal.h | 29 +++ .../include/main/dial/DialModelKcalgoalStr.h | 31 +++ .../main/dial/DialModelKcalgoalValue.h | 29 +++ .../include/main/dial/DialModelMinTens.h | 27 +++ .../include/main/dial/DialModelMinUnits.h | 28 +++ .../include/main/dial/DialModelPower.h | 32 +++ .../include/main/dial/DialModelPowerMapper.h | 25 +++ .../include/main/dial/DialModelPowerStandby.h | 30 +++ .../include/main/dial/DialModelPowerStr.h | 36 ++++ .../include/main/dial/DialModelSPO2.h | 33 +++ .../include/main/dial/DialModelSecondMapper.h | 25 +++ .../include/main/dial/DialModelStepgoal.h | 29 +++ .../include/main/dial/DialModelStepgoalStr.h | 31 +++ .../main/dial/DialModelStepgoalValue.h | 29 +++ .../include/main/dial/DialModelSteps.h | 30 +++ .../include/main/dial/DialModelTime.h | 62 ++++++ .../include/main/dial/DialModelTimeStr.h | 28 +++ .../include/main/dial/DialModelWeather.h | 45 ++++ .../include/main/dial/DialModelWeatherStr.h | 39 ++++ .../include/main/dial/DialModelWeekEnStr.h | 34 +++ .../include/main/dial/DialModelWeekNum.h | 31 +++ .../include/main/dial/DialModelWeekStr.h | 34 +++ .../include/main/dial/DialOHSliceId.h | 66 ++++++ .../include/main/dial/DialOptionImgView.h | 46 ++++ .../include/main/dial/DialRotateImgView.h | 34 +++ .../include/main/dial/DialSequenceImgView.h | 61 ++++++ .../include/main/dial/DialStaticImgView.h | 34 +++ .../include/main/dial/DialVideoView.h | 33 +++ .../nativeui/include/main/dial/DialView.h | 36 ++++ .../include/main/dial/DialViewContainer.h | 83 +++++++ .../include/main/dial/DialViewGroup.h | 198 +++++++++++++++++ .../include/main/dial/ModelDialDataFactory.h | 45 ++++ .../main/dial/OnDialDataUpdateListener.h | 23 ++ .../include/main/dial/RegisterDialModel.h | 25 +++ .../include/main/dial/WatchInterface.h | 97 +++++++++ .../nativeui/include/set_dial/SetDialInfo.h | 27 +++ .../nativeui/include/set_dial/SetDialModel.h | 38 ++++ .../include/set_dial/SetDialPresenter.h | 54 +++++ .../nativeui/include/set_dial/SetDialView.h | 53 +++++ .../set_dial_style/SetDialStyleModel.h | 41 ++++ .../set_dial_style/SetDialStylePresenter.h | 37 ++++ .../include/set_dial_style/SetDialStyleView.h | 45 ++++ .../ble_service/bleservice/bleService.c | 2 +- 93 files changed, 4456 insertions(+), 1 deletion(-) create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardAdapter.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardItem.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardPresenter.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/AmbientClockView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/MainClockView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/AppGroupView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParser.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserManager.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserV3.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypes.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypesV2.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/HealthModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/LoadImg.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainPresenterSample.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainViewSample.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageAdapter.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageItemView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageMainView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/ModelListenerSample.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/PullUpDownView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiServersMsg.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiViewId.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingPresenter.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcLabelView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcProgressView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBaseModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataBase.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataType.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDigitalImgView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialKaleidoscopeView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialLabelView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCalorie.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCharge.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelChargeC.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateEnStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekMDStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDistance.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHeartRate.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourTens.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourUnits.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoal.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalValue.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinTens.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinUnits.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPower.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerMapper.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStandby.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSPO2.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSecondMapper.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoal.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalValue.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSteps.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTime.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTimeStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeather.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeatherStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekEnStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekNum.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekStr.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOHSliceId.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOptionImgView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialRotateImgView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialSequenceImgView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialStaticImgView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialVideoView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewContainer.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewGroup.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/ModelDialDataFactory.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/OnDialDataUpdateListener.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/RegisterDialModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/WatchInterface.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialInfo.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialPresenter.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialView.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleModel.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStylePresenter.h create mode 100644 code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleView.h diff --git a/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt b/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt index ba33631cb..55059fcb8 100644 --- a/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230/nativeapp/CMakeLists.txt @@ -9,6 +9,7 @@ set(PUBLIC_HEADER ${NativeApp}/nativelauncher/include ${NativeApp}/nativeui/include ${ROOT_DIR}/application/wearable/fd230/nativeapp/nativeui/ + ${ROOT_DIR}/application/wearable/fd230/nativeapp/nativeui/include ) set(PRIVATE_HEADER diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardAdapter.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardAdapter.h new file mode 100644 index 000000000..a819ed10c --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardAdapter.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: AddCardAdapter.h + * Author: + * Create: 2021-09-18 + */ + +#ifndef ADD_CARD_ADAPTER_H +#define ADD_CARD_ADAPTER_H + +#include +#include +#include "components/ui_list.h" +#include "components/ui_label.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/abstract_adapter.h" +#include "UiConfig.h" +#include "wearable_log.h" +#include "add_card/AddCardItem.h" + +namespace OHOS { +class AddCardAdapter : public AbstractAdapter { +public: + explicit AddCardAdapter(); + ~AddCardAdapter() override; + + uint16 GetCount(void) override; + + UIView *GetView(UIView *inView, int16 index) override; + + void AddListItem(const AddCardInfo &item); + + void SetItemClickListener(UIView::OnClickListener *itemClickListener) + { + itemClickListener_ = itemClickListener; + } + + void ClearItem(void); + +private: + std::list listData_; + UIView::OnClickListener *itemClickListener_; +}; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardItem.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardItem.h new file mode 100644 index 000000000..5325f4e22 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardItem.h @@ -0,0 +1,42 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: AddCardItem.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef ADD_CARD_ITEM_H +#define ADD_CARD_ITEM_H + +#include +#include +#include "components/ui_view.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/ui_label_button.h" +#include "UiConfig.h" + +namespace OHOS { +typedef struct { + CardId id; + bool addFlag; + const char *cardImg; +} AddCardInfo; + +class AddCardItem : public UIViewGroup { +public: + AddCardItem(); + ~AddCardItem() override; + void SetItemInfo(const AddCardInfo &cardInfo); + void SetOnClickListener(OnClickListener *onClickListener); + void UpdateItemInfo(bool addFlag); +private: + void SetUpChild(); + UIImageView cardImg_; + UILabelButton cardLabel_; + AddCardInfo cardInfo_; +}; + +} + +#endif // ADD_CARD_ITEM_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardModel.h new file mode 100644 index 000000000..0ef22336e --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardModel.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: AddCardModel.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef ADD_CARD_MODEL_H +#define ADD_CARD_MODEL_H + +#include +#include +#include "AppViewIDs.h" +#include "UiConfig.h" +#include "add_card/AddCardPresenter.h" +#include "main/MainModel.h" + +namespace OHOS { + class AddCardModel { + public: + static AddCardModel &GetInstance(void); + void SetSelectedCardIndex(uint8_t cardIndex); + uint8_t GetSelectedCardIndex(void) const; + void AddCardSetting(void); + private: + AddCardModel(); + AddCardModel(const AddCardModel &); + AddCardModel &operator=(const AddCardModel &); + virtual ~AddCardModel(); + uint8_t selectedCardIndex{0}; + }; +} + +#endif // ADD_CARD_MODEL_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardPresenter.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardPresenter.h new file mode 100644 index 000000000..c0ea8536f --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardPresenter.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: AddCardPresenter.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef ADD_CARD_PRESENTER_H +#define ADD_CARD_PRESENTER_H + +#include "Presenter.h" +#include "components/ui_list.h" +#include "components/ui_view.h" +#include "main/ModelListenerSample.h" + +#define TOAST_KEEP_TIME 1000 + +namespace OHOS { +static const char *ADD_CARD_ADD = "addcardadd"; + +class AddCardView; +class AddCardModel; +class AddCardPresenter : public Presenter, public ModelListenerSample, + public UIView::OnClickListener, public UIView::OnDragListener, + public ListScrollListener { +public: + AddCardPresenter(); + ~AddCardPresenter() override; + + void OnTickEvent() override; + void Notify() override {} + bool OnClick(UIView &view, const ClickEvent &event) override; + void OnScrollStart(int16_t index, UIView *view) override; + void OnScrollEnd(int16_t index, UIView *view) override; + void OnItemSelected(int16_t index, UIView* view) override; + bool OnDrag(UIView& view, const DragEvent& event) override; +private: + void ResetTickTimer(void); + AddCardModel *model{nullptr}; + uint64_t startTime{0}; + bool cardCountEvent{false}; +}; +} + +#endif // ADD_CARD_PRESENTER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardView.h new file mode 100644 index 000000000..952590d8f --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/add_card/AddCardView.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: AddCardView.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef ADD_CARD_VIEW_H +#define ADD_CARD_VIEW_H + +#include "View.h" +#include "components/ui_view_group.h" +#include "components/ui_label.h" +#include "components/ui_image_view.h" +#include "components/ui_toggle_button.h" +#include "ChangeSliceListener.h" +#include "UiConfig.h" +#include "add_card/AddCardAdapter.h" +#include "add_card/AddCardModel.h" + +namespace OHOS { +class AddCardPresenter; + +class AddCardView : public View { +public: + AddCardView(); + ~AddCardView() override; + + static AddCardView *GetInstance() + { + static AddCardView instance; + return &instance; + } + + void OnStart() override; + void RefreshCardList(void); + void ExceedsCardCountEvent(bool isVisible); +private: + void SetUpListInfo(void); + void SetUpListView(void); + void SetUpToast(void); + UIList contentList_; + UILabel toastLabel_; + AddCardAdapter *addCardAdapter_{nullptr}; +}; +} +#endif // ADD_CARD_VIEW_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/AmbientClockView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/AmbientClockView.h new file mode 100644 index 000000000..bb20b9c1c --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/AmbientClockView.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024-2024. All rights reserved. + * Description: AmbientClockView + * Author: + * Create: 2024-10-30 + */ + +#ifndef AMBIENT_VIEW_GROUP_H +#define AMBIENT_VIEW_GROUP_H + +#include +#include +#include "View.h" +#include "components/ui_label.h" +#include "components/root_view.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/ui_label_button.h" +#include "components/ui_sweep_clock.h" +#include "ChangeSliceListener.h" +#include "font/ui_font_bitmap.h" +#include "font/ui_font.h" +#include "graphic_config.h" +#include "main/HealthModel.h" +#include "activity/ActivityModel.h" +#include "UiConfig.h" +#include "components/ui_card_page.h" +#include "animator/animator_manager.h" +#include "sys/time.h" + +namespace OHOS { +class AmbientClockView : public UICardPage { +public: + AmbientClockView(); + ~AmbientClockView() override; + AmbientClockView(const AmbientClockView &) = delete; + AmbientClockView &operator=(const AmbientClockView &) = delete; + + bool InitView(void); + void PreLoad(void) override; + void UpdateTime(void); + uint32_t GetPeriod(void) const + { + return 1000; // 1000: ms + } + +private: + bool InitCenterCircleView(void); + bool InitHandView(void); + void InitDateTime(void); + bool InitSweepClock(void); + bool LoadClockImage(Image *view, uint32_t resId); + UISweepClock *mainSweepClock_{nullptr}; + Image *secondHand_{nullptr}; + Image *minuteHand_{nullptr}; + Image *hourHand_{nullptr}; + Image *hand24Hour_{nullptr}; + Image *bigCircle_{nullptr}; + Image *medCircle_{nullptr}; + Image *smallCircle_{nullptr}; + bool viewiInitStatus_{false}; +}; // class AmbientClockView +} // namespace OHOS +#endif // AMBIENT_VIEW_GROUP_H + diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/MainClockView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/MainClockView.h new file mode 100644 index 000000000..c643693d5 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/clock/MainClockView.h @@ -0,0 +1,75 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MainClockView + * Author: + * Create: 2021-10-18 + */ + +#ifndef MAIN_CLOCK_VIEW_H +#define MAIN_CLOCK_VIEW_H + +#include +#include +#include "View.h" +#include "components/ui_label.h" +#include "components/root_view.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/ui_label_button.h" +#include "components/ui_sweep_clock.h" +#include "ChangeSliceListener.h" +#include "font/ui_font_bitmap.h" +#include "font/ui_font.h" +#include "graphic_config.h" +#include "main/HealthModel.h" +#include "activity/ActivityModel.h" +#include "UiConfig.h" +#include "components/ui_card_page.h" +#include "animator/animator_manager.h" +#include +#include "sys/time.h" + +namespace OHOS { +class MainClockView : public UICardPage { +public: + MainClockView(); + ~MainClockView() override; + static MainClockView *GetInstance(void); + bool InitView(void); + void PreLoad(void) override; + void UnLoad(void) override; + void RefreshStep(int step); + void RefreshHeartRate(int value); + void ClockAnimatorStart(void); + void ClockAnimatorStop(void); + void UpdateTime(void); + +private: + void InitStepValue(); + bool InitLabelView(void); + bool InitCenterCircleView(void); + bool InitHandView(void); + void InitDateTime(void); + bool InitSweepClock(void); + bool LoadClockImage(Image *view, uint32_t resId); + bool LoadClockImage(UIImageView *view, uint32_t resId); + UIImageView *curFace{nullptr}; + UILabelButton *stepLabel{nullptr}; + UILabel *batteryLabel{nullptr}; + UILabel *weekLabel{nullptr}; + UILabel *heartRateLabel{nullptr}; + UISweepClock *mainSweepClock{nullptr}; + Image *secondHand{nullptr}; + Image *minuteHand{nullptr}; + Image *hourHand{nullptr}; + UIImageView *heartRate{nullptr}; + Image *hand24Hour{nullptr}; + UIImageView *weekDay{nullptr}; + UIImageView *progress{nullptr}; + Image *bigCircle{nullptr}; + Image *medCircle{nullptr}; + Image *smallCircle{nullptr}; + bool viewiInitStatus{false}; +}; +} // namespace OHOS +#endif // MAIN_CLOCK_VIEW_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/AppGroupView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/AppGroupView.h new file mode 100644 index 000000000..08529bdb5 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/AppGroupView.h @@ -0,0 +1,28 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: APPVEIW + * Author: + * Create: 2021-10-15 + */ + +#ifndef APP_GROUP_VIEW_H +#define APP_GROUP_VIEW_H + +#include +#include "View.h" +#include "components/ui_card_page.h" +#include "common/screen.h" + +namespace OHOS { +class AppGroupView : public UICardPage { +public: + AppGroupView() + { + SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION); + } + ~AppGroupView() override {} + virtual bool InitView(void *caller)=0; + bool initViewStatus{false}; +}; +} // namespace OHOS +#endif // APP_GROUP_VIEW_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParser.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParser.h new file mode 100644 index 000000000..ac020abe9 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParser.h @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023 CompanyNameMagicTag. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef GRAPHIC_LITE_DIAL_BIN_PARSER_H +#define GRAPHIC_LITE_DIAL_BIN_PARSER_H +#include "main/DialBinParserManager.h" +#include "main/DialBinTypesV2.h" +#include "components/ui_abstract_progress.h" + +namespace OHOS { +class DialBinParser : public DialBinParserInterface { +public: + bool UpdateDial(const std::string& file, FILE* fp, DialViewGroup* group, DisplayState state) override; + bool GetDialPreviewInfo(const std::string& file, FILE* fp, DialPreviewInfo* info) override; + DialBinParser(); + ~DialBinParser() override; + +protected: + int32_t ParseDialHeader(FILE* file); + int32_t ParserDialStaticImg(FILE* fp); + int32_t ParserDialSequenceImg(FILE* fp); + int32_t ParserDialRotateImg(FILE* fp); + int32_t ParserDialOptionImg(FILE* fp); + int32_t ParserDialDigitalImg(FILE* fp); + int32_t ParserDialLabel(FILE* fp); + int32_t ParserDialArcLabel(FILE* fp); + int32_t ParserDialBoxProgress(FILE* fp); + int32_t ParserDialArcProgress(FILE* fp); + int32_t ParserDialVideo(FILE* fp); + int32_t ParserDialClick(FILE* fp); + int32_t ParserDialKaleidoscope(FILE* fp); + +private: + void* MallocAndReadBuf(FILE* file, uint32_t readSize); + bool SetProgressType(FILE* fp, UIAbstractProgress* view, DialProgressType data); + + static constexpr uint8_t DIAL_BIN_PARSER_FUNC_NUM = 12; // 12: func max value + int32_t (DialBinParser::*funcArray_[DIAL_BIN_PARSER_FUNC_NUM])(FILE*); + + DialViewGroup* dialGroup_ = nullptr; + std::string file_; + uint32_t dirId_ = 0xfef << 20; // 20: offset + uint32_t imageOffset_ = 0; + bool v2Version_ = false; + DisplayState state_ = DisplayState::NORMAL; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserManager.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserManager.h new file mode 100644 index 000000000..ae969a32d --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserManager.h @@ -0,0 +1,73 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: DialBinParserManager + * Author: + * Create: 2024-12-03 + */ + +#ifndef GRAPHIC_LITE_DIAL_BIN_PARSER_MANAGER_H +#define GRAPHIC_LITE_DIAL_BIN_PARSER_MANAGER_H +#include +#include +#include "graphic_types.h" +#include "main/dial/DialViewGroup.h" +#include "main/DialBinTypes.h" + +namespace OHOS { +class DialBinParserInterface { +public: + virtual bool UpdateDial(const std::string& file, FILE* fp, DialViewGroup* group, DisplayState state) = 0; + virtual bool GetDialPreviewInfo(const std::string& file, FILE* fp, DialPreviewInfo* info) = 0; + virtual void SetEncryptData(uint8_t *data, uint32_t len) {} + virtual ~DialBinParserInterface() {} +}; // class DialBinParserInterface + +class DialBinParserManager { +public: + static DialBinParserManager *GetInstance(void); + bool UpdateDial(const std::string &file, FILE *fp, DialViewGroup *group, DisplayState state); + bool GetDialPreviewInfo(const std::string& file, FILE *fp, DialPreviewInfo *info, bool isNeedVerify = false); + bool RegisterParser(const std::string &version, DialBinParserInterface *parser); + + uint8_t GetSupportVersionCnt() const + { + return cnt_; + } + + bool GetVersionByIndex(uint8_t index, std::string &version) + { + if (index >= cnt_) { + return false; + } + version = parsers_[index].version; + return true; + } + +private: + DialBinParserManager(); + virtual ~DialBinParserManager(); + DialBinParserInterface *GetParser(FILE* fp) const; + DialBinParserInterface *GetParser(const std::string &fileName, FILE *fp, bool isNeedVerify = false) const; + static constexpr uint8_t PARSER_MAX_NUM = 8; + struct Pair { + std::string version; + DialBinParserInterface *parser = nullptr; + }; + Pair parsers_[PARSER_MAX_NUM]; + uint8_t cnt_ = 0; +}; // class DialBinParserManager + +class DialBinParserRegister { +public: + DialBinParserRegister(const std::string &version, DialBinParserInterface *parser) + { + if (!DialBinParserManager::GetInstance()->RegisterParser(version, parser)) { + GRAPHIC_LOGE("failed to register %s.", version.c_str()); + } + } +}; // class DialBinParserRegister +} // namespace OHOS + +#define REGIST_PARSER(version, func) \ + const static OHOS::DialBinParserRegister STATIC_PARSER_VAR_NAME(version, new func) +#endif // GRAPHIC_LITE_DIAL_BIN_PARSER_MANAGER_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserV3.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserV3.h new file mode 100644 index 000000000..7e7427a83 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinParserV3.h @@ -0,0 +1,75 @@ +/* + * Copyright (c) CompanyNameMagicTag 2025. All rights reserved. + * Description: DialBinParserV3 + * Author: + * Create: 2025-02-06 + */ + +#ifndef GRAPHIC_LITE_DIAL_BIN_PARSER_V3_H +#define GRAPHIC_LITE_DIAL_BIN_PARSER_V3_H +#include "main/DialBinParserManager.h" +#include "main/dial/DialModelTime.h" +#include "components/ui_abstract_progress.h" +#include "main/dial/DialViewContainer.h" +#include "main/dial/DialDataType.h" +#include "main/dial/DialOHSliceId.h" + +namespace OHOS { +class DialBinParserV3 : public DialBinParserInterface { +public: + DialBinParserV3(); + ~DialBinParserV3() override; + bool UpdateDial(const std::string& file, FILE* fp, DialViewGroup* group, DisplayState state) override; + bool GetDialPreviewInfo(const std::string& file, FILE* fp, DialPreviewInfo* info) override; + void SetEncryptData(uint8_t *data, uint32_t len) override final; + +protected: + bool ParseDialHeader(FILE* file); + bool ParserDialStaticImg(ContainerInterface &parent); + bool ParserDialSequenceImg(ContainerInterface &parent); + bool ParserDialRotateImg(ContainerInterface &parent); + bool ParserDialOptionImg(ContainerInterface &parent); + bool ParserDialDigitalImg(ContainerInterface &parent); + bool ParserDialLabel(ContainerInterface &parent); + bool ParserDialArcLabel(ContainerInterface &parent); + bool ParserDialBoxProgress(ContainerInterface &parent); + bool ParserDialArcProgress(ContainerInterface &parent); + bool ParserDialVideo(ContainerInterface &parent); + bool ParserDialClick(ContainerInterface &parent); + bool ParserDialKaleidoscope(ContainerInterface &parent); + bool ParserDialContainer(ContainerInterface &parent); + bool ParserDialOptions(ContainerInterface &parent); + +private: + void* MallocAndReadBuf(FILE* file, uint32_t readSize); + bool SetProgressType(FILE* fp, UIAbstractProgress* view, DialProgressType data); + + static constexpr uint8_t DIAL_BIN_PARSER_FUNC_NUM = 14; // 14: func max value + bool (DialBinParserV3::*funcArray_[DIAL_BIN_PARSER_FUNC_NUM])(ContainerInterface&); + void AddToParentWithView(ContainerInterface &parent, uint8_t displayMode, UIView *view); + void AddToParentWithDialView(ContainerInterface &parent, uint8_t displayMode, + DialView *view, DialDataType bindData, bool isPeriodic); + struct { + uint8_t *viewType; + uint8_t dialViewCount; + FILE *file; + uint8_t curIndex; + } curViewType_; + bool ParseTimeIntervals(FILE* fp, uint8_t cnt, TimeChangeListener *listener); + bool ParseViewType(uint8_t *viewType, uint8_t dialViewCount, FILE *file); + bool ParseContainerSubviews(DialViewContainer *container, uint8_t num); + bool ParseOptionsSubviews(ContainerInterface &parent); + DialHeader *GetHeader(FILE *fp); + uint8_t *GetVeiwType(FILE *fp, DialHeader *dialHeader); + + DialViewGroup* dialGroup_ = nullptr; + std::string file_; + const uint32_t dirId_ = 0xfef << 20; // 20: offset + uint32_t imageOffset_ = 0; + DisplayState state_ = DisplayState::NORMAL; + uint8_t *encryptedData_ = nullptr; + uint32_t encrpytedLen_ = 0; +}; // class DialBinParserV3 +} // namespace OHOS + +#endif // GRAPHIC_LITE_DIAL_BIN_PARSER_V3_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypes.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypes.h new file mode 100644 index 000000000..3301b3d77 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypes.h @@ -0,0 +1,180 @@ +/* + * Copyright (c) 2023 CompanyNameMagicTag. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#ifndef GRAPHIC_LITE_DIAL_BIN_TYPE_H +#define GRAPHIC_LITE_DIAL_BIN_TYPE_H +#include "color.h" +#include "graphic_types.h" +#include "components/ui_canvas_ext.h" + +namespace OHOS { +static constexpr uint8_t DIAL_NAME_MAX_LEN = 16; +static constexpr uint8_t DIAL_VERSION_MAX_LEN = 16; +static constexpr uint8_t DIAL_DESCRIPTION_MAX_LEN = 128; +static constexpr uint8_t DIAL_DIGITALIMG_IMG_MAX_NUM = 10; + +struct DialPreviewInfo { + char dialName[DIAL_NAME_MAX_LEN]; + char description[DIAL_DESCRIPTION_MAX_LEN]; + uint32_t imgId; + uint32_t offset; + uint8_t capability; + uint32_t uuid; + char protocolVersion[DIAL_VERSION_MAX_LEN]; + char watchVersion[DIAL_VERSION_MAX_LEN]; +}; + +struct DialRect { + int16_t x; + int16_t y; + int16_t w; + int16_t h; +}; + +struct DialHeader { + char dialName[DIAL_NAME_MAX_LEN]; + int16_t width; + int16_t height; + char version[DIAL_VERSION_MAX_LEN]; + uint16_t previewImgId; + char description[DIAL_DESCRIPTION_MAX_LEN]; + uint32_t imageOffset; + uint8_t freq; + uint8_t dialViewCount; +}; + +struct DialStaticImg { + Point pos; + Point center; + float rotate; + uint16_t imgId; +}; + +struct DialSequenceImg { + Point pos; + uint16_t interval; + bool repeat; + uint8_t imgNum; +}; + +struct DialRotateImg { + Point pos; + Point center; + int16_t rotateStart; + int16_t rotateEnd; + uint16_t imgId; + int16_t bindData; + bool isPeriod; +}; + +struct DialOptionImg { + Point pos; + int16_t bindData; + bool isPeriod; + uint8_t count; +}; + +struct DialDigitalImg { + uint8_t alignType : 4; + uint8_t integerLength : 4; + uint8_t decimalPrecision; + uint16_t imgIds[DIAL_DIGITALIMG_IMG_MAX_NUM]; + int16_t signImgId; + int16_t decimalPointImgId; + uint16_t space; + Point alignPosition; + int16_t bindData; + bool isPeriod; +}; + +struct DialLabel { + uint8_t breakMode; + uint8_t align; + uint8_t fontSize; + bool isPeriod; + DialRect rect; + uint32_t color; + char fontName[64]; + char text[64]; + int16_t bindData; +}; + +struct DialArcLabel { + uint8_t align; + uint8_t fontSize; + Point center; + int16_t radius; + int16_t rotateStart; + int16_t rotateEnd; + uint32_t color; + char fontName[64]; + char text[64]; + int16_t bindData; + bool isPeriod; +}; + +struct DialProgressType { + uint8_t type; // image | color | gradient_color + DialRect rect; + union { + uint8_t stopCount; + uint16_t imgId; + Color32 color; + }; +}; + +struct DialBoxProgress { + uint8_t cap; + uint8_t direction; + bool isPeriod; + int16_t bindData; + uint32_t bgColor; + DialProgressType typeData; +}; + +struct DialArcProgress { + uint8_t cap; + bool isPeriod; + uint16_t radius; + uint16_t startAngle; + uint16_t endAngle; + uint16_t lineWidth; + int16_t bindData; + uint32_t bgColor; + DialProgressType typeData; +}; + +struct DialVideo { + DialRect rect; + uint32_t offset; + Color32 colorKey; + uint32_t imgId; +}; + +struct DialClick { + uint8_t type; + DialRect rect; + union { + uint32_t sliceId; + char bundleName[64]; + }; +}; + +struct DialKaleidoscope { + uint16_t imgId; + float crownRotateStep; + float animatorRotateStep; +}; +} +#endif // GRAPHIC_LITE_DIAL_BIN_TYPE_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypesV2.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypesV2.h new file mode 100644 index 000000000..d49b354c7 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/DialBinTypesV2.h @@ -0,0 +1,167 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024-2024. All rights reserved. + * Description: DialBinTypesV2 + * Author: + * Create: 2024-10-30 + */ + +#ifndef GRAPHIC_LITE_DIAL_BIN_TYPE_V2_H +#define GRAPHIC_LITE_DIAL_BIN_TYPE_V2_H +#include "main/DialBinTypes.h" + +namespace OHOS { +enum class DisplayState { + NORMAL, + AOD, +}; +static constexpr uint8_t DIAL_DISPLAY_CAPABILITY_NORMAL_ONLY = 0; +static constexpr uint8_t DIAL_DISPLAY_CAPABILITY_AMBITIENT_ONLY = 1; +static constexpr uint8_t DIAL_DISPLAY_CAPABILITY_AMBITIENT_NORMAL = 2; + +struct DialHeader_V2 { + char dialName[DIAL_NAME_MAX_LEN]; + int16_t width; + int16_t height; + char version[DIAL_VERSION_MAX_LEN]; + uint16_t previewImgId; + char description[DIAL_DESCRIPTION_MAX_LEN]; + uint32_t imageOffset; + uint8_t freq; + uint8_t dialViewCount; + uint8_t displayCapabiliy; + uint8_t ambientFreq; +}; + +struct DialStaticImg_V2 { + Point pos; + Point center; + float rotate; + uint16_t imgId; + uint8_t displayMode; +}; + +struct DialSequenceImg_V2 { + Point pos; + uint16_t interval; + bool repeat; + uint8_t imgNum; + uint8_t displayMode; +}; + +struct DialRotateImg_V2 { + Point pos; + Point center; + int16_t rotateStart; + int16_t rotateEnd; + uint16_t imgId; + int16_t bindData; + bool isPeriod; + uint8_t displayMode; + bool isAmbientPeriodic; +}; + +struct DialOptionImg_V2 { + Point pos; + int16_t bindData; + bool isPeriod; + uint8_t count; + uint8_t displayMode; + bool isAmbientPeriodic; +}; + +struct DialDigitalImg_V2 { + uint8_t alignType : 4; + uint8_t integerLength : 4; + uint8_t decimalPrecision; + uint16_t imgIds[DIAL_DIGITALIMG_IMG_MAX_NUM]; + int16_t signImgId; + int16_t decimalPointImgId; + uint16_t space; + Point alignPosition; + int16_t bindData; + bool isPeriod; + uint8_t displayMode; + bool isAmbientPeriodic; +}; + +struct DialLabel_V2 { + uint8_t breakMode; + uint8_t align; + uint8_t fontSize; + bool isPeriod; + DialRect rect; + uint32_t color; + char fontName[64]; + char text[64]; + int16_t bindData; + uint8_t displayMode; + bool isAmbientPeriodic; +}; + +struct DialArcLabel_V2 { + uint8_t align; + uint8_t fontSize; + Point center; + int16_t radius; + int16_t rotateStart; + int16_t rotateEnd; + uint32_t color; + char fontName[64]; + char text[64]; + int16_t bindData; + bool isPeriod; + uint8_t displayMode; + bool isAmbientPeriodic; +}; + +struct DialBoxProgress_V2 { + uint8_t cap; + uint8_t direction; + bool isPeriod; + int16_t bindData; + uint32_t bgColor; + DialProgressType typeData; + uint8_t displayMode; + bool isAmbientPeriodic; +}; + +struct DialArcProgress_V2 { + uint8_t cap; + bool isPeriod; + uint16_t radius; + uint16_t startAngle; + uint16_t endAngle; + uint16_t lineWidth; + int16_t bindData; + uint32_t bgColor; + DialProgressType typeData; + uint8_t displayMode; + bool isAmbientPeriodic; +}; + +struct DialVideo_V2 { + DialRect rect; + uint32_t offset; + Color32 colorKey; + uint32_t imgId; + uint8_t displayMode; +}; + +struct DialClick_V2 { + uint8_t type; + DialRect rect; + union { + uint32_t sliceId; + char bundleName[64]; + }; + uint8_t displayMode; +}; + +struct DialKaleidoscope_V2 { + uint16_t imgId; + float crownRotateStep; + float animatorRotateStep; + uint8_t displayMode; +}; +} // namespace OHOS +#endif // GRAPHIC_LITE_DIAL_BIN_TYPE_V2_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/HealthModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/HealthModel.h new file mode 100644 index 000000000..9b6015779 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/HealthModel.h @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2020-2021 CompanyNameMagicTag. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef HEALTH_MODEL_H +#define HEALTH_MODEL_H + +#include +#include "gfx_utils/list.h" +#include "main/UiServersMsg.h" + +namespace OHOS { +#define NUM_1 1 +#define NUM_2 2 +#define NUM_3 3 +#define NUM_4 4 +#define NUM_5 5 +#define NUM_7 7 +#define NUM_16 16 +#define NUM_99 99 + +typedef struct { + uint32 healthSleep; + uint32 heat; +} HealthAllData; + + +extern HealthAllData g_healthData; +#define FILE_NAME_LENGTH 50 +#define LIST_HEALTH_MAX 20 + +class HealthModel { +public: + HealthModel(); + virtual ~HealthModel(); + static HealthModel *GetInstance(void); + int SaveGlobalHealthToFile(void); + int GetHealthGlobalData(DataDistribute type, uint32 *value); + bool InitHealthData(void); + bool GetHealthFrontData(HealthMsg *healthMsg); + void HealthPopFront(void); + bool FetchedHealthData(HealthMsg *healthMsg); + void PushHealthData(HealthMsg healthMsg); +// drop down status + int GetBriScrStatus(void); + int GetDntDistStatus(void); + void UpdateBriScrStatus(uint16_t status); + void UpdateDntDistStatus(uint16_t status); +private: + bool SetUpListCase(void); + List listHealth; + uint32 listHealthNum = 0; + int briScreenStatus{0}; + int dntDisturbStatus{0}; +}; +} + +#endif // HEALTH_MODEL_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/LoadImg.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/LoadImg.h new file mode 100644 index 000000000..b92e242a7 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/LoadImg.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) CompanyNameMagicTag 2025-2025. All rights reserved. + * Description: LoadImg + * Create: 2025-06-05 + */ +#ifndef LOAD_IMG_H +#define LOAD_IMG_H + +#include +#include "wearable_log.h" +#include "components/ui_button.h" +#include "components/ui_image_view.h" +#include "common/image_cache_manager.h" + +namespace OHOS { +namespace LOADIMG { +// 加载图片资源 +void LoadBtnImage(UIButton *btn, std::string file, uint32_t resId1, uint32_t resId2); + +void LoadImageViewImg(UIImageView *view, std::string file, uint32_t resId); +} +} +#endif // LOAD_IMG_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainModel.h new file mode 100644 index 000000000..659ff2467 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainModel.h @@ -0,0 +1,71 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MainModel.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef MAIN_MODEL_H +#define MAIN_MODEL_H + +#include +#include "UiConfig.h" + +namespace OHOS { + typedef struct { + CardId id; + const char *cardImg; + } CardInfo; + + typedef struct { + uint8_t id; + const char *dialName; + const char *dialImg; + uint8_t freq; + uint8_t capability; + } DialInfo; + + typedef struct { + uint8_t dialFlag; // 0 在线表盘 1 离线表盘 + uint8_t dialId; + std::string dialFullName; + } DialSetting; + + class MainModel { + public: + static MainModel &GetInstance(void); + void InitCardSettings(void); + uint8_t GetCardSettingCount(void); + CardId *GetCardSettings(void); + void DeleteCardSetting(uint8_t index); + void AddCardSetting(uint8_t index); + const CardInfo *GetCardInfo(CardId card) const; + const DialInfo *GetDialInfo(uint8_t dial) const; // 获取在线表盘配置 + uint8_t GetDialInfoNum() const; // 获取在线表盘的数量 + void AddDialSetting(const DialSetting &setting); + void InitDialSettings(void); + DialSetting &GetDialSetting(); + bool IsFromSetCardView(void) const; + void SetFromSetCardView(bool isFrom); + void SetFromCardId(uint8_t cardId); + uint8_t GetFromCardId(void); + bool IsAodEnabled(); + void EnableAod(bool enable); + + private: + void InitDialSettingDefault(void); + MainModel(); + MainModel(const MainModel &); + MainModel &operator=(const MainModel &); + virtual ~MainModel(); + + CardId cardSettings[CARD_SETTING_COUNT_MAX] = { MAX_CARD }; + uint8_t cardSettingCount{0}; + DialSetting dialSetting; + bool isFromSetCardView{false}; + uint8_t fromCardId{MAX_CARD}; + bool isAodEnabled{false}; + }; +} + +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainPresenterSample.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainPresenterSample.h new file mode 100644 index 000000000..444436189 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainPresenterSample.h @@ -0,0 +1,87 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MainPresenterSample + * Author: + * Create: + */ + +#ifndef MAIN_PRESENTER_SAMPLE_H +#define MAIN_PRESENTER_SAMPLE_H + +#include "Presenter.h" +#include "main/ModelListenerSample.h" +#include "components/root_view.h" +#include "drag_event.h" +#include "main/MainViewSample.h" +#include "main/MainModel.h" +#include "components/ui_swipe_view.h" +#include "components/ui_view.h" +#include "compass/MainCompassView.h" +#include "compass/MainCompassPresenter.h" +#include "player/PlayersView.h" +#include "heartrate/HeartRateView.h" +#include "swipe_effect/zoom_effect.h" + +namespace OHOS { +static constexpr const char *MAIN_CLICK_WEATHER = "mainclickweather"; +static constexpr const char *MAIN_CLICK_ACTIVITY = "mainclickactivity"; +static constexpr const char *MAIN_CLICK_MESSAGE = "mainclickmessage"; +static constexpr const char *MAIN_CLICK_HEARTRATE = "mainclickheartrate"; + +static constexpr const char *DROPDOWN_CLICK_DONOTDISTURB = "dropdownclickdonotdisturb"; +static constexpr const char *DROPDOWN_CLICK_BRIGHTENSCREEN = "dropdownclickbrightscreen"; +static constexpr const char *DROPDOWN_CLICK_FINDMYPHONE = "dropdownclickfindmyphone"; +static constexpr const char *DROPDOWN_CLICK_ALARM = "dropdownclickalarm"; +static constexpr const char *DROPDOWN_CLICK_SETTING = "dropdownclicksetting"; +constexpr uint16_t VERTICAL_STATUS = 1; +constexpr uint16_t HORIZONTAL_STATUS = 0; +enum class MainPresenterState { + START, + RESUME, + PAUSE, + STOP, +}; + +class MainViewSample; +class MainPresenterSample : public Presenter, public ModelListenerSample, + public UIView::OnClickListener, public UISwipeView::OnSwipeListener, + public UIView::OnLongPressListener, public UISwipeView { +public: + MainPresenterSample(); + ~MainPresenterSample() override; + static MainPresenterSample *GetInstance(void); + + void OnStart() override; + void OnPause() override; + void OnResume() override; + void OnStop() override; + void Notify() override; + bool OnClick(UIView& view, const ClickEvent& event) override; + bool OnLongPress(UIView& view, const LongPressEvent& event) override; + void OnSwipe(UISwipeView& view) override; + void SetPage(int8_t id, bool loadAdjacent = true); + void SetTaskPeroid(CardId cardId); + + void InitCardSettings(void); + uint8_t GetCardSettingCount(void); + CardId *GetCardSettings(void); + void InitDialSettings(void); + DialSetting& GetDialSetting(); + bool IsFromSetCardView(void) const; + void SetFromSetCardView(bool isFrom); + uint8_t GetFromCardId(void); + MainPresenterState GetMainPresenterState(); + +private: + void ProcessDataNotify(void); + void SetCircleProgress(void); + uint8_t state_ = UICheckBox::UICheckBoxState::MAX_STATUS_NUM; + int64_t playerCurrentTime_{0}; + int64_t playerMusicDuration_{0}; + int64_t playerProgressValue_{0}; + bool isCompassSensorOpened_{false}; + MainPresenterState mainPresenterState_ = MainPresenterState::STOP; +}; +} + +#endif // MAIN_PRESENTER_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainViewSample.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainViewSample.h new file mode 100644 index 000000000..b390e03c8 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MainViewSample.h @@ -0,0 +1,103 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MainViewSample + * Author: + * Create: + */ + +#ifndef MAIN_VIEW_SAMPLE_H +#define MAIN_VIEW_SAMPLE_H + +#include +#include "View.h" +#include "components/root_view.h" +#include "swipe_effect/zoom_effect.h" +#include "ChangeSliceListener.h" +#include "font/ui_font.h" +#include "graphic_config.h" +#include "main/ModelListenerSample.h" +// #include "screensetting/ScreenModels.h" +#include "activity/ActivityWeekView.h" +#include "compass/CompassControlView.h" +#include "main/dial/DialViewGroup.h" +#include "clock/MainClockView.h" +#include "player/PlayersView.h" +#include "main/MainPresenterSample.h" +#include "heartrate/HeartRateView.h" +#include "components/ui_card_page.h" +#include "main/PullUpDownView.h" +#include "components/ui_cross_view.h" +#include "set_card/SetCardModel.h" +#include "videocard/VideoCard.h" + +namespace OHOS { +class MainPresenterSample; +class MainViewSample : public View { +public: + MainViewSample(); + ~MainViewSample() override; + static MainViewSample *GetInstance(void); + void OnStart() override; + void OnStop() override; + UICardPage *InitWatchFacePage(void); + UICardPage *InitHeartRatePage(void); + UICardPage *InitActivityPage(void); + UICardPage *InitCompassPage(void); + UICardPage *InitMusicPlayerPage(void); + UICardPage *InitVideoCardPage1(void); + UICardPage *InitVideoCardPage2(void); + UICardPage *InitVideoCardPage3(void); + void AnimatorStart(int pageIndex); + void AnimatorStop(void); + CardId GetHorCurrentCard() const; + UIView* GetMainViewGroup(void) const + { + return mainSwipeGroup; + } + + UICardPage* GetViewById(int16_t id) const + { + if (id >= MAX_CARD) { + return nullptr; + } + return recordCard[id]; + } + + void SwitchToClockPage(bool loadAdjacent = true) + { + if (mainClockView != nullptr) { + SetPage(mainClockView->GetViewIndex(), loadAdjacent); + } + } + void SwitchToCard(uint8_t cardId, bool loadAdjacent = true); + bool IsMainClockPage(void); + void SetPage(int16_t page, bool loadAdjacent = true); + void ReloadWatchFace(); + +private: + PullUpDownView *dropDownView{nullptr}; + UICardPage *messageView{nullptr}; + UILabel *messageLable{nullptr}; + UICardPage *mainClockView{nullptr}; + ActivityWeekView *activityWeekView{nullptr}; + PlayersView *playersView{nullptr}; + CompassControlView *compassControlView{nullptr}; + HeartRateView *heartRateView{nullptr}; + UICardPage *recordCard[MAX_CARD]{nullptr}; + bool pageStatus[MAX_CARD]{false}; + UICrossView *mainSwipeGroup{nullptr}; + ZoomEffect* callback{nullptr}; + VideoCard *videoCard1{nullptr}; + VideoCard *videoCard2{nullptr}; + VideoCard *videoCard3{nullptr}; + + bool HorizontalViewInit(void); + void VerticalViewInit(void); + void VertViewLoad(void); + void HorViewLoad(void); + UICardPage *InitWatchOffDial(DialSetting &setting); + UICardPage *InitWatchDial(DialSetting &setting); + UICardPage *InitVideoCardPage(const std::string &video, const std::string &preview); +}; +} // namespace OHOS +#endif // MAIN_VIEW_SAMPLE_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageAdapter.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageAdapter.h new file mode 100644 index 000000000..a3e52fe35 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageAdapter.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. + */ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MessageAdapter.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef MESSAGE_ADAPTER_H +#define MESSAGE_ADAPTER_H + +#include +#include +#include "components/ui_list.h" +#include "components/ui_label.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/abstract_adapter.h" +#include "wearable_log.h" +#include "UiConfig.h" +#include "main/MainModel.h" +#include "main/MessageItemView.h" + +namespace OHOS { +class MessageAdapter : public AbstractAdapter { +public: + explicit MessageAdapter(); + ~MessageAdapter() override; + + /* * + * @brief Sets the UIView adapter data, which is a WeatherItem linked list. + * + * @param data Indicates the MessageItem linked list data. + * @since 1.0 + * @version 1.0 + */ + void SetData(std::list &data); + + /* * + * @brief Obtains the data size of the UILabel adapter. + * + * @return Returns the data size of the UILabel adapter. + * @since 1.0 + * @version 1.0 + */ + uint16_t GetCount(void) override; + + UIView *GetView(UIView *inView, int16_t index) override; + + void AddListItem(const MessageItem &item); + + void ClearListItem(); + + void SetItemClickListener(UIView::OnClickListener *itemclicklistener) + { + itemClickListener = itemclicklistener; + } +private: + std::list listData; + UIView::OnClickListener *itemClickListener{nullptr}; +}; +} + +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageItemView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageItemView.h new file mode 100644 index 000000000..73ec20a55 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageItemView.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) Huawei Technologies Co., Ltd. 2025-2025. All rights reserved. + */ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: weather/WeatherItemView.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef MESSAGE_ITEM_VIEW_H +#define MESSAGE_ITEM_VIEW_H + +#include "components/ui_label.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/ui_canvas.h" + +#include "UiConfig.h" +#include "main/MessageModel.h" + +namespace OHOS { +class MessageItemView : public UIViewGroup { +public: + explicit MessageItemView(); + ~MessageItemView() override; + virtual void SetItemInfo(const MessageItem itemInfo); + virtual void SetUpChild(); +private: + UILabel sLabel_1; + UIImageView sIcon; + UILabel sLabel_2; + UILabel sLabel_3; + UIImageView sNextImage; + UILabel sback; + MessageItem sItemInfo = { nullptr, nullptr, nullptr, nullptr}; +}; +} + +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageMainView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageMainView.h new file mode 100644 index 000000000..79b049adf --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageMainView.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: WeekStep + * Author: + * Create: 2021-09-11 + */ + +#ifndef MESSAGE_MAIN_VIEW_H +#define MESSAGE_MAIN_VIEW_H + +#include "graphic_types.h" +#include "wearable_log.h" +#include "components/ui_card_page.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/ui_label.h" +#include "components/ui_label_button.h" +#include "main/MessageModel.h" +#include "main/MessageAdapter.h" + +namespace OHOS { +class MessageMainView : public UICardPage { +public: + MessageMainView(); + ~MessageMainView() override; + static MessageMainView *GetInstance(void); + bool InitView(); + void PreLoad(void) override; + void VerticalViewInits(void); + void ConfirmDeletion(void); + void CancelDeletion(void); + void ShowMessageList(void); + void DeletionView(void); + void NoNotify(void); + void NewNotify(void); + void RefreshMessageList(std::vector item); + bool InitScrollData(); + MessageAdapter *listAdapter{nullptr}; + UIList *contentList{nullptr}; // 列表 +private: + UILabel *messageLables{nullptr}; // 无消息 + UILabel *messageLable{nullptr}; // 通知 + UILabel *deletereminder{nullptr}; // 是否删除通知? + UILabelButton *confirm{nullptr}; // 确认 + UILabelButton *cancel{nullptr}; // 取消 + UIImageView *notice{nullptr}; // 删除图标 + UIView::OnClickListener *clickListener{nullptr}; + UIView::OnClickListener *confirmListener{nullptr}; + UIView::OnClickListener *cancelListener{nullptr}; + UIView::OnClickListener *notifyListener{nullptr}; + UIView::OnClickListener *newNotifyListener{nullptr}; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageModel.h new file mode 100644 index 000000000..fd24ca33d --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/MessageModel.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MainModel.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef MESSAGE_MODEL_H +#define MESSAGE_MODEL_H + +#include +#include +#include "UiConfig.h" + +namespace OHOS { +typedef struct { + std::string label_1; + std::string icon; + std::string label_2; + std::string label_3; +} MessageItem; + + // static const uint16_t WEATHER_ITEM_COUNT = 10; + class MessageModel { + public: + static MessageModel &GetInstance(void); + void InitMessageItem(); + const std::vector GetMessagelistItems() const; + void ClearListItem(); + void GetMessageInfo(std::string app, std::string contact, std::string information); + void SetViewStatus(bool viewStatus); + bool GetViewStatus(void); + private: + MessageModel(); + MessageModel(const MessageModel &); + MessageModel &operator=(const MessageModel &); + virtual ~MessageModel(); + std::vector vecMsg; + MessageItem mes; + bool viewInitStatus{false}; + }; +} + +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/ModelListenerSample.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/ModelListenerSample.h new file mode 100644 index 000000000..3484cb6e8 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/ModelListenerSample.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) 2020-2021 CompanyNameMagicTag. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef MODEL_LISTENER_SAMPLE_H +#define MODEL_LISTENER_SAMPLE_H + +#include "common/task.h" + +namespace OHOS { +class ModelListenerSample : public Task { +public: + ModelListenerSample(); + virtual ~ModelListenerSample(); + virtual void Notify(void) = 0; + virtual void OnTickEvent(void) {}; + void Callback() override; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/PullUpDownView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/PullUpDownView.h new file mode 100644 index 000000000..e511eccee --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/PullUpDownView.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: WeekStep + * Author: + * Create: 2021-09-11 + */ + +#ifndef PULL_UP_DOWN_VIEW_H +#define PULL_UP_DOWN_VIEW_H + +#include "graphic_types.h" +#include "wearable_log.h" +#include "components/ui_card_page.h" +#include "components/ui_view_group.h" +#include "components/ui_image_view.h" +#include "components/ui_label.h" +#include "components/ui_label_button.h" + +namespace OHOS { +class PullUpDownView : public UICardPage { +public: + PullUpDownView(); + ~PullUpDownView() override; + static PullUpDownView *GetInstance(void); + bool InitView(); + void PreLoad(void) override; + void UpdateBlueToothStatus(int status); +private: + UIImageView *dnotDisturb{nullptr}; + UIImageView *briScreen{nullptr}; + UIImageView *finPhone{nullptr}; + UIImageView *droAlarm{nullptr}; + UIImageView *droSetting{nullptr}; + UILabel *dnotDisturbLable{nullptr}; + UILabel *briScreenLable{nullptr}; + UILabel *finPhoneLable{nullptr}; + UILabel *droAlarmLable{nullptr}; + UILabel *droSettingLable{nullptr}; + UIImageView *bluetooth{nullptr}; + UIImageView *battery{nullptr}; + UILabel *batteryLable{nullptr}; + UILabel *dateLable{nullptr}; + bool viewiInitStatus{false}; + + void InitSubViewImg(void); + void InitViewImg(void); + void InitViewLable(void); + void InitViewInfo(void); + + UIView::OnClickListener *clickListener{nullptr}; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiServersMsg.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiServersMsg.h new file mode 100644 index 000000000..0a17cf583 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiServersMsg.h @@ -0,0 +1,44 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: Msg of UIservers + * Author: CompanyName + * Create: 2021-8-8 + */ + +#ifndef UI_SERVERS_MSG_H +#define UI_SERVERS_MSG_H + +#include +#include "ohos_types.h" +#include "message.h" + +#ifdef __cplusplus +#if __cplusplus +extern "C" { +#endif +#endif + +typedef enum { + HEART_RATE_PER_SEC, + HEART_RATE_AVE, + HEART_RATE_REST, + HEART_RATE_MAX, + HEART_RATE_MIN, + HEALTH_SLEEP, + BATTERY_LIFE, +} DataDistribute; + +typedef struct { + uint16_t type; + uint32 value; +} HealthMsg; + +int PushOHOSMsgToHealthModel(Request *request); + +#ifdef __cplusplus +#if __cplusplus +} +#endif +#endif + +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiViewId.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiViewId.h new file mode 100644 index 000000000..118919dbf --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/UiViewId.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: UIVIEWID + * Author: + * Create: 2021-10-15 + */ + +#ifndef UI_VIEWID_H +#define UI_VIEWID_H + +#include +#include "ohos_types.h" + +namespace OHOS { + #define BLUETOOTH_NEWEQUIPMENT_BUTTON "newEquipmentButton" // 新设备 + #define BLUETOOTH_UNPAIR_BUTTON "unpairButton" // 取消配对 + #define BLUETOOTH_OPTIONONE_BUTTON "optionsOneButton" // 重新连接 + #define BLUETOOTH_SETTING_BUTTON "settingButton" + #define BLUETOOTH_DELETE_BUTTON "deleteButton" + #define BLUETOOTH_SUCC_BACK_BUTTON "succBackButton" // 连接成功确认 + #define BLUETOOTH_FAIL_BACK_BUTTON "failBackButton" // 重试按钮 + #define BLUETOOTH_CONN_FAIL_BACK_BUTTON "connfailBackButton" // 连接失败确认 +} + +#endif // UI_VIEWID_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingPresenter.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingPresenter.h new file mode 100644 index 000000000..2e0017072 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingPresenter.h @@ -0,0 +1,56 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: VolumeSettingView view + * Create: 2021-09-5 + */ + +#ifndef VOLUME_SETTING_PRESENTER_H +#define VOLUME_SETTING_PRESENTER_H + +#include "components/ui_image_view.h" +#include "components/ui_label_button.h" +#include "components/ui_view_group.h" +#include "components/ui_slider.h" +#include "main/VolumeSettingView.h" +#include "player/PlayersView.h" + +namespace OHOS { +#define INCREASE_BUTTON "increaseButton" +#define DECREASE_BUTTON "decreaseButton" +#define VOLUME_PROGRESS "progress" +#define VOLUME_VIEW "volumeview" + +typedef enum : uint16_t { + VOLUMEPHONE = 1, + VOLUMEPLAYERS = 3, + VOLUMEPHONENOTIFY = 4, +} VolumeFactor; + +typedef enum : uint8_t { + VOLUMEDOWN = 0, + VOLUMEUP = 1, + VOLUMEDRAG = 2, +} VolumeChangeStatus; + +class VolumeSettingView; +class VolumeSliderEventListener : public UISlider::UISliderEventListener, + public UIView::OnClickListener, + public UIView::OnDragListener { +public: + VolumeSliderEventListener(VolumeSettingView *volumeSetting); + ~VolumeSliderEventListener(); + static VolumeSliderEventListener *GetInstance(); + void OnChange(int32_t progress) override; + void OnRelease(int32_t progress) override; + void ChangeVolume(VolumeChangeStatus status); + bool OnClick(UIView& view, const ClickEvent& event) override; + bool OnDrag(UIView& view, const DragEvent& event) override; + void SetPlayerCoefficients(int16_t value); + void BtAndLocalVolumeSet(int16_t sounding); +private: + int16_t preSound{0}; + int16_t playerCoefficients{0}; + VolumeSettingView *volumeSettingView{nullptr}; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingView.h new file mode 100644 index 000000000..b4ccd2239 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/VolumeSettingView.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: VolemeSettingView view + * Create: 2021-09-5 + */ + +#ifndef VOLUME_SETTING_VIEW_H +#define VOLUME_SETTING_VIEW_H + +#include "components/ui_image_view.h" +#include "components/ui_button.h" +#include "components/ui_view_group.h" +#include "components/ui_slider.h" +#include "player/PlayersView.h" +#include "wearable_log.h" +#include "main/VolumeSettingPresenter.h" + +namespace OHOS { +#define VOLUME_MIN 0 +#define VOLUME_MAX 100 + +class VolumeSettingView : public UIViewGroup { +public: + VolumeSettingView(); + ~VolumeSettingView(); + int16_t sounding{0}; + + UISlider *GetProgress(void); + bool SetUpVolume(void); + UIButton *GetIncreaseButton(void); + UIButton *GetDecreaseButton(void); + VolumeSliderEventListener *GetVolumeEventListener(void); +private: + VolumeSliderEventListener *listener{nullptr}; + UISlider *progress{nullptr}; + UIButton *increaseButton{nullptr}; + UIButton *decreaseButton{nullptr}; + int ShowVolume(); +}; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcLabelView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcLabelView.h new file mode 100644 index 000000000..899d1de81 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcLabelView.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_ARC_LABEL_VIEW_H +#define DIAL_ARC_LABEL_VIEW_H + +#include +#include "main/dial/DialView.h" +#include "components/ui_arc_label.h" +#include "font/font_global_manager.h" + +namespace OHOS { +class DialArcLabelView : public UIArcLabel, public DialView, public FontGlobalManager::LangChangeListener { +public: + DialArcLabelView(); + ~DialArcLabelView() override; + + bool SetText(const char* text); + bool SetTextWithWildcard(const char* text); + void HandleTextData(const std::string* data, uint16_t num) override; + void HandleFloatData(const float* data, uint16_t num) override; + void HandleFloatData(float data) override; + void SetLang(uint8_t lang); + void OnLangChange(uint8_t langId) override; + +private: + void SetTextWithWildcardInner(const char* text); + static const uint8_t MAX_BUF_SIZE = 255; + char* text_ = nullptr; + char dstBuf_[MAX_BUF_SIZE] = {0}; + uint8_t language_ = FontGlobalManager::INVALID_LANG_ID; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcProgressView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcProgressView.h new file mode 100644 index 000000000..4e4763956 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialArcProgressView.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_ARC_PROGRESS_VIEW_H +#define DIAL_ARC_PROGRESS_VIEW_H + +#include "main/dial/DialView.h" +#include "components/ui_circle_progress.h" + +namespace OHOS { +class DialArcProgressView : public UICircleProgress, public DialView { +public: + DialArcProgressView(); + ~DialArcProgressView() override; + void HandleFloatData(float data) override; + void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override; +private: + int32_t value_ = -1; +}; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBaseModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBaseModel.h new file mode 100644 index 000000000..d9e6bd0e2 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBaseModel.h @@ -0,0 +1,65 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialBaseModel + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_BASE_MODEL_H +#define DIAL_BASE_MODEL_H + +#include +#include "heap_base.h" +#include "main/dial/OnDialDataUpdateListener.h" + +namespace OHOS { +class DialBaseModel : public HeapBase { +public: + DialBaseModel() {} + virtual ~DialBaseModel() {} + + /* * + * @brief Regist on dial data change listener + */ + void RegisterDialDataListener(OnDialDataUpdateListener* listener) + { + onChangeListener_ = listener; + } + + /* * + * @brief Unregist on dial data change listener + */ + void UnRegisterDialDataListener() + { + onChangeListener_ = nullptr; + } + + /* * + * @brief Get dial data of text type + */ + virtual bool GetDialTextData(DialDataType& type, std::string*& out, int16_t& strNum) + { + return false; + } + + /* * + * @brief Get dial data of single float type + */ + virtual bool GetDialFloatData(DialDataType& type, float& out) + { + return false; + } + + /* * + * @brief Get dial data of multi float type + */ + virtual bool GetDialFloatData(DialDataType& type, float*& out, int16_t len) + { + return false; + } + +protected: + OnDialDataUpdateListener* onChangeListener_ = nullptr; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressModel.h new file mode 100644 index 000000000..51d8c6625 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressModel.h @@ -0,0 +1,42 @@ +#ifndef DIAL_BOX_PROGRESS_MODEL_H +#define DIAL_BOX_PROGRESS_MODEL_H + +#include +#include "View.h" + +enum DialBoxDataType { + // 剩余电量百分比 + BATTERY_LEVEL = 1, + // 步数目标 + STEP_TARGET = 2, + // 卡路里 + CALORIE_TARGET = 3, +}; + +namespace OHOS { +class DialBoxProgressModel { +public: + DialBoxProgressModel(); + ~DialBoxProgressModel(); + static DialBoxProgressModel *GetInstance() { + static DialBoxProgressModel instance; + return &instance; + } + + void UpdateBatteryColor( float value_); + void SetViewColor(int64_t color); + int64_t GetViewColor(); + + + uint32_t DialBoxDataTypeToBitPattern(DialBoxDataType type); + uint32_t ConvertToRequiredFormat(DialBoxDataType type, float data); + DialBoxDataType ExtractDataType(uint32_t rawData); + uint32_t ExtractValue(uint32_t rawData); + +private: + int32_t value_ = -1; + int64_t color_ = Color::White().full; + DialBoxDataType datatype_ = BATTERY_LEVEL; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressView.h new file mode 100644 index 000000000..4c8d5e67c --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialBoxProgressView.h @@ -0,0 +1,22 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_BOX_PROGRESS_VIEW_H +#define DIAL_BOX_PROGRESS_VIEW_H + +#include "main/dial/DialView.h" +#include "components/ui_box_progress.h" + +namespace OHOS { +class DialBoxProgressView : public UIBoxProgress, public DialView { +public: + DialBoxProgressView(); + ~DialBoxProgressView() override; + void HandleFloatData(float data) override; + void OnDraw(BufferInfo& gfxDstBuffer, const Rect& invalidatedArea) override; +private: + int32_t value_ = -1; +}; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataBase.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataBase.h new file mode 100644 index 000000000..569441e27 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataBase.h @@ -0,0 +1,76 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialBaseModel + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_DATA_BASE_H +#define DIAL_DATA_BASE_H +#include "main/dial/DialDataType.h" + +enum class DialOldDataType { + DATA_TYPE_FLOAT_BASE = 0, + DATA_TYPE_STEPS, // Ô˶¯²½Êý + DATA_TYPE_HEART_RATE, // ÐÄÂÊ + DATA_TYPE_CALORIE, // Ô˶¯¿¨Â·Àï + DATA_TYPE_TEMPERATURE, // ÎÂ¶È + DATA_TYPE_PM25, // PM2.5 (ĿǰûÓÐÓ³Éä ÐèÒªÔö¼Ó) + DATA_TYPE_PRESSURE, // ѹÁ¦ + DATA_TYPE_AILTITUDE, // º£°Î + DATA_TYPE_POWER, // µçÁ¿ + DATA_TYPE_CLOCK_ANGLE_H, // ʱÕë½Ç¶È + DATA_TYPE_CLOCK_ANGLE_M, // ·ÖÕë½Ç¶È + DATA_TYPE_CLOCK_ANGLE_S, // ÃëÕë½Ç¶È + DATA_TYPE_CLOCK_ANGLE_MS, // ºÁÃëÕë½Ç¶È + DATA_TYPE_TIME_SECOND, // Ãë + DATA_TYPE_TIME_MINUTE, // ·ÖÖÓ + DATA_TYPE_TIME_HOUR, // Сʱ + DATA_TYPE_TIME_DATE, // ÈÕÆÚ + DATA_TYPE_TIME_WEEK, // ÐÇÆÚ + DATA_TYPE_TIME_MONTH, // ÔÂ·Ý + DATA_TYPE_TIME_YEAR, // Äê·Ý + /* ------------------------------- ÔÚÏÂÃæÔö¼ÓÐÂÊý¾ÝÀàÐÍ + ------------------------------- */ + DATA_TYPE_CHARGE, // ³äµç״̬ + DATA_TYPE_DIALPATH, // ±íÅÌ·¾¶ (ĿǰûÓÐÓ³Éä ÐèÒªÔö¼Ó£¬µ«ÊǸÃÏî ûÓÐʹÓã¿) + DATA_TYPE_SPO2, // ѪÑõ + DATA_TYPE_DISTANCE, // Ô˶¯¾àÀë + DATA_TYPE_WEATHER, // ÌìÆø + DATA_TYPE_POWER_STANDBY, // ±¸ÓõçÁ¿Êý¾ÝÀàÐÍ + DATA_TYPE_HOUR_TENS, // Сʱ(ʮλ) + DATA_TYPE_HOUR_UNITS, // Сʱ(µ¥Î») + DATA_TYPE_MINUTE_TENS, // ·ÖÖÓ(ʮλ) + DATA_TYPE_MINUTE_UNITS, // ·ÖÖÓ(µ¥Î») + DATA_TYPE_WEEK_NUM, // ÐÇÆÚ(Êý×Ö) + DATA_TYPE_STEPS_GOAL, // Ô˶¯²½ÊýÄ¿±ê + DATA_TYPE_SECOND_MAPPER, // ÃëÓ³Éä + DATA_TYPE_POWER_MAPPER, // µçÁ¿Ó³Éä + DATA_TYPE_CALORIE_GOAL, // Ô˶¯¿¨Â·ÀïÄ¿±ê + DATA_TYPE_STEPS_GOAL_INT, // Ô˶¯²½Êý°Ù·Ö±È + DATA_TYPE_CALORIE_GOAL_INT, // Ô˶¯¿¨Â·ÀïÄ¿±ê°Ù·Ö±È + + + DATA_TYPE_MULTI_FLOAT_BASE = 0x2fff, // ¶à¸ö¸¡µãÊý¾ÝÀàÐÍ»ùÖµ + + + DATA_TYPE_TEXT_BASE = 0x4fff, // Îı¾Êý¾ÝÀàÐÍ»ùÖµ + DATA_TYPE_WEEK_STR, // ÐÇÆÚ(string) + DATA_TYPE_DATE_STR, // ÈÕÆÚ(string) + DATA_TYPE_WEATHER_STR, // ÌìÆø£¨string) + DATA_TYPE_TIMESTR_STR, // ʱ¼ä£¨string) + DATA_TYPE_DATE_WEEK_STR, // ÈÕÆÚ(ÄêÔÂÈÕ)ÐÇÆÚ£¨string) + DATA_TYPE_POWER_STR, // µçÁ¿£¨string) + DATA_TYPE_DATE_WEEK_MD_STR, // ÐÇÆÚ£¨ÔÂÈÕ£©ºÍÈÕÆÚ£¨string) + DATA_TYPE_DATE_EN_STR, // Ô·Ý+ÈÕÆÚ £¨Ó¢ÎÄ£© + DATA_TYPE_WEEK_EN_STR, // ÐÇÆÚ£¨Ó¢ÎÄ£© + DATA_TYPE_STEPS_GOAL_STR, // Ô˶¯²½ÊýÄ¿±ê(string) + DATA_TYPE_CALORIE_GOAL_STR, // ¿¨Â·ÀïÄ¿±ê(string) + + + + DATA_TYPE_MAX = 0x6000, // Êý¾ÝÀàÐ͵Ä×î´óÖµ +}; + +OHOS::DialDataType Convert2DataType(DialOldDataType dialData); +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataType.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataType.h new file mode 100644 index 000000000..69784392b --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDataType.h @@ -0,0 +1,204 @@ +/* + * Copyright (c) CompanyNameMagicTag 2025. All rights reserved. + * Description: DialDataType + * Author: + * Create: 2025-02-15 + */ + +#ifndef DIAL_DATA_TYPE_H +#define DIAL_DATA_TYPE_H + +#include + +namespace OHOS { +enum class DialDataType : int16_t { + // 起始:单个浮点数据,OH标准协议部分,禁止改动,从0开始(包括0,二进制格式为:0000,xxxx,xxxx,xxxx) + DATA_TYPE_FLOAT_BASE = 0, + CLOCK = 1, //时钟 + CLOCK_HIGH = 2, //时钟高位 + CLOCK_LOW = 3, //时钟低位 + CLOCK_RATIO_12H = 4,//12小时制 + CLOCK_RATIO_24H = 5,//24小时制 + MINUTE_TIME = 6,//分钟 + MINUTE_HIGH = 7,//分钟高位 + MINUTE_LOW = 8,//分钟低位 + MINUTE_RATIO = 9,//分钟比例 + SECOND_TIME = 10,//秒 + SECOND_HIGH = 11,//秒高位 + SECOND_LOW = 12,//秒低位 + SECOND_RATIO = 13,//秒比例 + AM_PM = 14,//AM/PM + HOUR_FORMAT = 16,//小时格式 + PREV_HOUR = 17,//上一个小时 + NEXT_HOUR = 18,//下一个小时 + CLOCK_ANGLE = 19,//时钟角度 + MINUTE_ANGLE = 20,//分钟角度 + SECOND_ANGLE = 21,//秒角度 + MILLISECOND_ANGLE = 22,//毫秒角度 + PREV_SECOND = 25,//上一秒 + NEXT_SECOND = 26,//下一秒 + PREV_2_SECONDS = 27,//上2秒 + PREV_MINUTE = 28,//上一分钟 + NEXT_MINUTE = 29,//下一分钟 + DUAL_TIMEZONE_CLOCK = 30,//双时区时钟 + DUAL_TIMEZONE_CLOCK_HIGH = 31,//双时区时钟高位 + DUAL_TIMEZONE_CLOCK_LOW = 32,//双时区时钟低位 + DUAL_TIMEZONE_CLOCK_RATIO_12H = 33,//双时区12小时制 + DUAL_TIMEZONE_CLOCK_RATIO_24H = 34,//双时区24小时制 + DUAL_TIMEZONE_MINUTE = 35,//双时区分钟 + DUAL_TIMEZONE_MINUTE_HIGH = 36,//双时区分钟高位 + DUAL_TIMEZONE_MINUTE_LOW = 37,//双时区分钟低位 + DUAL_TIMEZONE_MINUTE_RATIO = 38,//双时区分钟比例 + DUAL_TIMEZONE_AMPM = 41,//双时区AM/PM + SUNRISE_SUNSET_IMAGE = 50,//日出日落图片 + SUNRISE_SUNSET_CLOCK_HIGH = 51,//日出日落时钟高位 + SUNRISE_SUNSET_CLOCK_LOW = 52,//日出日落时钟低位 + SUNRISE_SUNSET_MINUTE_HIGH = 53,//日出日落分钟高位 + SUNRISE_SUNSET_MINUTE_LOW = 54,//日出日落分钟低位 + DATE = 70,//日期 + DATE_HIGH = 71,//日期高位 + DATE_LOW = 72,//日期低位 + DATE_31_DAY_RATIO = 73,//日期31天比例 + YESTERDAY = 74,//昨天 + YESTERDAY_DATE_HIGH = 75,//昨天日期高位 + YESTERDAY_DATE_LOW = 76,//昨天日期低位 + TOMORROW = 77,//明天 + TOMORROW_DATE_HIGH = 78,//明天日期高位 + TOMORROW_DATE_LOW = 79,//明天日期低位 + MONTH_DATA = 80,//月份数据 + MONTH = 81,//月份 + WEEKDAY_DATA = 83, + WEEKDAY_RATIO = 84, + CHINESE_HOUR = 86, + MOON_PHASE = 87, + PREV_MONTH = 88, + NEXT_MONTH = 89, + SOLAR_YEAR = 240, + YEAR_ONES = 241, + YEAR_TENS = 242, + YEAR_HUNDREDS = 243, + YEAR_THOUSANDS = 244, + LUNAR_MONTH = 90, + LUNAR_DATE_HIGH = 91, + LUNAR_DATE_LOW = 92, + BATTERY = 100, + BATTERY_ENUM = 102, + BATTERY_STATUS_ENUM = 103, + BATTERY_LEVEL = 104, + CHARGING_STATUS = 105, + STEP_COUNT = 110, + STEP_ONES = 111, + STEP_TENS = 112, + STEP_HUNDREDS = 113, + STEP_THOUSANDS = 114, + STEP_TENS_OF_THOUSANDS = 115, + STEP_GOAL_PROGRESS = 116, + STEP_GOAL_PROGRESS_ENUM = 117, + CALORIE = 120, + CALORIE_RATIO = 121, + CALORIE_GOAL_PROGRESS_ENUM = 122, + HEART_RATE = 130, + MAX_HEART_RATE = 131, + MIN_HEART_RATE = 132, + HEART_RATE_ZONE = 133, + HEART_RATE_RATIO = 134, + STRESS_LEVEL = 140, + STRESS_RATIO = 141, + STRESS_LEVEL_TYPE = 142, + MODERATE_HIGH_INTENSITY_TIME = 150, + MODERATE_HIGH_INTENSITY_TIME_RATIO = 151, + STAND_COUNT = 152, + STAND_COUNT_RATIO = 153, + MAX_VO2 = 160, + MAX_VO2_RATIO = 161, + SLEEP_RATIO = 166, + SLEEP_GOAL_PROGRESS_ENUM = 167, + TEMPERATURE = 170, + MAX_TEMPERATURE = 171, + MIN_TEMPERATURE = 172, + CURRENT_TEMPERATURE_MINUS_1 = 173, + CURRENT_TEMPERATURE_PLUS_1 = 174, + TEMPERATURE_TYPE = 175, + WEATHER_TYPE = 176, + TEMPERATURE_RATIO = 177, + PRESSURE = 180, + PRESSURE_RATIO = 181, + AQI = 182, + AQI_LEVEL = 183, + AQI_RATIO = 184, + ALTITUDE_DATA = 191, + ALTITUDE_UNIT = 192, + ALTITUDE_RATIO = 193, + DISTANCE_DATA = 195, + DISTANCE_UNIT = 196, + DISTANCE_GOAL_PROGRESS = 197, + BLE_CONNECTION_STATUS = 210, + BT_CONNECTION_STATUS = 211, + BLOOD_OXYGEN = 220, + SYSTOLIC_BLOOD_PRESSURE = 221, + DIASTOLIC_BLOOD_PRESSURE = 222, + DUAL_LANGUAGE_SYSTEM = 230, + UNREAD_SMS_MSG = 250, + UNREAD_WECHAT_MSG = 251, + // 结束:单个浮点数据,OH标准协议部分,禁止改动,到4095结束(包括4095) + + + // 起始:单个浮点数据,私有可定制部分,从4096开始(包括4096,二进制格式为:0001,xxxx,xxxx,xxxx) + DATA_TYPE_FLOAT_CUSTOM_BASE = 4096, + PM25 = 4097, // PM2.5 + POWER_STANDBY, // 备用电量 + WEEK_NUM, // 星期(数字) + STEPS_GOAL_BOXPROGRESS,//步数目标进度条映射? + CALORIE_GOAL_BOXPROGRESS,//卡路里目标进度条映射? + + SWIVEL_GEAR_POSITIVE = 8190, // private data, clockwise + SWIVEL_GEAR_NEGATIVE = 8191, // counterclockwise + // 结束:单个浮点数据,私有可定制部分,到8191结束(包括8191) + + // 起始:文本数据,OH标准协议部分,禁止改动,从8192开始(包括8192,二进制格式为:0010,xxxx,xxxx,xxxx) + DATA_TYPE_TEXT_BASE = 8192, + AM_PM_TEXT = 8193, + SUNRISE_TEXT = 8210, + SUNSET_TEXT = 8211, + MOONRISE_TEXT = 8221, + MOONSET_TEXT = 8222, + DUAL_TIMEZONE_ABBR_TEXT = 8200, + DUAL_TIMEZONE_TIME_TEXT = 8201, + DUAL_TIMEZONE_AM_PM_TEXT = 8202, + MONTH_TEXT = 8230, + DATE_TEXT = 8231, + WEEKDAY_TEXT = 8232, + LUNAR_YEAR = 8240, + SLEEP_TEXT = 8250, + DISTANCE_TEXT = 8260, + TIDE_RISE_TIME_TEXT = 8270, + TIDE_FALL_TIME_TEXT = 8271, + // 结束:文本数据,OH标准协议部分,禁止改动,到12287结束(包括12287) + + // 文本数据,私有可定制部分,从12288开始(包括12288,二进制格式为:0011,xxxx,xxxx,xxxx) + DATA_TYPE_TEXT_CUSTOM_BASE = 12288, + WEEK_STR = 12289, // 星期(string) + DATE_STR = 12290, // 日期(string) + WEATHER_STR = 12291, // 天气(string) + TIMESTR_STR = 12292, // 时间(string) + DATE_WEEK_STR = 12293, // 日期(年月日)星期(string) + POWER_STR = 12294, // 电量(string) + DATE_WEEK_MD_STR = 12295, // 星期(月日)和日期(string) + DATE_EN_STR = 12296, // 月份+日期 (英文) + WEEK_EN_STR = 12297, // 星期(英文) + STEPS_GOAL_STR = 12298, // 运动步数目标(string) + CALORIE_GOAL_STR = 12299, // 卡路里目标(string) + // 文本数据,私有可定制部分,到16383结束(包括16383) + + // 起始:多个浮点数据,OH标准协议部分,禁止改动,从16384开始(包括16384,二进制格式为:0100,xxxx,xxxx,xxxx) + DATA_TYPE_MULTI_FLOAT_BASE = 16384, + // 结束:多个浮点数据,OH标准协议部分,禁止改动,到20479结束(包括20479) + + // 起始:多个浮点数据,私有可定制部分,从20480开始(包括20480,二进制格式为:0101,xxxx,xxxx,xxxx) + // 结束:多个浮点数据,私有可定制部分,到24575结束(包括24575) + + DATA_TYPE_MAX = 0x6000, +}; // enum class DialDataType +} // namespace OHOS + +#endif // DIAL_DATA_TYPE_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDigitalImgView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDigitalImgView.h new file mode 100644 index 000000000..a058c6ff8 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialDigitalImgView.h @@ -0,0 +1,68 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_DIGITAL_IMG_VIEW_H +#define DIAL_DIGITAL_IMG_VIEW_H + +#include +#include "main/dial/DialView.h" +#include "main/dial/DialModelTime.h" +#include "components/ui_image_view.h" +#include "gfx_utils/graphic_math.h" +#include "components/ui_view_group.h" + +namespace OHOS { + +enum class ImgAlign { + LEFT, + CENTER, + RIGHT, +}; + +class DialDigitalImgView : public UIImageView, public DialView, public TimeChangeListener { +public: + DialDigitalImgView(); + ~DialDigitalImgView() override; + + void HandleFloatData(float data) override; + + bool SetNumRes(const ImageInfo** src, uint16_t num); + void SetSignRes(const ImageInfo* src); + void SetDecimalPointRes(const ImageInfo* src); + void SetIntegerLength(uint8_t length); + void SetSpace(uint16_t space); + void SetAlign(ImgAlign align); + void SetAlignPos(Point pos); + void SetDecimalPrecision(uint8_t precision); + void SetParent(UIViewGroup* parent); + void OnTimeUpdate(const struct tm &curTime) override; + +private: + void SetNumImg(UIImageView* img, const ImageInfo *info); + void FillIntegerPart(uint16_t intVal); + void FillDecimalPart(float data); + void HandlePosition(); + bool CreateImageViews(float data); + + static const uint8_t NUM_IMG_MAX_SIZE = 10; + ImageInfo* numInfo_[NUM_IMG_MAX_SIZE]; + uint16_t numCnt_ = 0; + ImageInfo* signInfo_ = nullptr; + ImageInfo* decimalPointInfo_ = nullptr; + uint16_t space_ = 0; + ImgAlign align_ = ImgAlign::LEFT; + Point alignPos_ = {0, 0}; + uint8_t integerLength_ = 0; + uint8_t allocIntegerLen_ = 0; + uint8_t decimalPrecision_ = 0; + uint8_t currentIndex_ = 0; + + UIViewGroup* parent_ = nullptr; + UIImageView** imgs_ = nullptr; + uint8_t imgCnt_ = 0; + bool isValueSet_ = false; + float value_ = 0.0f; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialKaleidoscopeView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialKaleidoscopeView.h new file mode 100644 index 000000000..3125ab001 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialKaleidoscopeView.h @@ -0,0 +1,11 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2024. All rights reserved. + */ + +#ifndef DIAL_KALEIDOSCOPE_VIEW_H +#define DIAL_KALEIDOSCOPE_VIEW_H +#include "components/ui_kaleidoscope_view.h" +namespace OHOS { +using DialKaleidoscopeView = UIKaleidoscopeView; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialLabelView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialLabelView.h new file mode 100644 index 000000000..fb32df0b3 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialLabelView.h @@ -0,0 +1,35 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_LABEL_VIEW_H +#define DIAL_LABEL_VIEW_H + +#include +#include "main/dial/DialView.h" +#include "components/ui_label.h" +#include "font/font_global_manager.h" + +namespace OHOS { +class DialLabelView : public UILabel, public DialView, public FontGlobalManager::LangChangeListener { +public: + DialLabelView(); + ~DialLabelView() override; + + bool SetText(const char* text); + bool SetTextWithWildcard(const char* text); + void HandleTextData(const std::string* data, uint16_t num) override; + void HandleFloatData(const float* data, uint16_t num) override; + void HandleFloatData(float data) override; + void SetLang(uint8_t lang); + void OnLangChange(uint8_t langId) override; + +private: + void SetTextWithWildcardInner(const char* text); + static const uint8_t MAX_BUF_SIZE = 255; + char* text_ = nullptr; + char dstBuf_[MAX_BUF_SIZE] = {0}; + uint8_t language_ = FontGlobalManager::INVALID_LANG_ID; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCalorie.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCalorie.h new file mode 100644 index 000000000..076ef595e --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCalorie.h @@ -0,0 +1,39 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 18:20:02 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelCalorie.h + */ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelCalorie + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Calorie_H +#define DIAL_MODEL_Calorie_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelCalorie : public DialBaseModel + { + public: + DialModelCalorie() {} + virtual ~DialModelCalorie() {} + static DialModelCalorie *GetInstance() + { + static DialModelCalorie instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateCalorie(int16_t Calorie); + int GetCalorieData(void); + + private: + float calorie_ = 0; // 67.0: default Calorie value as reference + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCharge.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCharge.h new file mode 100644 index 000000000..373ed7ed2 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelCharge.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelCharge + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Charge_H +#define DIAL_MODEL_Charge_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelCharge : public DialBaseModel + { + public: + DialModelCharge() {} + virtual ~DialModelCharge() {} + static DialModelCharge *GetInstance() + { + static DialModelCharge instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdatechargeStatus(int16_t chargeStatus); + + private: + int16_t chargeStatus_ = 0; // 默认没有充电 测试为充电 + }; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelChargeC.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelChargeC.h new file mode 100644 index 000000000..f9c5895b1 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelChargeC.h @@ -0,0 +1,19 @@ +#ifndef DIAL_MODEL_CHARGEC_H +#define DIAL_MODEL_CHARGEC_H + +#ifdef __cplusplus +#if __cplusplus +extern "C" +{ +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +void setChargeStatus(int status); + +#ifdef __cplusplus +#if __cplusplus +} +#endif /* __cplusplus */ +#endif /* __cplusplus */ + +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateEnStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateEnStr.h new file mode 100644 index 000000000..75a10667e --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateEnStr.h @@ -0,0 +1,28 @@ + + +#ifndef DIAL_MODEL_DateEnStr_H +#define DIAL_MODEL_DateEnStr_H + +#include "DialBaseModel.h" +#include +#include +#include + +namespace OHOS { +class DialModelDateEnStr : public DialBaseModel { +public: + DialModelDateEnStr() {} + virtual ~DialModelDateEnStr() {} + static DialModelDateEnStr *GetInstance() { + static DialModelDateEnStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, + int16_t &strNum) override; + void UpDateEnDateEnStr(const std::string *&dialDateEnStr); + +private: + std::string dialDateEnStr_; +}; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateStr.h new file mode 100644 index 000000000..c109ff972 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateStr.h @@ -0,0 +1,30 @@ + + +#ifndef DIAL_MODEL_DateStr_H +#define DIAL_MODEL_DateStr_H + +#include "DialBaseModel.h" +#include +#include +#include + +namespace OHOS +{ + class DialModelDateStr : public DialBaseModel + { + public: + DialModelDateStr() {} + virtual ~DialModelDateStr() {} + static DialModelDateStr *GetInstance() + { + static DialModelDateStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum) override; + void UpdateDateStr(const std::string *&dialDateStr); + + private: + std::vector datestr; + }; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekMDStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekMDStr.h new file mode 100644 index 000000000..d664ba4ad --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekMDStr.h @@ -0,0 +1,36 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-11-03 16:53:17 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-11-03 17:11:53 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelDateWeekMDStr.h + */ + +#ifndef DIAL_MODEL_DateWeekMDStr_H +#define DIAL_MODEL_DateWeekMDStr_H + +#include "DialBaseModel.h" +#include +#include +#include + +namespace OHOS +{ + class DialModelDateWeekMDStr : public DialBaseModel + { + public: + DialModelDateWeekMDStr() {} + virtual ~DialModelDateWeekMDStr() {} + static DialModelDateWeekMDStr *GetInstance() + { + static DialModelDateWeekMDStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out,int16_t &strNum) override; + void UpdateDateWeekStr(const std::string *&dialDateWeekMDStr); + + private: + std::string dateweekmdstr; + }; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekStr.h new file mode 100644 index 000000000..6ec963ede --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDateWeekStr.h @@ -0,0 +1,28 @@ + + +#ifndef DIAL_MODEL_DateWeekStr_H +#define DIAL_MODEL_DateWeekStr_H + +#include "DialBaseModel.h" +#include +#include +#include + +namespace OHOS { +class DialModelDateWeekStr : public DialBaseModel { +public: + DialModelDateWeekStr() {} + virtual ~DialModelDateWeekStr() {} + static DialModelDateWeekStr *GetInstance() { + static DialModelDateWeekStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, + int16_t &strNum) override; + void UpdateDateWeekStr(const std::string *&dialDateWeekStr); + +private: + std::string dateweekstr; +}; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDistance.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDistance.h new file mode 100644 index 000000000..325cb8bd4 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelDistance.h @@ -0,0 +1,39 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-07-31 18:20:02 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelDistance.h + */ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelDistance + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Distance_H +#define DIAL_MODEL_Distance_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelDistance : public DialBaseModel + { + public: + DialModelDistance() {} + virtual ~DialModelDistance() {} + static DialModelDistance *GetInstance() + { + static DialModelDistance instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateDistance(float Distance); + int GetDistanceData(void); + + private: + float distance_ = 0; // 67.0: default Distance value as reference + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHeartRate.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHeartRate.h new file mode 100644 index 000000000..42eeb6681 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHeartRate.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelHeartRate + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_HEART_RATE_H +#define DIAL_MODEL_HEART_RATE_H + +#include "main/dial/DialBaseModel.h" + +namespace OHOS { +class DialModelHeartRate : public DialBaseModel { +public: + DialModelHeartRate() {} + ~DialModelHeartRate() override {} + static DialModelHeartRate* GetInstance() + { + static DialModelHeartRate instance; + return &instance; + } + bool GetDialFloatData(DialDataType& type, float& out) override; + void UpdateHeartRate(int16_t heartRate); + int GetHeartData(); + + private: + float heartRate_ = 0; // 67.0: default heart value as reference + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourTens.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourTens.h new file mode 100644 index 000000000..745f19df3 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourTens.h @@ -0,0 +1,27 @@ + +#ifndef DIAL_MODEL_HourTens_H +#define DIAL_MODEL_HourTens_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelHourTens : public DialBaseModel + { + public: + DialModelHourTens() {} + ~DialModelHourTens() override {} + static DialModelHourTens *GetInstance() + { + static DialModelHourTens instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateHourTens(); + + private: + struct tm tblock_; + uint8_t hour_tens; + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourUnits.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourUnits.h new file mode 100644 index 000000000..b517dca23 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelHourUnits.h @@ -0,0 +1,29 @@ + + +#ifndef DIAL_MODEL_HourUnits_H +#define DIAL_MODEL_HourUnits_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelHourUnits : public DialBaseModel + { + public: + DialModelHourUnits() {} + ~DialModelHourUnits() override {} + static DialModelHourUnits *GetInstance() + { + static DialModelHourUnits instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateHourUnits(); + + private: + struct tm tblock_; + uint8_t hour_units; + + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoal.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoal.h new file mode 100644 index 000000000..c901d9427 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoal.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcalgoal + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Kcalgoal_H +#define DIAL_MODEL_Kcalgoal_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelKcalgoal : public DialBaseModel { +public: + DialModelKcalgoal() {} + ~DialModelKcalgoal() override {} + static DialModelKcalgoal *GetInstance() { + static DialModelKcalgoal instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateKcalgoal(uint32_t Kcalgoal); + +private: + float Kcalgoal_ = 0; // 11520.0: default Kcal value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalStr.h new file mode 100644 index 000000000..4b3594f07 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalStr.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcalgoalStr + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_KcalgoalStr_H +#define DIAL_MODEL_KcalgoalStr_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelKcalgoalStr : public DialBaseModel { +public: + DialModelKcalgoalStr() {} + ~DialModelKcalgoalStr() override {} + static DialModelKcalgoalStr *GetInstance() { + static DialModelKcalgoalStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, + int16_t &strNum) override; + + void UpdateKcalgoalStr(uint32_t KcalgoalStr); + +private: + std::string KcalgoalStr_ = "0%"; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalValue.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalValue.h new file mode 100644 index 000000000..cbef774b7 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelKcalgoalValue.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelKcalgoalValue + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_KcalgoalValue_H +#define DIAL_MODEL_KcalgoalValue_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelKcalgoalValue : public DialBaseModel { +public: + DialModelKcalgoalValue() {} + ~DialModelKcalgoalValue() override {} + static DialModelKcalgoalValue *GetInstance() { + static DialModelKcalgoalValue instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateKcalgoalValue(uint32_t KcalgoalValue); + +private: + float KcalgoalValue_ = 0; // 11520.0: default Kcal value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinTens.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinTens.h new file mode 100644 index 000000000..7f092b3b2 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinTens.h @@ -0,0 +1,27 @@ + +#ifndef DIAL_MODEL_MinTens_H +#define DIAL_MODEL_MinTens_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelMinTens : public DialBaseModel + { + public: + DialModelMinTens() {} + ~DialModelMinTens() override {} + static DialModelMinTens *GetInstance() + { + static DialModelMinTens instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateMinTens(); + + private: + struct tm tblock_; + uint8_t min_tens; + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinUnits.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinUnits.h new file mode 100644 index 000000000..86720f9cb --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelMinUnits.h @@ -0,0 +1,28 @@ + + +#ifndef DIAL_MODEL_MinUnits_H +#define DIAL_MODEL_MinUnits_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelMinUnits : public DialBaseModel + { + public: + DialModelMinUnits() {} + ~DialModelMinUnits() override {} + static DialModelMinUnits *GetInstance() + { + static DialModelMinUnits instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateMinUnits(); + + private: + struct tm tblock_; + uint8_t min_units; + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPower.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPower.h new file mode 100644 index 000000000..269426bf4 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPower.h @@ -0,0 +1,32 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelPower + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_POWER_H +#define DIAL_MODEL_POWER_H + +#include "main/dial/DialBaseModel.h" + +namespace OHOS { +class DialModelPower : public DialBaseModel { +public: + DialModelPower() {} + ~DialModelPower() override {} + static DialModelPower* GetInstance() + { + static DialModelPower instance; + return &instance; + } + bool GetDialFloatData(DialDataType& type, float& out) override; + void UpdatePower(); + void NotifyPowerUpdate(); + + private: + int16_t power_ = 0; + bool powerUpdated_{false}; + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerMapper.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerMapper.h new file mode 100644 index 000000000..fb7659bb8 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerMapper.h @@ -0,0 +1,25 @@ + +#ifndef DIAL_MODEL_PowerMapper_H +#define DIAL_MODEL_PowerMapper_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelPowerMapper : public DialBaseModel { +public: + DialModelPowerMapper() {} + ~DialModelPowerMapper() override {} + static DialModelPowerMapper *GetInstance() { + static DialModelPowerMapper instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdatePowerMapper(); + void NotifyPowerMapperUpdate(); + +private: + float powermapper_ = 0; + bool PowerMapperUpdated_{false}; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStandby.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStandby.h new file mode 100644 index 000000000..6a52879d1 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStandby.h @@ -0,0 +1,30 @@ + + +#ifndef DIAL_MODEL_POWER_STANDBY_H +#define DIAL_MODEL_POWER_STANDBY_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelPowerStanby : public DialBaseModel + { + public: + DialModelPowerStanby() {} + virtual ~DialModelPowerStanby() {} + static DialModelPowerStanby *GetInstance() + { + static DialModelPowerStanby instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdatePowerStanby(); + void NotifyPowerStanbyUpdate(); + float SmoothPowerUpdate(float newPower); + + private: + uint8_t PowerStanby_ = 0; + bool PowerStanbyUpdated_{false}; + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStr.h new file mode 100644 index 000000000..2babe9d72 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelPowerStr.h @@ -0,0 +1,36 @@ +/* + * @Author: luozheng 1732036298@qq.com + * @Date: 2024-11-02 18:09:28 + * @LastEditors: luozheng 1732036298@qq.com + * @LastEditTime: 2024-11-02 18:17:44 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPowerStr.h + */ + + +#ifndef DIAL_MODEL_POWER_STR_H +#define DIAL_MODEL_POWER_STR_H + +#include "DialBaseModel.h" +#include +#include + +namespace OHOS +{ + class DialModelPowerStr : public DialBaseModel + { + public: + DialModelPowerStr() {} + virtual ~DialModelPowerStr() {} + static DialModelPowerStr *GetInstance() + { + static DialModelPowerStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum) override; + void UpdateTimeStr(const std::string dialPowerStr); + + private: + std::string dialPowerStr_; + }; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSPO2.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSPO2.h new file mode 100644 index 000000000..7d7ee1ea4 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSPO2.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelSPO2 + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_SPO2_H +#define DIAL_MODEL_SPO2_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelSPO2 : public DialBaseModel + { + public: + DialModelSPO2() {} + virtual ~DialModelSPO2() {} + static DialModelSPO2 *GetInstance() + { + static DialModelSPO2 instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateSPO2(uint8_t SPO2); + int GetSPO2Data(); + + private: + float SPO2_ = 0; // 97.0: default SPO2 value as reference + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSecondMapper.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSecondMapper.h new file mode 100644 index 000000000..0d6edb272 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSecondMapper.h @@ -0,0 +1,25 @@ + +#ifndef DIAL_MODEL_SecondMapper_H +#define DIAL_MODEL_SecondMapper_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelSecondMapper : public DialBaseModel { +public: + DialModelSecondMapper() {} + ~DialModelSecondMapper() override {} + static DialModelSecondMapper *GetInstance() { + static DialModelSecondMapper instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateSecondMapper(); + float CalculateMappedValue(int min, int sencond); + +private: + struct tm tblock_; + uint8_t secondmapper_; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoal.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoal.h new file mode 100644 index 000000000..77ee2f53f --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoal.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelStepgoal + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Stepgoal_H +#define DIAL_MODEL_Stepgoal_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelStepgoal : public DialBaseModel { +public: + DialModelStepgoal() {} + ~DialModelStepgoal() override {} + static DialModelStepgoal *GetInstance() { + static DialModelStepgoal instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateStepgoal(uint32_t Stepgoal); + +private: + float stepgoal_ = 0; // 11520.0: default step value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalStr.h new file mode 100644 index 000000000..29b7d7467 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalStr.h @@ -0,0 +1,31 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelStepgoalStr + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_StepgoalStr_H +#define DIAL_MODEL_StepgoalStr_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelStepgoalStr : public DialBaseModel { +public: + DialModelStepgoalStr() {} + ~DialModelStepgoalStr() override {} + static DialModelStepgoalStr *GetInstance() { + static DialModelStepgoalStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, + int16_t &strNum) override; + + void UpdateStepgoalStr(uint32_t StepgoalStr); + +private: + std::string StepgoalStr_ = "0%"; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalValue.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalValue.h new file mode 100644 index 000000000..2ec1b3cd4 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelStepgoalValue.h @@ -0,0 +1,29 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelStepgoalValue + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_StepgoalValue_H +#define DIAL_MODEL_StepgoalValue_H + +#include "DialBaseModel.h" + +namespace OHOS { +class DialModelStepgoalValue : public DialBaseModel { +public: + DialModelStepgoalValue() {} + ~DialModelStepgoalValue() override {} + static DialModelStepgoalValue *GetInstance() { + static DialModelStepgoalValue instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateStepgoalValue(uint32_t StepgoalValue); + +private: + float stepgoalValue_ = 0; // 11520.0: default Step value as reference +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSteps.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSteps.h new file mode 100644 index 000000000..4df90c789 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelSteps.h @@ -0,0 +1,30 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelSteps + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_STEPS_H +#define DIAL_MODEL_STEPS_H + +#include "main/dial/DialBaseModel.h" + +namespace OHOS { +class DialModelSteps : public DialBaseModel { +public: + DialModelSteps() {} + ~DialModelSteps() override {} + static DialModelSteps* GetInstance() + { + static DialModelSteps instance; + return &instance; + } + bool GetDialFloatData(DialDataType& type, float& out) override; + void UpdateSteps(uint32_t steps); + + private: + float steps_ = 0; // 11520.0: default step value as reference +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTime.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTime.h new file mode 100644 index 000000000..2a95eb18b --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTime.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelTime + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_TIME_H +#define DIAL_MODEL_TIME_H + +#include "main/dial/DialBaseModel.h" +#include "gfx_utils/list.h" + +namespace OHOS { +class TimeChangeListener; +class DialModelTime : public DialBaseModel { +public: + ~DialModelTime() override + { + listeners_.Clear(); + } + + static DialModelTime* GetInstance() + { + static DialModelTime instance; + return &instance; + } + + bool GetDialFloatData(DialDataType& type, float& out) override; + void UpdateTime(); + void Register(TimeChangeListener* listener); + void Unregister(TimeChangeListener* listener); + +private: + DialModelTime() = default; + struct tm *tblock_; + uint16_t angleH_ = 0; + uint16_t angleM_ = 0; + uint16_t angleS_ = 0; + float angleMS_ = 0; + List listeners_; +}; + +class TimeChangeListener { +public: + struct TimeInterval { + uint8_t start; + uint8_t end; + }; + virtual void OnTimeUpdate(const struct tm &curTime) = 0; + void SetTimeInervals(TimeInterval *intervals, uint8_t num); + bool IsInTimeInterval(const struct tm &curTime); + TimeChangeListener(const TimeChangeListener&) = delete; + TimeChangeListener& operator=(const TimeChangeListener&) = delete; + TimeChangeListener(); + virtual ~TimeChangeListener(); +private: + TimeInterval *intervals_ = nullptr; + uint8_t num_ = 0; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTimeStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTimeStr.h new file mode 100644 index 000000000..707f15999 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelTimeStr.h @@ -0,0 +1,28 @@ + + +#ifndef DIAL_MODEL_TimeStr_H +#define DIAL_MODEL_TimeStr_H + +#include "DialBaseModel.h" +#include +#include + +namespace OHOS { +class DialModelTimeStr : public DialBaseModel { +public: + DialModelTimeStr() {} + virtual ~DialModelTimeStr() {} + static DialModelTimeStr *GetInstance() { + static DialModelTimeStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, + int16_t &strNum) override; + void UpdateTimeStr(const std::string dialTimeStr); + +private: + struct tm tblock_; + std::string dialTimeStr_ = "00:00"; +}; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeather.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeather.h new file mode 100644 index 000000000..c5e746336 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeather.h @@ -0,0 +1,45 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2024-06-07 11:18:25 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2024-08-29 17:52:26 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeather.h + * @Description: + * + * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + */ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: DialModelWeather + * Author: + * Create: 2023-12 + */ + +#ifndef DIAL_MODEL_Weather_H +#define DIAL_MODEL_Weather_H + +#include "DialBaseModel.h" + +namespace OHOS +{ + class DialModelWeather : public DialBaseModel + { + public: + DialModelWeather() {} + virtual ~DialModelWeather() {} + static DialModelWeather *GetInstance() + { + static DialModelWeather instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + void UpdateWeather(int16_t Weather); + void UpdateWeatherStr(std::string text); + int GetWeatherData(void); + + private: + float Weather_ = 11; // 默认unkown + std::string Weather_Str = "/°"; + }; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeatherStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeatherStr.h new file mode 100644 index 000000000..6aa88a44b --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeatherStr.h @@ -0,0 +1,39 @@ +/* + * @Author: penglei 1624952103@qq.com + * @Date: 2024-08-28 16:45:12 + * @LastEditors: penglei 1624952103@qq.com + * @LastEditTime: 2024-08-28 16:55:58 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeatherStr.h + * @Description: + * + * Copyright (c) 2024 by ${git_name_email}, All Rights Reserved. + */ + + +#ifndef DIAL_MODEL_WeatherStr_H +#define DIAL_MODEL_WeatherStr_H + +#include "DialBaseModel.h" +#include +#include + +namespace OHOS +{ + class DialModelWeatherStr : public DialBaseModel + { + public: + DialModelWeatherStr() {} + virtual ~DialModelWeatherStr() {} + static DialModelWeatherStr *GetInstance() + { + static DialModelWeatherStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum) override; + void UpdateWeatherStr(const std::string dialWeatherStr); + + private: + std::string dialWeatherStr_ = "/°"; + }; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekEnStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekEnStr.h new file mode 100644 index 000000000..89c0f90b1 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekEnStr.h @@ -0,0 +1,34 @@ +/*** + * @Date: 2024-08-03 17:35:36 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-07 11:50:10 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeekEnStr.h + */ + +#ifndef DIAL_MODEL_WeekEnStr_H +#define DIAL_MODEL_WeekEnStr_H + +#include "DialBaseModel.h" +#include +#include + +namespace OHOS +{ + class DialModelWeekEnStr : public DialBaseModel + { + public: + DialModelWeekEnStr() {} + virtual ~DialModelWeekEnStr() {} + static DialModelWeekEnStr *GetInstance() + { + static DialModelWeekEnStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum) override; + void UpdateWeekEnStr(const std::string *&dialWeekEnStr); + + private: + std::string dialWeekEnStr_; + }; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekNum.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekNum.h new file mode 100644 index 000000000..4ce799676 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekNum.h @@ -0,0 +1,31 @@ +/*** + * @Date: 2024-08-03 17:35:36 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-07 11:50:10 + * @FilePath: + * /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeekNum.h + */ + +#ifndef DIAL_MODEL_WeekNum_H +#define DIAL_MODEL_WeekNum_H + +#include "DialBaseModel.h" +#include +#include + +namespace OHOS { +class DialModelWeekNum : public DialBaseModel { +public: + DialModelWeekNum() {} + virtual ~DialModelWeekNum() {} + static DialModelWeekNum *GetInstance() { + static DialModelWeekNum instance; + return &instance; + } + bool GetDialFloatData(DialDataType &type, float &out) override; + +private: + float dialWeekNum_; +}; +} // namespace OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekStr.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekStr.h new file mode 100644 index 000000000..d36d0a8e0 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialModelWeekStr.h @@ -0,0 +1,34 @@ +/*** + * @Date: 2024-08-03 17:35:36 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-08-07 11:50:10 + * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelWeekStr.h + */ + +#ifndef DIAL_MODEL_WeekStr_H +#define DIAL_MODEL_WeekStr_H + +#include "DialBaseModel.h" +#include +#include + +namespace OHOS +{ + class DialModelWeekStr : public DialBaseModel + { + public: + DialModelWeekStr() {} + virtual ~DialModelWeekStr() {} + static DialModelWeekStr *GetInstance() + { + static DialModelWeekStr instance; + return &instance; + } + bool GetDialTextData(DialDataType &type, std::string *&out, int16_t &strNum) override; + void UpdateWeekStr(const std::string *&dialWeekStr); + + private: + std::string dialWeekStr_; + }; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOHSliceId.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOHSliceId.h new file mode 100644 index 000000000..f19784a3b --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOHSliceId.h @@ -0,0 +1,66 @@ +/* + * Copyright (c) CompanyNameMagicTag 2025. All rights reserved. + * Description: DialOHSliceId + * Author: + * Create: 2025-02-15 + */ + + +#ifndef DIALOHSLICEID_H +#define DIALOHSLICEID_H + +#include +#include "AppViewIDs.h" + +namespace OHOS { +enum class DialOHSliceId : uint16_t { + DUAL_TIME_ZONES = 0, + HEART_RATE = 1, + STANDING_TIMES = 2, + STRESS = 3, + MODERATE_TO_VIGOROUS_INTENSITY_TIME = 4, + WEATHER = 5, + AIR_QUALITY_ONLY_CHINA = 6, + ATMOSPHERIC_PRESSURE = 7, + ELEVATION_HEIGHT = 8, + SUNRISE_SUNSET_TIME = 9, + DISTANCE = 10, + SLEEP = 11, + EXERCISE = 12, + PAYMENT_ONLY_CHINA = 13, + ALARM_CLOCK = 14, + STOPWATCH = 15, + TIMER = 16, + EXERCISE_RECORD = 17, + TRAINING_STATUS = 18, + ACTIVITY_RECORD = 19, + AEROBIC_EXERCISE = 20, + CONTACTS = 21, + MUSIC = 22, + COMPASS = 23, + CALL_LOG = 24, + BLOOD_OXYGEN_SATURATION_ONLY_CHINA = 25, + ULTRAVIOLET_RAYS_ONLY_CHINA = 26, + PHASE_OF_THE_MOON = 27, + STAIR_CLIMBING = 28, + BLOOD_PRESSURE = 29, + MESSAGE_LIST = 30, + DIAL = 31, + AUDIO_SWITCH = 32, +}; // enum class DialOHSliceId + +struct HashOhSliceId { + size_t operator()(DialOHSliceId id) const + { + return std::hash()(static_cast(id)); + } +}; + +const std::unordered_map g_sliceIdConverter = { + {DialOHSliceId::COMPASS, VIEW_COMPASS}, + {DialOHSliceId::DIAL, VIEW_CALLER_SAMPLE}, + {DialOHSliceId::ALARM_CLOCK, VIEW_MAIN_ALARM}, + {DialOHSliceId::AUDIO_SWITCH, VIEW_VOLUME}, +}; +} // namespace OHOS +#endif // DIALOHSLICEID_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOptionImgView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOptionImgView.h new file mode 100644 index 000000000..8feab2815 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialOptionImgView.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_OPTION_IMG_VIEW_H +#define DIAL_OPTION_IMG_VIEW_H + +#include +#include "main/dial/DialView.h" +#include "main/dial/DialModelTime.h" +#include "components/ui_image_view.h" +#include "font/font_global_manager.h" + +namespace OHOS { + +class DialOptionImgView : public UIImageView, + public DialView, + public FontGlobalManager::LangChangeListener, + public TimeChangeListener { +public: + DialOptionImgView(); + ~DialOptionImgView() override; + + void HandleFloatData(float data) override; + + bool SetOptionRes(const ImageInfo* src, uint16_t num); + + void SetLang(uint8_t lang); + + void OnLangChange(uint8_t langId) override; + + void OnTimeUpdate(const struct tm &curTime) override; + +private: + ImageInfo* info_ = nullptr; + uint16_t infoNum_ = 0; + int16_t selected_ = -1; + uint8_t language_ = FontGlobalManager::INVALID_LANG_ID; + bool langVisible_ = true; + bool timeVisible_ = true; +}; +} +#endif +/** + * @} + */ diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialRotateImgView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialRotateImgView.h new file mode 100644 index 000000000..ef46414fa --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialRotateImgView.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_ROTATE_IMG_VIEW_H +#define DIAL_ROTATE_IMG_VIEW_H + +#include +#include "main/dial/DialView.h" +#include "components/ui_image_view.h" +#include "gfx_utils/graphic_math.h" + +namespace OHOS { + +class DialRotateImgView : public UIImageView, public DialView { +public: + DialRotateImgView(); + ~DialRotateImgView() override; + + void HandleFloatData(float data) override; + + void SetRotatePivot(const Vector2& pivot); + void SetRotateStart(float rotateStart); + void SetRotateEnd(float rotateEnd); + +private: + Vector2 rotatePivot_ = {0.0f, 0.0f}; + float rotateStart_ = 0.0f; + float rotateEnd_ = 360.0f; + bool isRotateSet_ = false; + float rotate_ = 0.0f; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialSequenceImgView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialSequenceImgView.h new file mode 100644 index 000000000..3f5b92fb9 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialSequenceImgView.h @@ -0,0 +1,61 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_SEQUENCE_IMG_VIEW_H +#define DIAL_SEQUENCE_IMG_VIEW_H + +#include "components/ui_image_animator.h" + +namespace OHOS { +struct SequenceInfo : public HeapBase { + long imgOffset = 0; + long resPos = 0; + uint8_t imgNum = 0; + FILE *fp = nullptr; + std::string fileName; + uint16_t interval = 0; + bool repeat = false; +}; + +class DialSequenceImgView : public UIImageAnimatorView, public UIImageAnimatorView::AnimatorStopListener { +public: + DialSequenceImgView(); + ~DialSequenceImgView() override; + + bool SetSequenceRes(const ImageAnimatorInfo *imgSrc, uint8_t imgNum); + bool SetPreviewImg(); + bool LoadCurSeqImgs(); + bool AddSequenceRes(const SequenceInfo ¶); + bool OnClickEvent(const ClickEvent &event) override; + void OnAnimatorStop(UIView &view) override; + +private: + ImageAnimatorInfo *LoadImgs(const SequenceInfo ¶, uint8_t num) const; + void UpdateCurrentSeq(); + struct AnimatorInfo : public HeapBase { + SequenceInfo info; + ImageAnimatorInfo *imgs = nullptr; + uint8_t num = 0; + ~AnimatorInfo() + { + if (imgs != nullptr) { + UIFree(imgs); + imgs = nullptr; + num = 0; + } + } + }; + void SetAnimatorInfo(AnimatorInfo *info, uint8_t num); + static constexpr uint8_t SEQ_IMG_NUM = 3; + AnimatorInfo *repeatSeq_ = nullptr; + AnimatorInfo *nonCycleSeq_[SEQ_IMG_NUM]; + AnimatorInfo *curSeq_ = nullptr; + uint8_t nonCycleNum_ = 0; + uint8_t loop_ = 0; + bool isClick_ = false; + uint8_t viewNum_ = 0; + bool isAllImgLoaded_ = false; +}; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialStaticImgView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialStaticImgView.h new file mode 100644 index 000000000..922517a64 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialStaticImgView.h @@ -0,0 +1,34 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_STATIC_IMG_VIEW_H +#define DIAL_STATIC_IMG_VIEW_H + +#include "components/ui_image_view.h" +#include "font/font_global_manager.h" +#include "main/dial/DialModelTime.h" + +namespace OHOS { +class DialStaticImgView : public UIImageView, + public FontGlobalManager::LangChangeListener, + public TimeChangeListener { +public: + DialStaticImgView(); + ~DialStaticImgView() override; + void SetLang(uint8_t lang); + void OnLangChange(uint8_t langId) override; + bool SetImgs(const ImageInfo* src, uint8_t num); + bool OnClickEvent(const ClickEvent& event) override; + void OnTimeUpdate(const struct tm &curTime) override; + +private: + uint8_t language_ = FontGlobalManager::INVALID_LANG_ID; + ImageInfo* info_ = nullptr; + uint8_t infoNum_ = 0; + int16_t selected_ = -1; + bool langVisible_ = true; + bool timeVisible_ = true; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialVideoView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialVideoView.h new file mode 100644 index 000000000..6524ecb06 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialVideoView.h @@ -0,0 +1,33 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_VIDEO_VIEW +#define DIAL_VIDEO_VIEW + +#include +#include "components/ui_lite_surface_view.h" +#include "video_play_wrapper.h" + +namespace OHOS { +class DialVideoView : public UILiteSurfaceView { +public: + DialVideoView(); + ~DialVideoView() override; + bool SetVideoRes(FILE* fp, uint32_t offset); + bool StartPlay(); + bool ResumePlay(); + bool PausePlay(); + bool StopPlay(); + bool IsPaused(); + bool IsPlayed(); + bool IsStopped(); + MediaVideoPlay* GetVideoPlay(); + +private: + FILE* fp_ = nullptr; + uint32_t offset_ = 0; + MediaVideoPlay* videoPlayer_ = nullptr; +}; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialView.h new file mode 100644 index 000000000..ceab904ed --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialView.h @@ -0,0 +1,36 @@ +/* + * Copyright (c) @CompanyNameMagicTag. 2023. All rights reserved. + */ + +#ifndef DIAL_VIEW_H +#define DIAL_VIEW_H + +#include +#include +#include "main/dial/DialDataType.h" + +namespace OHOS { + +class DialView { +public: + DialView() {} + virtual ~DialView() {} + + virtual void HandleFloatData(float data) {} + virtual void HandleFloatData(const float* data, uint16_t num) {} + virtual void HandleTextData(const std::string* data, uint16_t num) {} + virtual DialDataType GetDataType() + { + return type_; + } + + virtual void SetDataType(DialDataType type) + { + type_ = type; + } + +private: + DialDataType type_ = DialDataType::DATA_TYPE_MAX; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewContainer.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewContainer.h new file mode 100644 index 000000000..15974b2b6 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewContainer.h @@ -0,0 +1,83 @@ +/* + * Copyright (c) CompanyNameMagicTag 2025. All rights reserved. + * Description: DialViewContainer + * Author: + * Create: 2025-02-06 + */ + +#ifndef DIAL_VIEW_CONTAINER_H +#define DIAL_VIEW_CONTAINER_H +#include "components/ui_view_group.h" +#include "gfx_utils/list.h" +#include "main/dial/DialView.h" +#include "main/dial/DialDataBase.h" + +namespace OHOS { +class ContainerInterface { +public: + virtual void AddView(UIView* view) = 0; + + virtual void AddView(DialDataType type, DialView* view, bool isPeriodic) = 0; + + virtual ~ContainerInterface() {} +}; + +class DialViewContainer : public UIViewGroup, public ContainerInterface { +public: + struct SubView { + UIView *view; + DialView *dialView; + DialDataType type; + bool isPeriodic; + }; + DialViewContainer(uint8_t dialviewNum, uint16_t dataSize) : + dialViewNum_(dialviewNum), dataSize_(dataSize) + { + SetTouchable(true); + } + DialViewContainer() {} + ~DialViewContainer() override; + DialViewContainer(const DialViewContainer&) = delete; + DialViewContainer& operator=(const DialViewContainer&) = delete; + + uint8_t GetDialviewNum() const + { + return dialViewNum_; + } + + uint16_t GetDataSize() const + { + return dataSize_; + } + + void AddView(UIView* view) override; + + void AddView(DialDataType type, DialView* view, bool isPeriodic) override; + + ListNode* Begin() + { + return dialViews_.Begin(); + } + + const ListNode* End() + { + return dialViews_.End(); + } + + bool HasInvalidBindData() const + { + return hasInvalidBindData_; + } + + bool RemoveSubView(uint8_t index, SubView &subView); + + bool IsInvalidateBindData(uint8_t index); + +private: + uint8_t dialViewNum_; + uint16_t dataSize_; + List dialViews_; + bool hasInvalidBindData_ = false; +}; // class DialViewContainer +} // namesapce OHOS +#endif // DIAL_VIEW_CONTAINER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewGroup.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewGroup.h new file mode 100644 index 000000000..c65583899 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/DialViewGroup.h @@ -0,0 +1,198 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + */ + +#ifndef DIAL_VIEW_GROUP_H +#define DIAL_VIEW_GROUP_H + +#include +#include +#include "main/dial/DialDataBase.h" +#include "components/ui_view_group.h" +#include "components/ui_image_animator.h" +#include "components/ui_label.h" +#include "main/dial/OnDialDataUpdateListener.h" +#include "components/ui_card_page.h" +#include "components/ui_kaleidoscope_view.h" +#include "gfx_utils/list.h" +#include "gfx_utils/vector.h" +#include "main/dial/DialView.h" +#include "main/dial/DialVideoView.h" +#include "main/DialBinTypesV2.h" +#include "main/dial/DialViewContainer.h" + +namespace OHOS { +class DialViewGroup : public UICardPage, public OnDialDataUpdateListener, public ContainerInterface { +public: + DialViewGroup(); + ~DialViewGroup() override; + + /** + * @brief Set dial resource path. + */ + void SetDial(std::string filePath, DisplayState state = DisplayState::NORMAL); + + /** + * @brief Add a view which binds with data of a specific type and could be updated periodically. + */ + void AddView(DialDataType type, DialView* view, bool isPeriodic) override; + + /** + * @brief Add a view. + */ + void AddView(UIView* view) override; + + /** + * @brief Add a click rect. When the rect is clicked, it will start a js app with the given bundleName. + */ + void AddDialClick(Rect& rect, const char* bundleName); + + /** + * @brief Add a click rect. When the rect is clicked, it will change to a slice with the given sliceId. + */ + void AddDialClick(Rect& rect, uint32_t sliceId); + + /** + * @brief Set update period. + */ + void SetPeriod(uint32_t period); + + /** + * @brief Get update period. + */ + uint32_t GetPeriod(void); + + /** + * @brief Update views periodically. + */ + void UpdateViewsByPeriodicUpdateData(); + + /** + * @brief Dial float data update callback. + */ + void OnDialFloatDataUpdate(DialDataType type, float data) override; + + /** + * @brief Dial multi-float data update callback. + */ + void OnDialFloatDataUpdate(DialDataType type, const float* data, uint16_t num) override; + + /** + * @brief Dial text data update callback. + */ + void OnDialTextDataUpdate(DialDataType type, const std::string* data, uint16_t num) override; + + /** + * @brief Click event callback. + */ + bool OnClickEvent(const ClickEvent& event) override; + + /** + * @brief Preload resource callback. + */ + void PreLoad(void) override; + + /** + * @brief Scroll begin callback. If a video is played, it will be paused. + */ + void ScrollBegin(bool isActive) override; + + /** + * @brief Scroll end callback. If a video is paused or stopped, it will be resumed or started. + */ + void ScrollEnd(bool isActive) override; + + /** + * @brief Cover begin callback. If a video is played, it will be paused. + */ + void CoverBegin(bool isCovered) override; + + /** + * @brief Cover end callback. If a video is paused or stopped, it will be resumed or started. + */ + void CoverEnd(bool isCovered) override; + + /** + * @brief This function is invoked when the function SetHorCurrentPage() is called. + */ + void OnActive(void) override; + + /** + * @brief This function is invoked when the function SetHorCurrentPage() is called. + */ + void OnInactive(void) override; + + /** + * @brief This function is invoked when SetVerCurrentPage is called and horizontal page is covered. + */ + void OnCovered(void) override; + + /** + * @brief This function is invoked when SetVerCurrentPage is called and horizontal page is not covered. + */ + void OnUncovered(void) override; + + void OnPause() override; + + /* -------------------------------------------------------------------------- */ + /*Íⲿ½Ó¿Ú¶Ô±íÅ̽øÐе÷ÓÃ*/ + void StopDial(); + void StartDial(); + + /*Íⲿ½Ó¿Ú¸üбíÅÌ״̬*/ + void UpdateStateShow(); + /* -------------------------------------------------------------------------- */ + + MediaVideoPlay* GetVideoPlay(); + +private: + bool resLoadStatus{false}; + bool videoPlaying_{false}; + + + +private: + void ProcessData(DialDataType type, DialView* view); + void DoStop(void); + void DoStart(void); + void DoPause(void); + void RecordSpecial(UIView *view); + void RecordBindData(DialDataType type, DialView* view, bool isPeriodic); + void ClearViews(); + using Views = Graphic::Vector; + std::unordered_map dataTypeMap_; + Graphic::Vector viewsMemPool_; + List periodicUpdateTypes_; + List passiveUpdateTypes_; + List dialViews_; + uint32_t period_ = DEFAULT_TASK_PERIOD; + bool resPreloaded_ = false; + std::string filePath_; + FILE* fp_ = nullptr; + DialVideoView* video_ = nullptr; + UIKaleidoscopeView *kaleidoscope_ = nullptr; + UIImageView *dialstateicon_{nullptr}; // ÎðÈÅͼ±ê + UIImageView *messageicon_{nullptr}; // δ¶Áͼ±ê + DisplayState state_ = DisplayState::NORMAL; + + typedef struct { + Rect area; + bool isSliceType; + union { + uint32_t sliceId; + char* bundleName; + }; + } DialClick; + List dialClicks_; + + void ClearDial(); + + void SetLableAnimatorState(uint8_t state); + void SetImgAnimatorState(uint8_t state); + List rollingLabelList_; + List imgAnimList_; + bool isSeqImgLoaded_ = false; + std::shared_ptr isExists_; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/ModelDialDataFactory.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/ModelDialDataFactory.h new file mode 100644 index 000000000..23c5255fd --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/ModelDialDataFactory.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: ModelDialDataFactory + * Author: + * Create: 2023-12 + */ + +#ifndef MODE_DIAL_DATA_FACTORY +#define MODE_DIAL_DATA_FACTORY + +#include +#include "main/dial/DialBaseModel.h" +#include "main/dial/DialDataBase.h" +#include "main/dial/ModelDialDataFactory.h" + +namespace OHOS { +class ModelDialDataFactory : public HeapBase { +public: + ModelDialDataFactory() {} + virtual ~ModelDialDataFactory() {} + + static ModelDialDataFactory& GetInstance() + { + static ModelDialDataFactory instance; + return instance; + } + + void RegisterModel(DialDataType type, DialBaseModel* model) + { + models_[static_cast(type)] = model; + } + + bool RegisterDialDataListener(DialDataType type, OnDialDataUpdateListener* listener); + bool UnRegisterDialDataListener(DialDataType type); + bool GetDialTextData(DialDataType& type, std::string*& out, int16_t& strNum); + bool GetDialFloatData(DialDataType& type, float& out); + bool GetDialFloatData(DialDataType& type, float*& out, int16_t& len); + DialBaseModel* GetModuleByType(DialDataType& type); + void DumpModules(); + +private: + std::unordered_map models_; +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/OnDialDataUpdateListener.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/OnDialDataUpdateListener.h new file mode 100644 index 000000000..a14c09e44 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/OnDialDataUpdateListener.h @@ -0,0 +1,23 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: OnDialDataUpdateListener + * Author: + * Create: 2023-12 + */ + +#ifndef ON_DIAL_DATA_UPDATE_LISTENER_H +#define ON_DIAL_DATA_UPDATE_LISTENER_H + +#include "main/dial/DialDataBase.h" + +namespace OHOS { +class OnDialDataUpdateListener : public HeapBase { +public: + OnDialDataUpdateListener() {} + virtual ~OnDialDataUpdateListener() {} + virtual void OnDialFloatDataUpdate(DialDataType type, float data) {} + virtual void OnDialFloatDataUpdate(DialDataType type, const float* data, uint16_t num) {} + virtual void OnDialTextDataUpdate(DialDataType type, const std::string* data, uint16_t num) {} +}; +} +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/RegisterDialModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/RegisterDialModel.h new file mode 100644 index 000000000..c0b4cbdde --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/RegisterDialModel.h @@ -0,0 +1,25 @@ +/* + * Copyright (c) CompanyNameMagicTag 2023. All rights reserved. + * Description: RegisterDialModel + * Author: + * Create: 2023-12 + */ + +#ifndef REGISTER_DIAL_MODEL_H +#define REGISTER_DIAL_MODEL_H + +#include "main/dial/DialDataBase.h" +#include "main/dial/ModelDialDataFactory.h" +namespace OHOS { +class RegisterDialModel { +public: + RegisterDialModel(DialDataType type, DialBaseModel* func) + { + ModelDialDataFactory::GetInstance().RegisterModel(type, func); + } + virtual ~RegisterDialModel() {} +}; +} + +#define REGIST_DIAL_MODULE(type, func) static OHOS::RegisterDialModel(REGIST_OCCURRENCES)(type, func) +#endif diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/WatchInterface.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/WatchInterface.h new file mode 100644 index 000000000..f628bded6 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/main/dial/WatchInterface.h @@ -0,0 +1,97 @@ +/* + * Copyright (c) CompanyNameMagicTag 2025. All rights reserved. + * Description: WatchInterface + * Author: + * Create: 2025-03-17 + */ + +#ifndef WATCH_INTERFACE_H +#define WATCH_INTERFACE_H +#include +#include "format_type.h" +#include "dial_market.h" +#ifdef __cplusplus +extern "C" { +#endif + +/** + * @brief Get all watch face information + * @param [out] watch_dial_info **info + * A pointer to a pointer where the retrieved watch face information will be stored. + * @param [out] uint8_t *num + * A pointer to the number of watch face information entries retrieved. + * @return bool + * - true: Successfully retrieved watch face information. + * The pointer pointed to by `info` needs to be released + * externally. + * - false: Failed to retrieve watch face information. + * @remarks + * - If the function returns true, + * the memory pointed to by `info` must be freed by the caller to prevent + * memory leaks. + * - If the function returns false, the values of `info` and `num` remain unchanged. + */ +bool GetAllWatchFaceInfo(watch_dial_info **info, uint8_t *num); + +/** + * @brief Get information of a specific watch face by UUID + * @param[in] uuid Unique identifier of the watch face + * @param[out] watch Pointer to store the watch face information + * @return bool Returns true if successful, false otherwise + */ +bool GetWatchFaceInfo(uint32_t uuid, watch_dial_info *watch); + +/** + * @brief Get the capability set of the watch + * @param[out] capability Pointer to store the watch capability information + * @return bool Returns true if successful, false otherwise + */ +bool GetWatchCapability(watch_dev_cap_info *capability); + +/** + * @brief Get system information + * @param[out] sysInfo Pointer to store the system information + * @return bool Returns true if successful, false otherwise + */ +bool GetWatchSystemInfo(watch_sys_info *sysInfo); + +/** + * @brief Get information of the currently active watch face + * @param[out] watch Pointer to store the watch face information + * @return bool Returns true if successful, false otherwise + */ +bool GetCurrentWatchFaceInfo(watch_dial_info *watch); + +/** + * @brief Set the currently active watch face by UUID + * @param[in] uuid Unique identifier of the watch face to set as active + * @return bool Returns true if successful, false otherwise + */ +bool SetCurrentWatchFace(uint32_t uuid); + +/** + * @brief Uninstall a watch face by UUID + * @param[in] uuid Unique identifier of the watch face to uninstall + * @return bool Returns true if successful, false otherwise + * @note If the UUID corresponds to the currently active watch face, it will switch to the default watch face + */ +bool UninstallWatch(uint32_t uuid); + +/** + * @brief Retrieves the unique identifier (UUID) associated with a specified path. + * + * @param[in] path The path to look up. + * @param[out] uuid A pointer to a variable where the UUID will be stored if found. + * + * @return bool + * - true if the UUID is successfully retrieved. + * - false if the path is invalid or the UUID cannot be obtained. + * + * @remarks The caller is responsible for ensuring that the 'uuid' pointer is valid and properly aligned. + */ +bool GetUuidByPath(const char *path, uint32_t *uuid); + +#ifdef __cplusplus +} +#endif +#endif // WATCH_INTERFACE_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialInfo.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialInfo.h new file mode 100644 index 000000000..abc288d24 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialInfo.h @@ -0,0 +1,27 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: SetDialInfo.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef SET_DIAL_INFO_H +#define SET_DIAL_INFO_H +#include +#include +#include +#include "common/image_cache_manager.h" +namespace OHOS { + typedef struct { + uint8_t dialFlag; /* 1:离线表盘 0:预制表盘 */ + uint8_t id; /* 仅预制表盘使用 */ + uint32_t resId; /* 仅离线表盘使用 */ + std::string dialFullName; /* 仅离线表盘使用 */ + std::string imageFullName; /* 仅预制表盘使用 */ + std::string dialName; + std::string description; /* 仅离线表盘使用 */ + ImageInfo *preImageInfo; + uint8_t capability; + } SetDialInfo; +} +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialModel.h new file mode 100644 index 000000000..546e89d86 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialModel.h @@ -0,0 +1,38 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: SetDialModel.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef SET_DIAL_MODEL_H +#define SET_DIAL_MODEL_H +#include "AppViewIDs.h" +#include "UiConfig.h" +#include "set_dial/SetDialInfo.h" + +namespace OHOS { + class SetDialModel { + public: + static SetDialModel &GetInstance(void); + void LoadAllDial(void); + size_t GetDialCount(void); + std::vector& GetDialInfo(void); + std::vector& GetAmbientDialInfo(void); + void ClearDialInfo(void); + void SaveDialSetting(uint8_t pageIndex); + uint8_t GetPageIndex(void); + private: + void LoadAllDialFromRam(void); + void LoadAllDialFromFs(void); + SetDialModel(); + SetDialModel(const SetDialModel &); + SetDialModel &operator=(const SetDialModel &); + virtual ~SetDialModel(); + int32_t ParseDialHeader(const std::string &dialFileName, SetDialInfo &dialInfo); + std::vector dialInfoList; + std::vector aodDialInfoList; + }; +} + +#endif // SET_DIAL_MODEL_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialPresenter.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialPresenter.h new file mode 100644 index 000000000..150397dbf --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialPresenter.h @@ -0,0 +1,54 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: SetDialPresenter.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef SET_DIAL_PRESENTER_H +#define SET_DIAL_PRESENTER_H +#include "set_dial/SetDialInfo.h" +#include "set_dial/SetDialModel.h" +#include "Presenter.h" +#include "components/ui_view.h" +#include "components/ui_roller_view.h" +#include "key/include/KeyInputListener.h" +#include "main/include/ModelListenerSample.h" +#include "components/ui_coverflow_view.h" +#include "main/MainModel.h" + +namespace OHOS { + +const uint16_t MISS_DIAL_OPERATION_TIME = 3000; + +class SetDialView; +class SetDialModel; +class SetDialPresenter : public Presenter, + public UIView::OnClickListener, public ModelListenerSample, + public UICoverflowView::OnCoverflowScrollListener, + public UIRollerView::OnScrollListener { +public: + SetDialPresenter(); + ~SetDialPresenter() override; + static SetDialPresenter *GetCurrentInstance(); + void SpecifyDialSetting(const DialSetting &setting); + size_t GetDialCount(void); + std::vector& GetDialInfo(void); + uint8_t GetPageIndex(void); + void OnTickEvent() override; + void Notify() override {} + void OnStop() override; + bool OnScroll() override; + void OnScroll(UIRollerView* roller, std::string currentItemName, float currentItemAngle) override; + bool OnClick(UIView &view, const ClickEvent &event) override; + void ResetTickTimer(void); +private: + void OnClickAction(void); + SetDialModel *model{nullptr}; + uint64_t startTime{0}; + bool isSpecific = false; + DialSetting specificSetting; +}; +} + +#endif // SET_DIAL_PRESENTER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialView.h new file mode 100644 index 000000000..f26dc3b56 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial/SetDialView.h @@ -0,0 +1,53 @@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: SetDialView.h + * Author: + * Create: 2021-11-23 + */ + +#ifndef SET_DIAL_VIEW_H +#define SET_DIAL_VIEW_H + +#include "View.h" +#include "components/ui_view_group.h" +#include "components/ui_coverflow_view.h" +#include "components/ui_roller_view.h" +#include "ChangeSliceListener.h" +#include "UiConfig.h" + +namespace OHOS { +static constexpr uint8_t DIVISOR_TWO = 2; +class SetDialPresenter; + +enum class DialStyle { + COVERFLOW = 0, + ROLLER, + STYLE_NUM +}; + +class SetDialView : public View { +public: + SetDialView(); + ~SetDialView() override; + + static SetDialView *GetInstance() + { + static SetDialView instance; + return &instance; + } + + void OnStart() override; + void CoverflowViewScroll(void); + void RollerViewScroll(std::string currentItemName, float currentItemAngle); + uint8_t GetCoverflowPage(void); +private: + void SetUpCoverflowView(void); + void SetUpRollerView(void); + UICoverflowView coverflow_; + UIRollerView rollerView_; + int16_t rollerItemNum_ = 0; + UILabel label_; + uint8_t lastIndex_; +}; +} +#endif // SET_DIAL_VIEW_H diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleModel.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleModel.h new file mode 100644 index 000000000..7ed274df2 --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleModel.h @@ -0,0 +1,41 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStyleModel.h + * Author: + * Create: 2024-06-06 + */ + +#ifndef SET_DIAL_STYLE_MODEL_H +#define SET_DIAL_STYLE_MODEL_H +#include "set_dial/SetDialView.h" +#include "components/ui_view.h" + +namespace OHOS { +class SetDialStyleModel { +public: + static SetDialStyleModel& GetInstance() + { + static SetDialStyleModel model; + return model; + } + + void SetStyle(DialStyle style); + DialStyle GetStyle(); + +private: + constexpr static uint8_t MAX_LEN = 32; + const char key_[MAX_LEN] = "set_dial_style"; + struct { + const DialStyle style; + const char value[MAX_LEN]; + } values_[static_cast(DialStyle::STYLE_NUM)] = { + {DialStyle::COVERFLOW, "DialStyle::COVERFLOW"}, + {DialStyle::ROLLER, "DialStyle::ROLLER"}, + }; + SetDialStyleModel(); + ~SetDialStyleModel(); + SetDialStyleModel(const SetDialStyleModel&) = delete; + SetDialStyleModel& operator=(const SetDialStyleModel&) = delete; +}; +} // OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStylePresenter.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStylePresenter.h new file mode 100644 index 000000000..d867280af --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStylePresenter.h @@ -0,0 +1,37 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStylePresenter.h + * Author: + * Create: 2024-06-06 + */ + +#ifndef SET_DIAL_STYLE_PRESENTER_H +#define SET_DIAL_STYLE_PRESENTER_H +#include "set_dial/SetDialView.h" +#include "components/ui_view.h" +#include "Presenter.h" + +namespace OHOS { +class SetDialStyleModel; +class SetDialStyleView; +class SetDialStylePresenter : public Presenter, + public UIView::OnClickListener, + public UIView::OnDragListener { +public: + SetDialStylePresenter(); + ~SetDialStylePresenter() override; + SetDialStylePresenter(const SetDialStylePresenter&) = delete; + SetDialStylePresenter& operator=(const SetDialStylePresenter&) = delete; + bool OnClick(UIView &view, const ClickEvent &event) override; + bool OnDrag(UIView& view, const DragEvent& event) override; + DialStyle GetCurrentStyle() const + { + return curStyle_; + } + +private: + DialStyle curStyle_ = DialStyle::COVERFLOW; +}; + +} // OHOS +#endif \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleView.h b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleView.h new file mode 100644 index 000000000..a32550a0d --- /dev/null +++ b/code/sdk/application/wearable/fd230/nativeapp/nativeui/include/set_dial_style/SetDialStyleView.h @@ -0,0 +1,45 @@ +/* + * Copyright (c) CompanyNameMagicTag 2024. All rights reserved. + * Description: SetDialStyleView.h + * Author: + * Create: 2024-06-06 + */ + +#ifndef SET_DIAL_STYLE_VIEW_H +#define SET_DIAL_STYLE_VIEW_H +#include "components/ui_view.h" +#include "components/ui_label.h" +#include "components/ui_view_group.h" +#include "components/ui_toggle_button.h" +#include "set_dial/SetDialView.h" +#include "View.h" + +namespace OHOS { +class SetDialStylePresenter; +class SetDialStyleView : public View { +public: + SetDialStyleView(); + ~SetDialStyleView() override; + SetDialStyleView(const SetDialStyleView &) = delete; + SetDialStyleView& operator=(const SetDialStyleView &) = delete; + + void OnStart() override; + void OnClick(UIView &view); + +private: + UILabel labelCover_; + UILabel labelRoller_; + UILabel labelEnableAod_; + UIToggleButton btnCover_; + UIToggleButton btnRoller_; + UIToggleButton btnEnableAod_; + struct { + UIToggleButton *btn; + DialStyle style; + } styleTable_[static_cast(DialStyle::STYLE_NUM)] = { + {&btnCover_, DialStyle::COVERFLOW}, + {&btnRoller_, DialStyle::ROLLER}, + }; +}; +} // OHOS +#endif \ No newline at end of file diff --git a/code/sdk/zhihui/services/ble_service/bleservice/bleService.c b/code/sdk/zhihui/services/ble_service/bleservice/bleService.c index 25a41c293..a88bda4e0 100644 --- a/code/sdk/zhihui/services/ble_service/bleservice/bleService.c +++ b/code/sdk/zhihui/services/ble_service/bleservice/bleService.c @@ -1354,7 +1354,7 @@ static void svr_ble_bt_gatts_service_add_cb(uint8_t server_id, bt_uuid_t *uuid, srv_ble_add_chart_decr_andriod(server_id,srv_handle);//对18e0这个服务进行添加andiod特征值和描述符 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "srv_ble_add_chart_decr_andriod \r\n"); - srv_ble_add_chart_decr_battery(server_id,srv_handle);//电池电量特征值 + // srv_ble_add_chart_decr_battery(server_id,srv_handle);//电池电量特征值 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "srv_ble_add_chart_decr_battery \r\n"); srv_ble_add_chart_decr_short_cmd(server_id,srv_handle); WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "srv_ble_add_chart_decr_short_cmd \r\n"); -- 2.17.1