From: Caisking <3449750381@qq.com> Date: Thu, 18 Apr 2024 06:13:59 +0000 (+0800) Subject: 增加设置卡路里SubView,删除原Slice;删除GPS训练Slice X-Git-Tag: release_V1.2.70_20241020_135402~1171^2~13 X-Git-Url: http://git.snicker.com.cn/?a=commitdiff_plain;h=7e3f19c8f04fd7577160d6770d507052d33102d0;p=mirrors%2FFD230.git 增加设置卡路里SubView,删除原Slice;删除GPS训练Slice --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index bdad07ba9..d6e97ae2a 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -480,13 +480,12 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetSeptPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetTimeView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetTimePresenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetCaluliView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingSetCaluliPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingEnddataView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingEnddataPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingWinView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingWinPresenter.cpp - + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TrainingSetCaluliView.cpp + #主界面训练卡片 ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/Training_CardView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_card/src/Training_CardPresenter.cpp @@ -500,19 +499,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traingrecord/src/TraingRecordPresenter.cpp - #GPS训练 - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSPresenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlackView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlackPresenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSnoteView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSnotePresenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlostPresenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSlostView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSbackPresenter.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSbackView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSsetView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp #训练列表 #极限训练 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h index 40775edee..3bfbd5b8e 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h @@ -75,7 +75,6 @@ typedef enum : uint16_t VIEW_TRAININGNOMAL, // 正常训练开始界面(除骑行,健走,跑步外) VIEW_TRAININGSET, // 训练目标(时长,卡路里) VIEW_TRAININGSETTIME, // 设置训练时长 - VIEW_TRAININGSETCALULI, // 设置训练卡路里 VIEW_TRAININGSETDIST, // 设置训练路程 VIEW_TRAININGSETSTEP, // 设置训练步数 VIEW_TRAININGCRAD, // 训练控制卡片 @@ -92,13 +91,6 @@ typedef enum : uint16_t VIEW_TRAININGBALL, // 球类运动列表 VIEW_TRAININGAQUATIC, // 水上运动列表 VIEW_TRAININGOTHER, // 其他列表 - /* ---------------------------------- GPS训练 --------------------------------- */ - VIEW_TRAININGGPS, // GPS训练 - VIEW_TRAININGGPSSET, // GPS训练目标(时长,距离,卡路里,步数) - VIEW_TRAININGGPSLACK, // 缺少GPS - VIEW_TRAININGGPSNOTE, // 连接GPS提醒 - VIEW_TRAININGGPSLOST, // GPS断联 - VIEW_TRAININGGPSBACK, // GPS回连 /* -------------------------------------------------------------------------- */ VIEW_MAIN_TEMP, // 体温界面(暂时不用) VIEW_OFFLINEVOICE, // 语音助手界面(暂时不用) diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h index 78c260bce..8af8f43cf 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h @@ -68,20 +68,12 @@ namespace OHOS void InitTraingNomalSlice(void); void InitTraingSetSlice(void); void InitTraingSetTimeSlice(void); - void InitTraingSetCaluliSlice(void); void InitTraingSetDistSlice(void); void InitTraingSetStepSlice(void); void InitTraingCardSlice(void); void InitTraingEnddataSlice(void); void InitTraingWinSlice(void); - void InitTraingGPSSetSlice(void); - void InitTraingGPSSlice(void); - void InitTraingGPSlackSlice(void); - void InitTraingGPSnoteSlice(void); - void InitTraingGPSlostSlice(void); - void InitTraingGPSbackSlice(void); - void InitTraingMoreSlice(void); // 更多训练 void InitTraingLimitSlice(void); // 极限训练 void InitTraingIceSlice(void); // 冰上训练 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index 8abf4e203..9684c2fb7 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@ -165,8 +165,6 @@ #include "traing/include/TraingSetView.h" #include "traing/include/TraingSetTimePresenter.h" #include "traing/include/TraingSetTimeView.h" -#include "traing/include/TraingSetCaluliPresenter.h" -#include "traing/include/TraingSetCaluliView.h" #include "traing/include/TraingSetDistPresenter.h" #include "traing/include/TraingSetDistView.h" #include "traing/include/TraingSetSeptPresenter.h" @@ -175,19 +173,6 @@ #include "traing/include/TraingEnddataView.h" #include "traing/include/TraingWinPresenter.h" #include "traing/include/TraingWinView.h" -/* ---------------------------------- GPS训练 --------------------------------- */ -#include "traing/training_GPS/include/TraingGPSPresenter.h" -#include "traing/training_GPS/include/TraingGPSView.h" -#include "traing/training_GPS/include/TraingGPSlackPresenter.h" -#include "traing/training_GPS/include/TraingGPSlackView.h" -#include "traing/training_GPS/include/TraingGPSnotePresenter.h" -#include "traing/training_GPS/include/TraingGPSnoteView.h" -#include "traing/training_GPS/include/TraingGPSlostPresenter.h" -#include "traing/training_GPS/include/TraingGPSlostView.h" -#include "traing/training_GPS/include/TraingGPSbackPresenter.h" -#include "traing/training_GPS/include/TraingGPSbackView.h" -#include "traing/training_GPS/include/TraingGPSsetPresenter.h" -#include "traing/training_GPS/include/TraingGPSsetView.h" /* ---------------------------------- 训练记录 ---------------------------------- */ #include "traingrecord/include/TraingRecordView.h" #include "traingrecord/include/TraingRecordPresenter.h" @@ -299,9 +284,7 @@ namespace OHOS {VIEW_TRAINING, &NativeLauncher::InitTraingSlice}, // 训练 {VIEW_TRAININGNOMAL, &NativeLauncher::InitTraingNomalSlice}, // 正常训练初始界面 {VIEW_TRAININGSET, &NativeLauncher::InitTraingSetSlice}, // 训练目标设置界面 - {VIEW_TRAININGGPSSET, &NativeLauncher::InitTraingGPSSetSlice}, // 训练GPS目标设置界面 {VIEW_TRAININGSETTIME, &NativeLauncher::InitTraingSetTimeSlice}, // 设置目标时长 - {VIEW_TRAININGSETCALULI, &NativeLauncher::InitTraingSetCaluliSlice}, // 设置目标卡路里 {VIEW_TRAININGSETDIST, &NativeLauncher::InitTraingSetDistSlice}, // 设置目标距离 {VIEW_TRAININGSETSTEP, &NativeLauncher::InitTraingSetStepSlice}, // 设置目标步数 {VIEW_TRAININGCRAD, &NativeLauncher::InitTraingCardSlice}, // 训练卡片 @@ -309,13 +292,6 @@ namespace OHOS {VIEW_TRAININGWIN, &NativeLauncher::InitTraingWinSlice}, // 训练目标达成 {VIEW_TRAINING_RECORD, &NativeLauncher::InitTraingRecordSlice}, // 训练目标达成 - {VIEW_TRAININGGPSSET, &NativeLauncher::InitTraingGPSSetSlice}, // 训练GPS目标设置界面 - {VIEW_TRAININGGPS, &NativeLauncher::InitTraingGPSSlice}, // GPS训练 - {VIEW_TRAININGGPSLACK, &NativeLauncher::InitTraingGPSlackSlice}, // GPS缺少 - {VIEW_TRAININGGPSNOTE, &NativeLauncher::InitTraingGPSnoteSlice}, // 提醒连接GPS - {VIEW_TRAININGGPSLOST, &NativeLauncher::InitTraingGPSlostSlice}, // GPS断联 - {VIEW_TRAININGGPSBACK, &NativeLauncher::InitTraingGPSbackSlice}, // GPS回连 - {VIEW_TRAININGMORE, &NativeLauncher::InitTraingMoreSlice}, // 更多训练 {VIEW_TRAININGLIMIT, &NativeLauncher::InitTraingLimitSlice}, // 极限训练 {VIEW_TRAININGICE, &NativeLauncher::InitTraingIceSlice}, // 冰上训练 @@ -890,21 +866,11 @@ namespace OHOS SliceProxy *traingsetview = new AbilitySliceProxy; NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSET, traingsetview); } - void NativeLauncher::InitTraingGPSSetSlice(void) - { - SliceProxy *traingGPSsetview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSSET, traingGPSsetview); - } void NativeLauncher::InitTraingSetTimeSlice(void) { SliceProxy *traingsettimeview = new AbilitySliceProxy; NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSETTIME, traingsettimeview); } - void NativeLauncher::InitTraingSetCaluliSlice(void) - { - SliceProxy *traingsetcaluliview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGSETCALULI, traingsetcaluliview); - } void NativeLauncher::InitTraingSetDistSlice(void) { SliceProxy *traingsetdistview = new AbilitySliceProxy; @@ -937,32 +903,6 @@ namespace OHOS NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAINING_RECORD, traingrecordview); } - /* -------------------------------------------------------------------------- */ - void NativeLauncher::InitTraingGPSSlice(void) - { - SliceProxy *traingGPSview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPS, traingGPSview); - } - void NativeLauncher::InitTraingGPSlackSlice(void) - { - SliceProxy *traingGPSlackview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSLACK, traingGPSlackview); - } - void NativeLauncher::InitTraingGPSnoteSlice(void) - { - SliceProxy *traingGPSnoteview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSNOTE, traingGPSnoteview); - } - void NativeLauncher::InitTraingGPSlostSlice(void) - { - SliceProxy *traingGPSlostview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSLOST, traingGPSlostview); - } - void NativeLauncher::InitTraingGPSbackSlice(void) - { - SliceProxy *traingGPSbackview = new AbilitySliceProxy; - NativeAbility::GetInstance().AddSliceProxy(VIEW_TRAININGGPSBACK, traingGPSbackview); - } /* ---------------------------------- 训练列表 ---------------------------------- */ void NativeLauncher::InitTraingMoreSlice(void) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodOxygenView.h b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodOxygenView.h index dabea89a8..d654824ea 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodOxygenView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodOxygenView.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 10:23:54 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodOxygenView.h + */ /* * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. * Description: bloodOxygen view @@ -44,6 +50,7 @@ namespace OHOS void OnTearDownView() override; void OnStart() override; static BloodOxygenView *GetInstance(void); + bool ChangeBloodView(int16_t thisview); // 主视图 bool ChangeBandoffView(int16_t thisview); bool ChangeCheckView(int16_t thisview); diff --git a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h index 514baaa6c..26a81d86d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 12:11:45 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodResultView.h + */ /* * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. * Description: bloodResult view diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h index 7455ced96..408ba07ce 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingModel.h @@ -13,7 +13,7 @@ #include "BaseView.h" #include "View.h" #include "string.h" -#include +#include "components/ui_scroll_view.h" #include "components/ui_view_group.h" #include "components/ui_label.h" #include "components/ui_label_ext.h" @@ -29,16 +29,10 @@ #include "components/ui_card_page.h" #include "traing/include/TraingModel.h" #include "traing/Training_UiConfig.h" -#include "components/ui_label_ext.h" #include "language/font/ui_resource_string.h" -#include "traing/include/TraingModel.h" -#include "traing/Training_UiConfig.h" - #include "cywee_service.h" #include "cywee_hal.h" -#include "power_display_service.h" -#include "displaybrightness/include/DisplayBrightnessModel.h" #include #include @@ -263,7 +257,7 @@ namespace OHOS ExerciseState sportState_ = ExerciseState::General; // 训练状态 ExerciseTag sportTag_ = ExerciseTag::Distance; // 训练目标类型 - int tag_ = 0; // 训练目标 + int tag_ = 0; // 训练目标 int totalHeartRate = 0; int countHeartRate = 0; /*std::unique_ptr sportdata;*/ // 使用 std::unique_ptr 管理 SportData 对象 diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliPresenter.h deleted file mode 100644 index 1c94e823d..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliPresenter.h +++ /dev/null @@ -1,34 +0,0 @@ -#ifndef _TraingSetCaluli_PRESENTER_H -#define _TraingSetCaluli_PRESENTER_H - -#include "Presenter.h" -#include "TraingSetCaluliView.h" - -namespace OHOS -{ - class TraingSetCaluliView; - - class TraingSetCaluliPresenter : public Presenter, - public UIView::OnClickListener, - public UIView::OnDragListener - { - public: - TraingSetCaluliPresenter(); - virtual ~TraingSetCaluliPresenter(); - - void OnStart() override; - void OnPause() override; - void OnResume() override; - void OnStop() override; - - static TraingSetCaluliPresenter *GetInstance(); - - private: - // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; - bool OnClick(UIView &view, const ClickEvent &event) override; - bool OnDrag(UIView &view, const DragEvent &event) override; - //bool OnDragEnd(UIView& view, const DragEvent& event) override; - }; -} // namespace OHOS - -#endif // SLEEPDETAIL_PRESENTER_H \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliView.h deleted file mode 100644 index d6573975f..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetCaluliView.h +++ /dev/null @@ -1,63 +0,0 @@ -#ifndef _TraingSetCaluli_VIEW_H -#define _TraingSetCaluli_VIEW_H - -#include "BaseView.h" -#include "View.h" -#include -#include "components/ui_view_group.h" -#include "components/ui_label.h" -#include "components/ui_label_ext.h" -#include "components/ui_image_view.h" -#include "components/ui_button.h" -#include "components/ui_image_animator.h" -#include "components/ui_label_button_ext.h" -#include "components/ui_chart.h" -#include "components/ui_list.h" -#include "components/icon_adapter.h" -#include "wearable_log.h" -#include "ohos_types.h" -#include "components/ui_card_page.h" -#include "traing/include/TraingModel.h" -#include "traing/Training_UiConfig.h" -#include "components/ui_picker.h" - -#include "TraingSetCaluliPresenter.h" -namespace OHOS -{ -#define BUTTONOK "button1" - - - class TraingSetCaluliPresenter; - class TraingSetCaluliView : public View - { - - public: - TraingSetCaluliView(); - virtual ~TraingSetCaluliView(); - static TraingSetCaluliView *GetInstance(void); - - void OnStart() override; - void OnSetUpView() override; - void OnTearDownView() override; - void OnStop() override; - void InitView(); - void DeInit(); - - void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId); - void InitList(); - void PreLoad(void); - - private: - UIView::OnDragListener *draglistener{nullptr}; - TraingSetCaluliView(TraingSetCaluliView &&) = delete; - TraingSetCaluliView &operator=(TraingSetCaluliView &&) = delete; - - UIViewGroup *container_ = nullptr; - UILabelExt *label1_ = nullptr; - UIButton *button1_ = nullptr; - UIPicker *uiPicker1_ = nullptr; - - bool viewiInitStatus{false}; - }; -} // namespace OHOS -#endif // TraingSetCaluli_PRESENTER_H diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h index 8d600b2fa..0fd5c5d78 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 10:18:50 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetPresenter.h + */ #ifndef _TraingSet_PRESENTER_H #define _TraingSet_PRESENTER_H @@ -6,8 +12,17 @@ namespace OHOS { - class TraingSetView; + typedef enum + { + SET_VIEW = 0, // 主界面 + SET_CALORIES, + SET_DURATION, + SET_STEPS, + SET_DISTANCE, + MAX_SETVIEW, + } SETGOLDVIEWID; + class TraingSetView; class TraingSetPresenter : public Presenter, public UIView::OnClickListener, public UIView::OnDragListener diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h index 55d7feb18..4129f46a3 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TraingSetView.h @@ -17,15 +17,12 @@ #include "components/ui_button.h" #include "components/ui_image_animator.h" #include "components/ui_label_button_ext.h" -#include "components/ui_chart.h" -#include "components/ui_list.h" #include "components/icon_adapter.h" #include "wearable_log.h" -#include "ohos_types.h" -#include "components/ui_card_page.h" #include "traing/include/TraingModel.h" #include "traing/Training_UiConfig.h" +#include "traing/include/TrainingSetCaluliView.h" #include "TraingSetPresenter.h" namespace OHOS { @@ -33,6 +30,7 @@ namespace OHOS #define BUTTONCALULI "button2" class TraingSetPresenter; + class TrainingSetCaluliView; class TraingSetView : public View { @@ -47,26 +45,32 @@ namespace OHOS void OnStop() override; void InitView(); void DeInit(); - - void InitList(); void PreLoad(void); + bool ChangeSetView(int16_t thisview); + bool ChangeSetCaloriesView(int16_t thisview); + bool ChangeSetStepsView(int16_t thisview); + bool ChangeSetDistanceView(int16_t thisview); + bool ChangeSetDurationView(int16_t thisview); + bool ClickFunc(int16_t interface); + void ChangeView(int16_t hideView, int16_t showView); + private: UIView::OnDragListener *draglistener{nullptr}; TraingSetView(TraingSetView &&) = delete; TraingSetView &operator=(TraingSetView &&) = delete; UIViewGroup *container_ = nullptr; + UIScrollView *SetTagScrollView[4]{nullptr}; + TrainingSetCaluliView *setcalories{nullptr}; UILabelExt *labeltitle = nullptr; UILabelExt *labeltime = nullptr; UILabelExt *labelKcal = nullptr; - UIImageView *imagetime = nullptr; UIImageView *imagcal = nullptr; UIImageView *imagicon1 = nullptr; UIImageView *imagico2 = nullptr; - UIButton *butTime = nullptr; UIButton *butKcal = nullptr; diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h new file mode 100644 index 000000000..7aeab78dd --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h @@ -0,0 +1,50 @@ +/*** + * @Date: 2024-04-18 10:57:45 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 11:00:03 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetCaluliView.h + */ +#ifndef _Training_SetCaluli_VIEW_H +#define _Training_SetCaluli_VIEW_H + +#include "BaseView.h" +#include "View.h" +#include "components/ui_label_ext.h" +#include "components/ui_button.h" +#include "components/ui_label_button_ext.h" +#include "wearable_log.h" +#include "traing/include/TraingModel.h" +#include "traing/Training_UiConfig.h" +#include "components/ui_picker.h" +#include "components/ui_scroll_view.h" + +#include "traing/include/TraingSetPresenter.h" +#include "traing/include/TrainingSetCaluliView.h" + +namespace OHOS +{ +#define BUTTONOK "button1" + + class TraingSetPresenter; + class TrainingSetCaluliView : public View + { + + public: + TrainingSetCaluliView(); + virtual ~TrainingSetCaluliView(); + static TrainingSetCaluliView *GetInstance(void); + UIScrollView *SetCaloriesViewInit(); + + void InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId); + + private: + UIView::OnDragListener *draglistener{nullptr}; + + UILabelExt *labeltitle_ = nullptr; + UILabelButtonExt*buttonok_ = nullptr; + UIPicker *calPicker_ = nullptr; + + UIScrollView *SetCaloriesScrollView; + }; +} // namespace OHOS +#endif diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetMileView.h new file mode 100644 index 000000000..e69de29bb diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetSeptView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetSeptView.h new file mode 100644 index 000000000..e69de29bb diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h b/code/sdk/application/wearable/fd230app/nativeui/traing/include/TrainingSetTimeView.h new file mode 100644 index 000000000..e69de29bb diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliPresenter.cpp deleted file mode 100644 index 01ed4e696..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliPresenter.cpp +++ /dev/null @@ -1,81 +0,0 @@ -#include "AppViewIDs.h" -#include "components/ui_label_ext.h" -#include"language/font/ui_resource_string.h" -#include "NativeAbility.h" - -#include -#include -#include -#include "traing/include/TraingSetCaluliPresenter.h" -// #include "TraingSetCaluliView.h" - -namespace OHOS -{ - - // 当前Presenter属性实例化的内存指针 - static TraingSetCaluliPresenter *g_pTraingSetCaluliPresenter = nullptr; - - TraingSetCaluliPresenter::TraingSetCaluliPresenter() - { - - g_pTraingSetCaluliPresenter = this; - } - - TraingSetCaluliPresenter::~TraingSetCaluliPresenter() - { - - g_pTraingSetCaluliPresenter = nullptr; - } - - TraingSetCaluliPresenter *TraingSetCaluliPresenter::GetInstance() - { - - return g_pTraingSetCaluliPresenter; - } - - void TraingSetCaluliPresenter::OnStart() - { - - Presenter::OnStart(); - } - - void TraingSetCaluliPresenter::OnPause(void) - { - - Presenter::OnPause(); - } - - void TraingSetCaluliPresenter::OnResume(void) - { - - Presenter::OnResume(); - } - - void TraingSetCaluliPresenter::OnStop(void) - { - - Presenter::OnStop(); - } - - bool TraingSetCaluliPresenter::OnDrag(UIView &view, const DragEvent &event) - { - - // if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && - // (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY())))) - // { - // NativeAbility::GetInstance().ChangeSlice(VIEW_TRAININGSET); - // } - UNUSED(view); - return true; - } - - bool TraingSetCaluliPresenter::OnClick(UIView &view, const ClickEvent &event) - { - // 根据控件id查找是哪个控件触发了点击回调 - if (strcmp(view.GetViewId(), BUTTONOK) == 0) - { - NativeAbility::GetInstance().Back(); // 返回函数 - } - return true; - } -} diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliView.cpp deleted file mode 100644 index 2f82e46bf..000000000 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetCaluliView.cpp +++ /dev/null @@ -1,218 +0,0 @@ - -#include "traing/include/TraingSetCaluliView.h" - -#include "common/image_cache_manager.h" -#include "components/ui_label_ext.h" -#include "language/font/ui_resource_string.h" -#include "UiConfig.h" -#include "ui_resource_image.h" -#include -#include "components/ui_button.h" -#include "common/screen.h" -#include -#include -#include -#include "traing/include/TraingModel.h" -#include "traing/Training_UiConfig.h" -namespace OHOS -{ - - /***************************************************************************************/ - // 动态生成包含指定卡路里区间内所有卡路里数的字符串数组 - std::vector GenerateCaluliValues(int minTime, int maxTime, int interval) - { - std::vector values; - for (int i = minTime; i <= maxTime; i += interval) - { - values.push_back(std::to_string(i) + " 千卡"); - } - return values; - } - /***************************************************************************************/ - static TraingSetCaluliView *g_pTraingSetCaluliView{nullptr}; - - TraingSetCaluliView::TraingSetCaluliView() - { - g_pTraingSetCaluliView = this; - } - - TraingSetCaluliView::~TraingSetCaluliView() - { - DeInit(); - g_pTraingSetCaluliView = nullptr; - } - - TraingSetCaluliView *TraingSetCaluliView::GetInstance() - { - - return g_pTraingSetCaluliView; - } - - /* - InitUIPicker: 初始化UIPicker组件 - @param picker: 指向UIPicker的指针 - @param x: UIPicker的左边位置 - @param y: UIPicker的顶部位置 - @param width: UIPicker的宽度 - @param height: UIPicker的高度 - @param viewId: UIPicker的视图 ID - @param values: 选项数组 - @param count: 选项数量 - @param backgroundFontSize: 普通文本大小 - @highlightFontSize: 高光文本大小 - */ - void TraingSetCaluliView::InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId) - { - // 文本大小 - constexpr uint8_t BACKGROUND_FONT = 40; - constexpr uint8_t HIGHTLIGHT_FONT = 60; - // 获取value数组 - int minCaluli = 100; - int maxCaluli = 1000; - int interval = 100; - std::vector caluliValues = GenerateCaluliValues(minCaluli, maxCaluli, interval); - - const char **values = new const char *[caluliValues.size()]; - for (size_t i = 0; i < caluliValues.size(); i++) - { - values[i] = caluliValues[i].c_str(); - } - // 创建 UIPicker - if (picker == nullptr) - { - picker = new UIPicker(); - } - - // 设置 UIPicker 的位置和大小 - picker->SetPosition(x, y); - picker->Resize(width, height); - // 设置 UIPicker 的 ViewId - picker->SetViewId(viewId); - // 设置 UIPicker 的属性 - picker->SetItemHeight(70); - picker->SetLoopState(true); - picker->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff), Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff)); - picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT); // 设置普通文本大小 - picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT); // 设置高光文本大小 - picker->SetValues(values, caluliValues.size()); - // 将 UIPicker 设置为显示 - picker->SetVisible(true); - } - - /* InitView:初始化界面*/ - void TraingSetCaluliView ::InitView() - { - if (container_ == nullptr) - { - container_ = new UIViewGroup(); - container_->SetPosition(0, 0, 466, 466); - container_->SetStyle(STYLE_BACKGROUND_OPA, 0); - } - // 初始化Lable - TraingModel::GetInstance()->InitLabel(label1_, 173, 52, 120, 35, "label1", "卡路里设定", DEFAULT_VECTOR_FONT_FILENAME, 30); - container_->Add(label1_); - - // 初始化UIPicker - InitUIPicker(uiPicker1_, 43, 106, 380, 240, "uiPicker1"); - container_->Add(uiPicker1_); - // 初始化Button - TraingModel::GetInstance()->InitButton(button1_, 0, 366, 466, 100, BUTTONOK); - // Set additional property - button1_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE); - button1_->SetOnClickListener(static_cast(TraingSetCaluliPresenter::GetInstance())); - container_->Add(button1_); - } - /* DeInit:删除组件 */ - void TraingSetCaluliView::DeInit() - { - container_->RemoveAll(); - // 删除Label - if (label1_ != nullptr) - { - container_->Remove(label1_); - delete label1_; - label1_ = nullptr; - } - // 删除Button - if (button1_ != nullptr) - { - container_->Remove(button1_); - delete button1_; - button1_ = nullptr; - } - - // 删除Image - - // 删除滚动选择器 - if (uiPicker1_ != nullptr) - { - container_->Remove(uiPicker1_); - delete uiPicker1_; - uiPicker1_ = nullptr; - } - - // 删除容器 - if (container_ != nullptr) - { - container_->RemoveAll(); // 移除容器中的所有组件 - delete container_; - container_ = nullptr; - } - } - - void TraingSetCaluliView::PreLoad(void) - { - if (!viewiInitStatus) - { - // printf("init traingsetcaluliview\n"); - InitView(); - viewiInitStatus = true; - } - } - void TraingSetCaluliView::OnStart() - { - container_ = new UIViewGroup(); - if (container_ == nullptr) - { - return; - } - container_->SetPosition(0, 0); - container_->SetWidth(Screen::GetInstance().GetWidth()); - container_->SetHeight(Screen::GetInstance().GetHeight()); - - // 创建 draglistener 实例并设置为拖动监听器 - UIView::OnDragListener *draglistener = static_cast(TraingSetCaluliPresenter::GetInstance()); - if (draglistener == nullptr) - { - return; - } - container_->SetOnDragListener(draglistener); - - container_->SetTouchable(true); - container_->SetDraggable(true); - - PreLoad(); - RootView::GetInstance()->Add(container_); - } - - void TraingSetCaluliView::OnSetUpView() - { - - View::OnSetUpView(); - Draw(); - } - - void TraingSetCaluliView::OnTearDownView() - { - - View::OnTearDownView(); - return; - } - - void TraingSetCaluliView::OnStop() - { - View::OnStop(); - RootView::GetInstance()->RemoveAll(); - return; - } -} diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp index 1a4d76cc7..90e2639ea 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetPresenter.cpp @@ -88,7 +88,8 @@ namespace OHOS } if (strcmp(view.GetViewId(), BUTTONCALULI) == 0) { - NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGSETCALULI); + // NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGSETCALULI); + TraingSetView::GetInstance()->ChangeView(SET_VIEW, SET_CALORIES); } return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp index bdb4ce208..bcbf341ae 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TraingSetView.cpp @@ -36,11 +36,11 @@ namespace OHOS /* InitView:初始化界面*/ void TraingSetView ::InitView() { - if (container_ == nullptr) + if (SetTagScrollView[SET_VIEW] == nullptr) { - container_ = new UIViewGroup(); - container_->SetPosition(0, 0, 466, 466); - container_->SetStyle(STYLE_BACKGROUND_OPA, 0); + SetTagScrollView[SET_VIEW] = new UIScrollView(); + SetTagScrollView[SET_VIEW]->SetPosition(0, 0, 466, 466); + SetTagScrollView[SET_VIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0); } // 初始化Button @@ -48,8 +48,8 @@ namespace OHOS TraingModel::GetInstance()->InitButton(butKcal, 43, 240, 380, 100, BUTTONCALULI); butTime->SetOnClickListener(static_cast(TraingSetPresenter::GetInstance())); butKcal->SetOnClickListener(static_cast(TraingSetPresenter::GetInstance())); - container_->Add(butTime); - container_->Add(butKcal); + SetTagScrollView[SET_VIEW]->Add(butTime); + SetTagScrollView[SET_VIEW]->Add(butKcal); // 初始化Lable UIResourceTextId sportid = TraingModel::GetInstance()->GetSportEvent(); @@ -58,93 +58,170 @@ namespace OHOS TraingModel::GetInstance()->InitLabel(labeltime, 100, 150, 150, 35, "label2", "时长", DEFAULT_VECTOR_FONT_FILENAME, 30); TraingModel::GetInstance()->InitLabel(labelKcal, 100, 270, 150, 35, "label4", "卡路里", DEFAULT_VECTOR_FONT_FILENAME, 30); - container_->Add(labeltitle); - container_->Add(labeltime); - container_->Add(labelKcal); - + SetTagScrollView[SET_VIEW]->Add(labeltitle); + SetTagScrollView[SET_VIEW]->Add(labeltime); + SetTagScrollView[SET_VIEW]->Add(labelKcal); // 初始化Image TraingModel::GetInstance()->InitImageView(imagetime, 70, 150, 100, 100, "image1", TIME_IMAGE); TraingModel::GetInstance()->InitImageView(imagcal, 70, 270, 100, 100, "image2", CALORIES_IMAGE); - TraingModel::GetInstance()->InitImageView(imagicon1, 380, 160, 100, 100, "image3", ICON_IMAGE); TraingModel::GetInstance()->InitImageView(imagico2, 380, 280, 100, 100, "image4", ICON_IMAGE); - container_->Add(imagetime); - container_->Add(imagcal); - container_->Add(imagicon1); - container_->Add(imagico2); + SetTagScrollView[SET_VIEW]->Add(imagetime); + SetTagScrollView[SET_VIEW]->Add(imagcal); + SetTagScrollView[SET_VIEW]->Add(imagicon1); + SetTagScrollView[SET_VIEW]->Add(imagico2); } /* DeInit:删除组件 */ void TraingSetView::DeInit() { - container_->RemoveAll(); + SetTagScrollView[SET_VIEW]->RemoveAll(); // 删除Label if (labeltitle != nullptr) { - container_->Remove(labeltitle); + SetTagScrollView[SET_VIEW]->Remove(labeltitle); delete labeltitle; labeltitle = nullptr; } if (labeltime != nullptr) { - container_->Remove(labeltime); + SetTagScrollView[SET_VIEW]->Remove(labeltime); delete labeltime; labeltime = nullptr; } if (labelKcal != nullptr) { - container_->Remove(labelKcal); + SetTagScrollView[SET_VIEW]->Remove(labelKcal); delete labelKcal; labelKcal = nullptr; } // 删除Button if (butTime != nullptr) { - container_->Remove(butTime); + SetTagScrollView[SET_VIEW]->Remove(butTime); delete butTime; butTime = nullptr; } if (butKcal != nullptr) { - container_->Remove(butKcal); + SetTagScrollView[SET_VIEW]->Remove(butKcal); delete butKcal; butKcal = nullptr; } // 删除Image if (imagetime != nullptr) { - container_->Remove(imagetime); + SetTagScrollView[SET_VIEW]->Remove(imagetime); delete imagetime; imagetime = nullptr; } if (imagcal != nullptr) { - container_->Remove(imagcal); + SetTagScrollView[SET_VIEW]->Remove(imagcal); delete imagcal; imagcal = nullptr; } if (imagicon1 != nullptr) { - container_->Remove(imagicon1); + SetTagScrollView[SET_VIEW]->Remove(imagicon1); delete imagicon1; imagicon1 = nullptr; } if (imagico2 != nullptr) { - container_->Remove(imagico2); + SetTagScrollView[SET_VIEW]->Remove(imagico2); delete imagico2; imagico2 = nullptr; } // 删除容器 - if (container_ != nullptr) + if (SetTagScrollView[SET_VIEW] != nullptr) + { + SetTagScrollView[SET_VIEW]->RemoveAll(); // 移除容器中的所有组件 + delete SetTagScrollView[SET_VIEW]; + SetTagScrollView[SET_VIEW] = nullptr; + } + } + + // 跳转到设置选项列表 + bool TraingSetView::ChangeSetView(int16_t thisview) + { + if (SetTagScrollView[thisview] == nullptr) { - container_->RemoveAll(); // 移除容器中的所有组件 - delete container_; - container_ = nullptr; + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TraingSetView::ChangeSetView"); + RootView::GetInstance()->Add(SetTagScrollView[thisview]); } + return true; } + bool TraingSetView::ChangeSetCaloriesView(int16_t thisview) + { + if (SetTagScrollView[thisview] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::ChangeBandoffView"); + setcalories = new TrainingSetCaluliView(); + if (setcalories == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView:: new scrollView[%d] fail", thisview); + return false; + } + SetTagScrollView[thisview] = setcalories->SetCaloriesViewInit(); + RootView::GetInstance()->Add(SetTagScrollView[thisview]); + } + return true; + } + bool TraingSetView::ChangeSetDurationView(int16_t thisview) {} + bool TraingSetView::ChangeSetStepsView(int16_t thisview) {} + bool TraingSetView::ChangeSetDistanceView(int16_t thisview) {} + /* -------------------------------------------------------------------------- */ + // 1.MainStopWatchViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。 + struct BloodViewMapper + { + const int16_t viewId; + bool (TraingSetView::*func)(int16_t thisView); + }; + + // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与MainStopWatchView类中的特定成员函数指针进行了绑定。 + static const BloodViewMapper ViewMapper[] = { + {SET_VIEW, &TraingSetView::ChangeSetView}, + {SET_CALORIES, &TraingSetView::ChangeSetCaloriesView}, + {SET_DURATION, &TraingSetView::ChangeSetDurationView}, + {SET_STEPS, &TraingSetView::ChangeSetStepsView}, + {SET_DISTANCE, &TraingSetView::ChangeSetDistanceView}, + }; + // 3.根据传入的interface参数执行相应视图ID关联的成员函数。 + bool TraingSetView::ClickFunc(int16_t interface) + { + int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[SET_VIEW]); + for (int i = 0; i < funcSize; i++) + { + if (interface == ViewMapper[i].viewId) + { + bool jug = (this->*(ViewMapper[i].func))(interface); + if (jug == false) + { + return false; + } + return true; + } + } + return false; + } + + // 4.切换视图 + void TraingSetView::ChangeView(int16_t hideView, int16_t showView) + { + if (hideView > MAX_SETVIEW) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView:: BloodViewId Overstep ones bounds"); + return; + } + SetTagScrollView[hideView]->SetVisible(false); + ClickFunc(showView); + SetTagScrollView[showView]->SetVisible(true); + Draw(); + } + /* -------------------------------------------------------------------------- */ void TraingSetView::PreLoad(void) { if (!viewiInitStatus) @@ -155,14 +232,16 @@ namespace OHOS } void TraingSetView::OnStart() { - container_ = new UIViewGroup(); - if (container_ == nullptr) + SetTagScrollView[SET_VIEW] = new UIScrollView(); + if (SetTagScrollView[SET_VIEW] == nullptr) { return; } - container_->SetPosition(0, 0); - container_->SetWidth(Screen::GetInstance().GetWidth()); - container_->SetHeight(Screen::GetInstance().GetHeight()); + SetTagScrollView[SET_VIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + SetTagScrollView[SET_VIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff); + SetTagScrollView[SET_VIEW]->SetScrollBlankSize(35); + SetTagScrollView[SET_VIEW]->SetReboundSize(50); + SetTagScrollView[SET_VIEW]->SetDirection(1); // 创建 draglistener 实例并设置为拖动监听器 UIView::OnDragListener *draglistener = static_cast(TraingSetPresenter::GetInstance()); @@ -170,13 +249,12 @@ namespace OHOS { return; } - container_->SetOnDragListener(draglistener); - - container_->SetTouchable(true); - container_->SetDraggable(true); + SetTagScrollView[SET_VIEW]->SetOnDragListener(draglistener); + SetTagScrollView[SET_VIEW]->SetTouchable(true); + SetTagScrollView[SET_VIEW]->SetDraggable(true); PreLoad(); - RootView::GetInstance()->Add(container_); + RootView::GetInstance()->Add(SetTagScrollView[SET_VIEW]); } void TraingSetView::OnSetUpView() diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp new file mode 100644 index 000000000..f4e32983c --- /dev/null +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/src/TrainingSetCaluliView.cpp @@ -0,0 +1,180 @@ + +#include "traing/include/TrainingSetCaluliView.h" + +#include "common/image_cache_manager.h" +#include "components/ui_label_ext.h" +#include "language/font/ui_resource_string.h" +#include "UiConfig.h" +#include "ui_resource_image.h" +#include "components/ui_button.h" +#include "common/screen.h" +#include +#include +#include +#include "traing/include/TraingModel.h" +#include "traing/Training_UiConfig.h" +namespace OHOS +{ + + /***************************************************************************************/ + // 动态生成包含指定卡路里区间内所有卡路里数的字符串数组 + std::vector GenerateCaluliValues(int minTime, int maxTime, int interval) + { + std::vector values; + for (int i = minTime; i <= maxTime; i += interval) + { + values.push_back(std::to_string(i)); + } + return values; + } + /***************************************************************************************/ + static TrainingSetCaluliView *g_pTraingSetCaluliView{nullptr}; + + TrainingSetCaluliView::TrainingSetCaluliView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::TrainingSetCaluliView"); + labeltitle_ = nullptr; + buttonok_ = nullptr; + calPicker_ = nullptr; + SetCaloriesScrollView = nullptr; + g_pTraingSetCaluliView = this; + } + + TrainingSetCaluliView::~TrainingSetCaluliView() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::~TrainingSetCaluliView"); + SetCaloriesScrollView->RemoveAll(); + // 删除Label + if (labeltitle_ != nullptr) + { + SetCaloriesScrollView->Remove(labeltitle_); + delete labeltitle_; + labeltitle_ = nullptr; + } + // 删除Button + if (buttonok_ != nullptr) + { + SetCaloriesScrollView->Remove(buttonok_); + delete buttonok_; + buttonok_ = nullptr; + } + + // 删除滚动选择器 + if (calPicker_ != nullptr) + { + SetCaloriesScrollView->Remove(calPicker_); + delete calPicker_; + calPicker_ = nullptr; + } + + // 删除容器 + if (SetCaloriesScrollView != nullptr) + { + SetCaloriesScrollView->RemoveAll(); // 移除容器中的所有组件 + delete SetCaloriesScrollView; + SetCaloriesScrollView = nullptr; + } + g_pTraingSetCaluliView = nullptr; + } + + TrainingSetCaluliView *TrainingSetCaluliView::GetInstance() + { + + return g_pTraingSetCaluliView; + } + + /* + InitUIPicker: 初始化UIPicker组件 + @param picker: 指向UIPicker的指针 + @param x: UIPicker的左边位置 + @param y: UIPicker的顶部位置 + @param width: UIPicker的宽度 + @param height: UIPicker的高度 + @param viewId: UIPicker的视图 ID + @param values: 选项数组 + @param count: 选项数量 + @param backgroundFontSize: 普通文本大小 + @highlightFontSize: 高光文本大小 + */ + void TrainingSetCaluliView::InitUIPicker(UIPicker *&picker, int x, int y, int width, int height, const char *viewId) + { + // 文本大小 + constexpr uint8_t BACKGROUND_FONT = 40; + constexpr uint8_t HIGHTLIGHT_FONT = 60; + // 获取value数组 + int minCaluli = 100; + int maxCaluli = 1000; + int interval = 100; + std::vector caluliValues = GenerateCaluliValues(minCaluli, maxCaluli, interval); + + const char **values = new const char *[caluliValues.size()]; + for (size_t i = 0; i < caluliValues.size(); i++) + { + values[i] = caluliValues[i].c_str(); + } + // 创建 UIPicker + if (picker == nullptr) + { + picker = new UIPicker(); + } + + // 设置 UIPicker 的位置和大小 + picker->SetPosition(x, y); + picker->Resize(width, height); + // 设置 UIPicker 的 ViewId + picker->SetViewId(viewId); + // 设置 UIPicker 的属性 + picker->SetItemHeight(70); + picker->SetLoopState(true); + picker->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff), Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff)); + picker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, BACKGROUND_FONT); // 设置普通文本大小 + picker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, HIGHTLIGHT_FONT); // 设置高光文本大小 + picker->SetValues(values, caluliValues.size()); + // 将 UIPicker 设置为显示 + picker->SetVisible(true); + } + + /* InitView:初始化界面*/ + UIScrollView *TrainingSetCaluliView ::SetCaloriesViewInit() + { + /* -------------------------------------------------------------------------- */ + SetCaloriesScrollView = new UIScrollView(); + if (SetCaloriesScrollView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TrainingSetCaluliView::new SetCaloriesScrollView fail"); + return nullptr; + } + SetCaloriesScrollView->SetPosition(0, 0); + SetCaloriesScrollView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); + SetCaloriesScrollView->SetScrollBlankSize(35); + SetCaloriesScrollView->SetReboundSize(50); + SetCaloriesScrollView->SetDirection(1); + // 增加拖拽监听 + UIView::OnDragListener *draglistener = static_cast(new TraingSetPresenter()); + if (draglistener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView::draglistener can not be nullptr!"); + return nullptr; + } + SetCaloriesScrollView->SetOnDragListener(draglistener); + SetCaloriesScrollView->SetTouchable(true); + SetCaloriesScrollView->SetDraggable(true); + SetCaloriesScrollView->SetVerticalScrollState(false); // 禁止垂直滑动 + /* -------------------------------------------------------------------------- */ + // 初始化Lable + TraingModel::GetInstance()->InitLabel(labeltitle_, 83, 50, 300, 35, "label1", "卡路里(千卡)", DEFAULT_VECTOR_FONT_FILENAME, 30); + SetCaloriesScrollView->Add(labeltitle_); + + // 初始化UIPicker + InitUIPicker(calPicker_, 43, 106, 380, 240, "uiPicker"); + SetCaloriesScrollView->Add(calPicker_); + // 初始化Button + TraingModel::GetInstance()->InitButtonExt(buttonok_, 0, 366, 466, 100, BUTTONOK, STR_OK, 30); + // Set additional property + buttonok_->SetImageSrc(BUTTONOK_IMAGE, BUTTONOK_IMAGE); + buttonok_->SetOnClickListener(static_cast(TraingSetPresenter::GetInstance())); + SetCaloriesScrollView->Add(buttonok_); + + return SetCaloriesScrollView; + } +} diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp index 28285664f..d1efe5697 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp @@ -1,3 +1,9 @@ +/*** + * @Date: 2024-04-15 10:55:58 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-04-18 12:17:50 + * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/traing/training_GPS/src/TraingGPSsetPresenter.cpp + */ #include "AppViewIDs.h" #include "components/ui_label_ext.h" #include"language/font/ui_resource_string.h" diff --git a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp index a6961a654..d88ed8fce 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/traing/training_card/src/TraingCardPresenter.cpp @@ -267,7 +267,7 @@ namespace OHOS WEARABLE_LOGE("send_sport_cmd", "Invalid cmd value: %d", cmd); return false; } - + uapi_set_screen_on_api(); // 亮屏检测 NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGCRAD); ExerciseClass exerciseType = static_cast(cmd); OHOS::TraingCardPresenter::GetInstance()->OpenSensor(exerciseType); diff --git a/code/sdk/drivers/peripheral/cywee/CMakeLists.txt b/code/sdk/drivers/peripheral/cywee/CMakeLists.txt index d898a7667..8501dbf13 100644 --- a/code/sdk/drivers/peripheral/cywee/CMakeLists.txt +++ b/code/sdk/drivers/peripheral/cywee/CMakeLists.txt @@ -18,7 +18,6 @@ set(SOURCES ${SOURCES} set(PUBLIC_HEADER ${CMAKE_CURRENT_SOURCE_DIR}/Inc ) - set(PRIVATE_HEADER # ${CMAKE_CURRENT_SOURCE_DIR}/../acc/lis2doc_STdC/driver # ${CMAKE_CURRENT_SOURCE_DIR}/../acc/lis2doc_STdC diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.c b/code/sdk/drivers/peripheral/utils/custom_utils.c index 0a916eb95..99b515b25 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.c +++ b/code/sdk/drivers/peripheral/utils/custom_utils.c @@ -559,7 +559,6 @@ void ScreenAlwaysOnCtr(uint8_t turnOnFlag) const power_display_svr_api_t *display_api = power_display_svr_get_api(); if(turnOnFlag) { - const power_display_svr_api_t *display_api = power_display_svr_get_api(); display_api->set_screen_set_keepon_timeout(0); if (display_api->get_screen_state() != SCREEN_ON) { @@ -601,6 +600,18 @@ int32_t uapi_get_screen_state(void) return display_api->get_screen_state(); } +/** + * @brief 亮屏函数 + */ +void uapi_set_screen_on_api(void) +{ + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + if (display_api->get_screen_state() != SCREEN_ON) + { + display_api->turn_on_screen(); + } +} + #include "bts_le_gap.h" diff --git a/code/sdk/drivers/peripheral/utils/custom_utils.h b/code/sdk/drivers/peripheral/utils/custom_utils.h index 92e87c551..c3ef81d12 100644 --- a/code/sdk/drivers/peripheral/utils/custom_utils.h +++ b/code/sdk/drivers/peripheral/utils/custom_utils.h @@ -46,6 +46,8 @@ errcode_t uapi_get_YYMMDD_Time(char *p_time, char separator); errcode_t uapi_get_HHMMSS_Time(char *p_time, char separator, bool include_seconds); /*获取星期*/ errcode_t uapi_get_WeekStr(char *p_week); +/*设置屏幕亮屏*/ +void uapi_set_screen_on_api(void); char *uapi_get_local_yyyymmdd_date(void);