${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemFactoryResetPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemFactoryResetView.cpp
+ #声音与震动
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SystemVolumePresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumePresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumeView.cpp
+ #显示与亮度
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationView.cpp
+ #辅助功能
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/SecondaryFunctionPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/SecondaryFunctionView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingAttentionPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingAttentionView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/QuickAccessPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/QuickAccessView.cpp
+ #指南针
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassControlView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassCalibrationView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassModel.cpp
VIEW_DISPLAY_BRIGHTNESS, // 屏幕与亮度
VIEW_BRIGHTNESS_CONTROL, // 亮度调节
VIEW_SCREEN_DURATION, // 亮屏时长
+ VIEW_SECONDARY_FUNCTION, // 辅助功能
+ VIEW_QUICK_ACCESS, // 快速访问
+ VIEW_FAST_TRAINING, // 快速训练
+ VIEW_FAST_TRAINING_ATTENTION,// 快速训练项目选择超出提示
/* ---------------------------------- 测试界面 ---------------------------------- */
VIEW_MESSAGE, // 信息通知
/* -------------------------------------------------------------------------- */
void InitMessageSlice(void);
/* -------------------------------------------------------------------------- */
void InitUIDisplayBrightnessSlice(void);
- void InitBrightnessControlSlice(void);
- void InitScreenDurationSlice(void);
+ void InitBrightnessControlSlice(void);
+ void InitScreenDurationSlice(void);
+ /* -------------------------------------------------------------------------- */
+ void InitSecondaryFunction(void);
+ void InitQuickAccessSlice(void);
+ void InitFastTrainingSlice(void);
+ void InitFastTrainingAttentionSlice(void);
+
private:
void InitAllNativeSlices(void);
static constexpr const char *PNG_Message_Wechat = APP_RES_PATH "/message/WeChat-icon.bin"; // 微信消息
static constexpr const char *PNG_Message_QQ = APP_RES_PATH "/message/QQ-icon.bin"; // QQ消息
/* ---------------------------------- 通用图片 ---------------------------------- */
- static constexpr const char *PNG_CHECKBOX_OFF_IMAGE = APP_RES_PATH "/CHECKBOX_OFF.bin"; // checkbox未选中图片
- static constexpr const char *PNG_CHECKBOX_ON_IMAGE = APP_RES_PATH "/CHECKBOX_ON.bin"; // checkbox选中图片
- static constexpr const char *PNG_SETTING_NEXT_IMAGE = APP_RES_PATH "/SETTING_NEXT.bin"; // 箭头图片
- static constexpr const char *PNG_SETTING_BACKGROUND_IMAGE = APP_RES_PATH "/SETTING_BACKGROUND.bin"; // 按钮的背景图片
- static constexpr const char *PNG_VOLUME_CONTROL_VECTOR = APP_RES_PATH "/VolumeControlVector.bin"; // 调节音量图片
- static constexpr const char *PNG_BRIGHTNESS_CONTROL_VECTOR = APP_RES_PATH "/BringhtnessContuolVector.bin"; // 调节亮度图片
- static constexpr const char *PNG_SYSTEM_CHECK_ON_IMAGE = APP_RES_PATH "/SYSTEM_CheckOn.bin"; // 勾
- static constexpr const char *PNG_SYSTEM_CHECK_OFF_IMAGE = APP_RES_PATH "/SYSTEM_CheckOff.bin"; // 叉
- static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin"; // togglebuttton未选中图片
- static constexpr const char *PNG_TOGGLEBUTTON_ON_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_ON.bin"; // togglebuttton选中图片
- static constexpr const char *PNG_SYSTEM_VOLUME_IMAGE = APP_RES_PATH "/SYSTEM_VOLUME.bin"; // 系统音量
- static constexpr const char *PNG_CALL_VOLUME_IMAGE = APP_RES_PATH "/CALL_VOLUME.bin"; // 通话音量
- static constexpr const char *PNG_MEDIA_VOLUME_IMAGE = APP_RES_PATH "/MEDIA_VOLUME.bin"; // 媒体音量
+ static constexpr const char *PNG_CHECKBOX_OFF_IMAGE = APP_RES_PATH "/CHECKBOX_OFF.bin"; // checkbox未选中图片
+ static constexpr const char *PNG_CHECKBOX_ON_IMAGE = APP_RES_PATH "/CHECKBOX_ON.bin"; // checkbox选中图片
+ static constexpr const char *PNG_SETTING_NEXT_IMAGE = APP_RES_PATH "/SETTING_NEXT.bin"; // 箭头图片
+ static constexpr const char *PNG_SETTING_BACKGROUND_IMAGE = APP_RES_PATH "/SETTING_BACKGROUND.bin"; // 按钮的背景图片
+ static constexpr const char *PNG_VOLUME_CONTROL_VECTOR = APP_RES_PATH "/VolumeControlVector.bin"; // 调节音量图片
+ static constexpr const char *PNG_BRIGHTNESS_CONTROL_VECTOR = APP_RES_PATH "/BringhtnessContuolVector.bin"; // 调节亮度图片
+ static constexpr const char *PNG_SYSTEM_CHECK_ON_IMAGE = APP_RES_PATH "/SYSTEM_CheckOn.bin"; // 勾
+ static constexpr const char *PNG_SYSTEM_CHECK_OFF_IMAGE = APP_RES_PATH "/SYSTEM_CheckOff.bin"; // 叉
+ static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin"; // togglebuttton未选中图片
+ static constexpr const char *PNG_TOGGLEBUTTON_ON_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_ON.bin"; // togglebuttton选中图片
+ static constexpr const char *PNG_SYSTEM_VOLUME_IMAGE = APP_RES_PATH "/SYSTEM_VOLUME.bin"; // 系统音量
+ static constexpr const char *PNG_CALL_VOLUME_IMAGE = APP_RES_PATH "/CALL_VOLUME.bin"; // 通话音量
+ static constexpr const char *PNG_MEDIA_VOLUME_IMAGE = APP_RES_PATH "/MEDIA_VOLUME.bin"; // 媒体音量
+ static constexpr const char *PNG_FAST_TRAINING_ATTENTION_IMAGE = APP_RES_PATH "/FastTrainingAttentionVector.bin"; // 快速训练选中操过三个后出现
static constexpr const char *PNG_ANIMATOR1_IMAGE = APP_RES_PATH "/Record/animator1.bin";
static constexpr const char *PNG_ANIMATOR2_IMAGE = APP_RES_PATH "/Record/animator2.bin";
/* -------------------------------- 已删除的不必要图片 ------------------------------- */
#include "message/include/MessageModel.h"
#include "message/include/MessagePresenter.h"
+#include "secondaryfunction/include/SecondaryFunctionPresenter.h"
+#include "secondaryfunction/include/SecondaryFunctionView.h"
+#include "secondaryfunction/include/FastTrainingPresenter.h"
+#include "secondaryfunction/include/FastTrainingView.h"
+#include "secondaryfunction/include/FastTrainingAttentionPresenter.h"
+#include "secondaryfunction/include/FastTrainingAttentionView.h"
+#include "secondaryfunction/include/QuickAccessPresenter.h"
+#include "secondaryfunction/include/QuickAccessView.h"
+
#include "BluetoothHeadsetEvent.h"
#include "graphic_hardware_config.h"
#include "graphic_service.h"
{VIEW_BRIGHTNESS_CONTROL, &NativeLauncher::InitBrightnessControlSlice}, // 调节亮度的实例化地址
{VIEW_SCREEN_DURATION, &NativeLauncher::InitScreenDurationSlice}, // 亮屏时长实例化地址
+ {VIEW_SECONDARY_FUNCTION, &NativeLauncher::InitSecondaryFunction},
+ {VIEW_QUICK_ACCESS,&NativeLauncher::InitQuickAccessSlice}, //快速访问实例化地址
+ {VIEW_FAST_TRAINING, &NativeLauncher::InitFastTrainingSlice},
+ {VIEW_FAST_TRAINING_ATTENTION, &NativeLauncher::InitFastTrainingAttentionSlice},
+
{VIEW_MESSAGE, &NativeLauncher::InitMessageSlice},
#if 0
}
NativeAbility::GetInstance().AddSliceProxy(VIEW_SCREEN_DURATION, ScreenDuration);
}
+
+ void NativeLauncher::InitSecondaryFunction(void) // 辅助功能
+ {
+ SliceProxy *secondaryfunction = new AbilitySliceProxy<SecondaryFunctionView, SecondaryFunctionPresenter>;
+ if (secondaryfunction == nullptr)
+ {
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_SECONDARY_FUNCTION, secondaryfunction);
+ }
+
+ void NativeLauncher::InitQuickAccessSlice(void) // 快速访问
+ {
+ SliceProxy *QuickAccess = new AbilitySliceProxy<QuickAccessView, QuickAccessPresenter>;
+ if (QuickAccess == nullptr)
+ {
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_QUICK_ACCESS, QuickAccess);
+ }
+
+ void NativeLauncher::InitFastTrainingSlice(void)
+ {
+ SliceProxy *fasttraining = new AbilitySliceProxy<FastTrainingView, FastTrainingPresenter>;
+ if (fasttraining == nullptr)
+ {
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_FAST_TRAINING, fasttraining);
+ }
+
+ void NativeLauncher::InitFastTrainingAttentionSlice(void)
+ {
+ SliceProxy *fasttrainingattention = new AbilitySliceProxy<FastTrainingAttentionView, FastTrainingAttentionPresenter>;
+ if (fasttrainingattention == nullptr)
+ {
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_FAST_TRAINING_ATTENTION, fasttrainingattention);
+ }
+
}
--- /dev/null
+#ifndef FAST_TRAINING_ATTENTION_PRESENTER_H\r
+#define FAST_TRAINING_ATTENTION_PRESENTER_H\r
+\r
+#include "Presenter.h"\r
+\r
+#include "FastTrainingAttentionView.h"\r
+\r
+namespace OHOS\r
+{\r
+ class FastTrainingAttentionView;\r
+\r
+ class FastTrainingAttentionPresenter : public Presenter<FastTrainingAttentionView>,\r
+ public UIView::OnClickListener\r
+ {\r
+ public:\r
+ FastTrainingAttentionPresenter();\r
+ virtual ~FastTrainingAttentionPresenter();\r
+\r
+ void OnStart() override;\r
+ void OnPause() override;\r
+ void OnResume() override;\r
+ void OnStop() override;\r
+\r
+ static FastTrainingAttentionPresenter *GetInstance();\r
+\r
+ private:\r
+ // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ };\r
+} // namespace OHOS\r
+\r
+#endif // FastTrainingAttention_PRESENTER_H
\ No newline at end of file
--- /dev/null
+#ifndef FAST_TRAINING_ATTENTION_VIEW_H\r
+#define FAST_TRAINING_ATTENTION_VIEW_H\r
+\r
+#include "BaseView.h"\r
+#include "View.h"\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label_button.h"\r
+namespace OHOS\r
+{\r
+ static const char *LABELBUTTON = "FastTrainingAttentionLabelButton";\r
+ class FastTrainingAttentionPresenter;\r
+ class FastTrainingAttentionView : public View<FastTrainingAttentionPresenter>\r
+ {\r
+\r
+ public:\r
+ FastTrainingAttentionView();\r
+ virtual ~FastTrainingAttentionView();\r
+ static FastTrainingAttentionView *GetInstance(void);\r
+\r
+ void OnStart() override;\r
+ void OnSetUpView() override;\r
+ void OnTearDownView() override;\r
+ void OnStop() override;\r
+\r
+ private:\r
+ UIView::OnDragListener *draglistener{nullptr};\r
+\r
+ void InitView(void);\r
+ void DeInitView(void);\r
+\r
+ UIViewGroup *container_ = nullptr;\r
+ UIScrollView *scrollView1_ = nullptr;\r
+ UILabel *label15_ = nullptr;\r
+ UIImageView *image7_ = nullptr;\r
+ UILabel *label16_ = nullptr;\r
+ UILabelButton *FastTrainingAttentionLabelButton = nullptr;\r
+ };\r
+} // namespace OHOS\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef FAST_TRAINING_PRESENTER_H\r
+#define FAST_TRAINING_PRESENTER_H\r
+\r
+#include "Presenter.h"\r
+#include "FastTrainingView.h"\r
+#include "components/ui_checkbox.h"\r
+namespace OHOS\r
+{\r
+ class FastTrainingView;\r
+\r
+ class FastTrainingPresenter : public Presenter<FastTrainingView>,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener,\r
+ public UICheckBox::OnChangeListener\r
+ {\r
+ public:\r
+ FastTrainingPresenter();\r
+ virtual ~FastTrainingPresenter();\r
+\r
+ void OnStart() override;\r
+ void OnPause() override;\r
+ void OnResume() override;\r
+ void OnStop() override;\r
+\r
+ static FastTrainingPresenter *GetInstance();\r
+ void setCheckbox(UICheckBox *checkBox1, UICheckBox *checkBox2, UICheckBox *checkBox3, UICheckBox *checkBox4, UICheckBox *checkBox5, UICheckBox *checkBox6)\r
+ {\r
+ m_checkBox1 = checkBox1;\r
+ m_checkBox2 = checkBox2;\r
+ m_checkBox3 = checkBox3;\r
+ m_checkBox4 = checkBox4;\r
+ m_checkBox5 = checkBox5;\r
+ m_checkBox6 = checkBox6;\r
+ }\r
+\r
+ private:\r
+ // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+\r
+ private:\r
+ static int CheckBoxSelectCount;\r
+ UICheckBox *m_checkBox1 = nullptr;\r
+ UICheckBox *m_checkBox2 = nullptr;\r
+ UICheckBox *m_checkBox3 = nullptr;\r
+ UICheckBox *m_checkBox4 = nullptr;\r
+ UICheckBox *m_checkBox5 = nullptr;\r
+ UICheckBox *m_checkBox6 = nullptr;\r
+ };\r
+} // namespace OHOS\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef FAST_TRAINING_VIEW_H\r
+#define FAST_TRAINING_VIEW_H\r
+\r
+#include "BaseView.h"\r
+#include "View.h"\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_checkbox.h"\r
+\r
+namespace OHOS\r
+{\r
+ static const char *CHECKBOX1 = "checkBox1";\r
+ static const char *CHECKBOX2 = "checkBox2";\r
+ static const char *CHECKBOX3 = "checkBox3";\r
+ static const char *CHECKBOX4 = "checkBox4";\r
+ static const char *CHECKBOX5 = "checkBox5";\r
+ static const char *CHECKBOX6 = "checkBox6";\r
+ class FastTrainingPresenter;\r
+ class FastTrainingView : public View<FastTrainingPresenter>\r
+ {\r
+\r
+ public:\r
+ FastTrainingView();\r
+ virtual ~FastTrainingView();\r
+ static FastTrainingView *GetInstance(void);\r
+\r
+ void OnStart() override;\r
+ void OnSetUpView() override;\r
+ void OnTearDownView() override;\r
+ void OnStop() override;\r
+\r
+ private:\r
+ void InitView(void);\r
+ void DeInitView(void);\r
+ void InitImageLabelCheckbox(UIImageView *image, int image_x, int image_y, int image_w, int image_h,\r
+ UILabel *label, int label_x, int label_y, const char *labelText,\r
+ UICheckBox *checkbox, int check_x, int check_y, int check_w, int check_h, const char *checkboxID,\r
+ UICheckBox::OnChangeListener *ChangeListener, UIScrollView *scrollView);\r
+\r
+ private:\r
+ UIView::OnDragListener *draglistener{nullptr};\r
+\r
+ private:\r
+ UIViewGroup *container_ = nullptr;\r
+ UIScrollView *scrollView = nullptr;\r
+ UIImageView *image5_ = nullptr;\r
+ UIImageView *image6_ = nullptr;\r
+ UIImageView *image1 = nullptr;\r
+ UIImageView *image2 = nullptr;\r
+ UIImageView *image3 = nullptr;\r
+ UIImageView *image4 = nullptr;\r
+ UIImageView *image5 = nullptr;\r
+ UIImageView *image6 = nullptr;\r
+ UILabel *label = nullptr;\r
+ UILabel *label1 = nullptr;\r
+ UILabel *label2 = nullptr;\r
+ UILabel *label3 = nullptr;\r
+ UILabel *label4 = nullptr;\r
+ UILabel *label5 = nullptr;\r
+ UILabel *label6 = nullptr;\r
+ UICheckBox *checkBox1 = nullptr;\r
+ UICheckBox *checkBox2 = nullptr;\r
+ UICheckBox *checkBox3 = nullptr;\r
+ UICheckBox *checkBox4 = nullptr;\r
+ UICheckBox *checkBox5 = nullptr;\r
+ UICheckBox *checkBox6 = nullptr;\r
+ UICheckBox::OnChangeListener *ChangeListener1 = nullptr;\r
+ UICheckBox::OnChangeListener *ChangeListener2 = nullptr;\r
+ UICheckBox::OnChangeListener *ChangeListener3 = nullptr;\r
+ UICheckBox::OnChangeListener *ChangeListener4 = nullptr;\r
+ UICheckBox::OnChangeListener *ChangeListener5 = nullptr;\r
+ UICheckBox::OnChangeListener *ChangeListener6 = nullptr;\r
+ };\r
+} // namespace OHOS\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef QUICK_ACCESS_PRESENTER_H\r
+#define QUICK_ACCESS_PRESENTER_H\r
+\r
+#include "Presenter.h"\r
+ \r
+#include "QuickAccessView.h"\r
+ \r
+namespace OHOS\r
+{\r
+ class QuickAccessView;\r
+ \r
+ class QuickAccessPresenter : public Presenter<QuickAccessView>,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener\r
+ {\r
+ public:\r
+ QuickAccessPresenter();\r
+ virtual ~QuickAccessPresenter();\r
+ \r
+ void OnStart() override; \r
+ void OnPause() override; \r
+ void OnResume() override; \r
+ void OnStop() override; \r
+ \r
+ static QuickAccessPresenter *GetInstance(); \r
+ \r
+ private:\r
+ //因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override; \r
+ bool OnDrag(UIView &view, const DragEvent &event) override; \r
+ };\r
+} //namespace OHOS\r
+\r
+\r
+\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef QUICK_ACCESS_VIEW_H\r
+#define QUICK_ACCESS_VIEW_H\r
+\r
+#include "BaseView.h"\r
+#include "View.h"\r
+\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_checkbox.h"\r
+namespace OHOS\r
+{\r
+ static const char *HEART_RATE_DETECTION = "HeartRateDetectionCheckBox"; //心率检测\r
+ static const char *BLOOD_OXYGEN_MONITOR = "BloodOxygenMonitoringCheckBox"; //血氧检测\r
+\r
+ class QuickAccessPresenter;\r
+ class QuickAccessView : public View<QuickAccessPresenter>\r
+ {\r
+\r
+ public:\r
+ QuickAccessView();\r
+ virtual ~QuickAccessView();\r
+ static QuickAccessView *GetInstance(void);\r
+\r
+ void OnStart() override;\r
+ void OnSetUpView() override;\r
+ void OnTearDownView() override;\r
+ void OnStop() override;\r
+\r
+ private:\r
+ void InitView(void);\r
+ void DeInitView(void);\r
+\r
+ private:\r
+ UIViewGroup *container_ = nullptr;\r
+ UIScrollView *QuickAccessScrollView = nullptr;\r
+ UIImageView *image1 = nullptr;\r
+ UILabel *QuickAccessLabel = nullptr;\r
+ UIImageView *image2 = nullptr;\r
+ UILabel *label = nullptr;\r
+ UIImageView *HeartRateDetectionImage = nullptr;\r
+ UICheckBox *HeartRateDetectionCheckBox = nullptr;\r
+ UILabel *HeartRateDetectionLabel = nullptr;\r
+ UIImageView *BloodOxygenMonitoringImage = nullptr;\r
+ UICheckBox *BloodOxygenMonitoringCheckBox = nullptr;\r
+ UILabel *BloodOxygenMonitoringLabel = nullptr;\r
+ };\r
+} // namespace OHOS\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef SECONDARY_FUNCTION_PRESENTER_H\r
+#define SECONDARY_FUNCTION_PRESENTER_H\r
+\r
+#include "Presenter.h"\r
+\r
+#include "SecondaryFunctionView.h"\r
+\r
+namespace OHOS\r
+{\r
+ class SecondaryFunctionView;\r
+\r
+ class SecondaryFunctionPresenter : public Presenter<SecondaryFunctionView>,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener\r
+ {\r
+ public:\r
+ SecondaryFunctionPresenter();\r
+ virtual ~SecondaryFunctionPresenter();\r
+\r
+ void OnStart() override;\r
+ void OnPause() override;\r
+ void OnResume() override;\r
+ void OnStop() override;\r
+\r
+ static SecondaryFunctionPresenter *GetInstance();\r
+\r
+ private:\r
+ // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ };\r
+} // namespace OHOS\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef SECONDARY_FUNCTION_VIEW_H\r
+#define SECONDARY_FUNCTION_VIEW_H\r
+/*辅助功能*/\r
+#include "BaseView.h"\r
+#include "View.h"\r
+\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_image_view.h"\r
+namespace OHOS\r
+{\r
+ static const char * SECONDARY_FUNCTION_BUTTON1ID = "SECONDARY_FUNCTION_BUTTON1";\r
+ static const char * SECONDARY_FUNCTION_BUTTON2ID = "SECONDARY_FUNCTION_BUTTON2";\r
+ class SecondaryFunctionPresenter;\r
+ class SecondaryFunctionView : public View<SecondaryFunctionPresenter>\r
+ {\r
+\r
+ public:\r
+ SecondaryFunctionView();\r
+ virtual ~SecondaryFunctionView();\r
+ static SecondaryFunctionView *GetInstance(void);\r
+\r
+ void OnStart() override;\r
+ void OnSetUpView() override;\r
+ void OnTearDownView() override;\r
+ void OnStop() override;\r
+\r
+ private:\r
+ void InitView(void);\r
+ void DeInitView(void);\r
+\r
+ private:\r
+ UIViewGroup *container_ = nullptr;\r
+ UILabel *label1_ = nullptr;\r
+ UIButton *SECONDARY_FUNCTION_BUTTON1 = nullptr;\r
+ UIImageView *image3_ = nullptr;\r
+ UILabel *label2_ = nullptr;\r
+ UIButton *SECONDARY_FUNCTION_BUTTON2 = nullptr;\r
+ UIImageView *image4_ = nullptr;\r
+ UILabel *label4_ = nullptr;\r
+ };\r
+} // namespace OHOS\r
+#endif
\ No newline at end of file
--- /dev/null
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+\r
+#include "secondaryfunction/include/FastTrainingAttentionPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+ // 当前Presenter属性实例化的内存指针\r
+ static FastTrainingAttentionPresenter *g_pFastTrainingAttentionPresenter = nullptr;\r
+\r
+ FastTrainingAttentionPresenter::FastTrainingAttentionPresenter()\r
+ {\r
+\r
+ g_pFastTrainingAttentionPresenter = this;\r
+ }\r
+\r
+ FastTrainingAttentionPresenter::~FastTrainingAttentionPresenter()\r
+ {\r
+\r
+ g_pFastTrainingAttentionPresenter = nullptr;\r
+ }\r
+\r
+ FastTrainingAttentionPresenter *FastTrainingAttentionPresenter::GetInstance()\r
+ {\r
+\r
+ return g_pFastTrainingAttentionPresenter;\r
+ }\r
+\r
+ void FastTrainingAttentionPresenter::OnStart()\r
+ {\r
+\r
+ Presenter<FastTrainingAttentionView>::OnStart();\r
+ }\r
+\r
+ void FastTrainingAttentionPresenter::OnPause(void)\r
+ {\r
+\r
+ Presenter<FastTrainingAttentionView>::OnPause();\r
+ }\r
+\r
+ void FastTrainingAttentionPresenter::OnResume(void)\r
+ {\r
+\r
+ Presenter<FastTrainingAttentionView>::OnResume();\r
+ }\r
+\r
+ void FastTrainingAttentionPresenter::OnStop(void)\r
+ {\r
+\r
+ Presenter<FastTrainingAttentionView>::OnStop();\r
+ }\r
+ \r
+ bool FastTrainingAttentionPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ // 根据控件id查找是哪个控件触发了点击回调\r
+ if (strcmp(view.GetViewId(), LABELBUTTON) == 0)\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_FAST_TRAINING);\r
+ }\r
+ return true;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "secondaryfunction/include/FastTrainingAttentionView.h"\r
+#include "secondaryfunction/include/FastTrainingAttentionPresenter.h"\r
+#include "UiConfig.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+ static FastTrainingAttentionView *g_pFastTrainingAttentionView{nullptr};\r
+\r
+ FastTrainingAttentionView::FastTrainingAttentionView()\r
+ {\r
+\r
+ g_pFastTrainingAttentionView = this;\r
+ }\r
+\r
+ FastTrainingAttentionView::~FastTrainingAttentionView()\r
+ {\r
+ DeInitView();\r
+ g_pFastTrainingAttentionView = nullptr;\r
+ }\r
+\r
+ FastTrainingAttentionView *FastTrainingAttentionView::GetInstance()\r
+ {\r
+\r
+ return g_pFastTrainingAttentionView;\r
+ }\r
+\r
+ void FastTrainingAttentionView::InitView()\r
+ {\r
+ if (container_ == nullptr)\r
+ {\r
+ container_ = new UIViewGroup();\r
+ container_->SetPosition(0, 0, 466, 466);\r
+ container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+ }\r
+\r
+ // Add ScrollView to App\r
+ if (scrollView1_ == nullptr)\r
+ {\r
+ scrollView1_ = new UIScrollView();\r
+ }\r
+ scrollView1_->SetPosition(0, 0);\r
+ scrollView1_->Resize(466, 466);\r
+ scrollView1_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+\r
+ // Set additional property\r
+\r
+ // Add to rootView\r
+ container_->Add(scrollView1_);\r
+ scrollView1_->SetVisible(true);\r
+\r
+ // Add Label to App\r
+ if (label15_ == nullptr)\r
+ {\r
+ label15_ = new UILabel();\r
+ }\r
+ label15_->SetPosition(203, 52);\r
+ label15_->Resize(200, 60);\r
+ label15_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ label15_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+ // Set additional property\r
+ label15_->SetText("注意");\r
+ label15_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label15_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label15_->SetRollSpeed(0);\r
+ label15_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+ // Add to scrollView1\r
+ scrollView1_->Add(label15_);\r
+ label15_->SetVisible(true);\r
+\r
+ // Add ImageView to App\r
+ if (image7_ == nullptr)\r
+ {\r
+ image7_ = new UIImageView();\r
+ }\r
+ image7_->SetPosition(193, 121);\r
+ image7_->Resize(80, 80);\r
+ image7_->SetSrc(PNG_FAST_TRAINING_ATTENTION_IMAGE);\r
+\r
+ // Add to scrollView1\r
+ scrollView1_->Add(image7_);\r
+ image7_->SetVisible(true);\r
+\r
+ // Add Label to App\r
+ if (label16_ == nullptr)\r
+ {\r
+ label16_ = new UILabel();\r
+ }\r
+ label16_->SetPosition(128, 228);\r
+ label16_->Resize(200, 60);\r
+ label16_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ label16_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+ // Set additional property\r
+ label16_->SetText("最多只能选三个");\r
+ label16_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label16_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label16_->SetRollSpeed(0);\r
+ label16_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+ // Add to scrollView1\r
+ scrollView1_->Add(label16_);\r
+ label16_->SetVisible(true);\r
+\r
+ // Add LabelButtonExt to App\r
+ if (FastTrainingAttentionLabelButton == nullptr)\r
+ {\r
+ FastTrainingAttentionLabelButton = new UILabelButton();\r
+ }\r
+ FastTrainingAttentionLabelButton->SetPosition(0, 366);\r
+ FastTrainingAttentionLabelButton->Resize(466, 100);\r
+ FastTrainingAttentionLabelButton->SetViewId(LABELBUTTON);\r
+ char *labelButton1triggeredImgSrc = nullptr;\r
+ FastTrainingAttentionLabelButton->SetImageSrc("/user/res/NEW_device.bin", nullptr);\r
+ FastTrainingAttentionLabelButton->SetText("知道了");\r
+ FastTrainingAttentionLabelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ FastTrainingAttentionLabelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);\r
+ FastTrainingAttentionLabelButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);\r
+\r
+ // Add the CallBack about events\r
+ UIView::OnClickListener *labelButton1Click = static_cast<UIView::OnClickListener *>(FastTrainingAttentionPresenter::GetInstance());\r
+ FastTrainingAttentionLabelButton->SetOnClickListener(labelButton1Click);\r
+ // Add to scrollView1\r
+ scrollView1_->Add(FastTrainingAttentionLabelButton);\r
+ FastTrainingAttentionLabelButton->SetVisible(true);\r
+ }\r
+\r
+ void FastTrainingAttentionView::DeInitView()\r
+ {\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ }\r
+ if (scrollView1_ != nullptr)\r
+ {\r
+ delete scrollView1_;\r
+ scrollView1_ = nullptr;\r
+ }\r
+ if (label15_ != nullptr)\r
+ {\r
+ delete label15_;\r
+ label15_ = nullptr;\r
+ }\r
+ if (image7_ != nullptr)\r
+ {\r
+ delete image7_;\r
+ image7_ = nullptr;\r
+ }\r
+ if (label16_ != nullptr)\r
+ {\r
+ delete label16_;\r
+ label16_ = nullptr;\r
+ }\r
+ if (FastTrainingAttentionLabelButton != nullptr)\r
+ {\r
+ delete FastTrainingAttentionLabelButton;\r
+ FastTrainingAttentionLabelButton = nullptr;\r
+ }\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+\r
+ void FastTrainingAttentionView::OnStart()\r
+ {\r
+ View<FastTrainingAttentionPresenter>::OnStart();\r
+ InitView();\r
+ RootView::GetInstance()->Add(container_);\r
+ }\r
+\r
+ void FastTrainingAttentionView::OnSetUpView()\r
+ {\r
+\r
+ View<FastTrainingAttentionPresenter>::OnSetUpView();\r
+ Draw();\r
+ }\r
+\r
+ void FastTrainingAttentionView::OnTearDownView()\r
+ {\r
+\r
+ View<FastTrainingAttentionPresenter>::OnTearDownView();\r
+ return;\r
+ }\r
+\r
+ void FastTrainingAttentionView::OnStop()\r
+ {\r
+\r
+ View<FastTrainingAttentionPresenter>::OnStop();\r
+ RootView::GetInstance()->RemoveAll();\r
+ return;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "string.h"\r
+#include "secondaryfunction/include/FastTrainingPresenter.h"\r
+#include "secondaryfunction/include/FastTrainingPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+ // 当前Presenter属性实例化的内存指针\r
+ static FastTrainingPresenter *g_pFastTrainingPresenter = nullptr;\r
+ int FastTrainingPresenter::CheckBoxSelectCount = 0; // 复选框选中数量\r
+ FastTrainingPresenter::FastTrainingPresenter()\r
+ {\r
+\r
+ g_pFastTrainingPresenter = this;\r
+ }\r
+\r
+ FastTrainingPresenter::~FastTrainingPresenter()\r
+ {\r
+\r
+ g_pFastTrainingPresenter = nullptr;\r
+ }\r
+\r
+ FastTrainingPresenter *FastTrainingPresenter::GetInstance()\r
+ {\r
+\r
+ return g_pFastTrainingPresenter;\r
+ }\r
+\r
+ void FastTrainingPresenter::OnStart()\r
+ {\r
+\r
+ Presenter<FastTrainingView>::OnStart();\r
+ }\r
+\r
+ void FastTrainingPresenter::OnPause(void)\r
+ {\r
+\r
+ Presenter<FastTrainingView>::OnPause();\r
+ }\r
+\r
+ void FastTrainingPresenter::OnResume(void)\r
+ {\r
+\r
+ Presenter<FastTrainingView>::OnResume();\r
+ }\r
+\r
+ void FastTrainingPresenter::OnStop(void)\r
+ {\r
+\r
+ Presenter<FastTrainingView>::OnStop();\r
+ }\r
+\r
+ bool FastTrainingPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+ (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_SECONDARY_FUNCTION);\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool FastTrainingPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
+ {\r
+ if (state == UICheckBox::UICheckBoxState::SELECTED)\r
+ {\r
+ CheckBoxSelectCount += 1;\r
+ printf("CheckBoxSelectCount:%d\n", CheckBoxSelectCount);\r
+ }\r
+ else\r
+ {\r
+ CheckBoxSelectCount -= 1;\r
+ printf("CheckBoxSelectCount:%d\n", CheckBoxSelectCount);\r
+ }\r
+ if (CheckBoxSelectCount > 3)\r
+ {\r
+ CheckBoxSelectCount = 0;//->测试用的到时候需要改因为复选框选中的状态需要被保存\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_FAST_TRAINING_ATTENTION);\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool FastTrainingPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ UNUSED(view);\r
+ UNUSED(event);\r
+ return true;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "secondaryfunction/include/FastTrainingView.h"\r
+#include "secondaryfunction/include/FastTrainingPresenter.h"\r
+#include "UiConfig.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+ static FastTrainingView *g_pFastTrainingView{nullptr};\r
+\r
+ FastTrainingView::FastTrainingView()\r
+ {\r
+\r
+ g_pFastTrainingView = this;\r
+ }\r
+\r
+ FastTrainingView::~FastTrainingView()\r
+ {\r
+ DeInitView();\r
+ g_pFastTrainingView = nullptr;\r
+ }\r
+\r
+ FastTrainingView *FastTrainingView::GetInstance()\r
+ {\r
+\r
+ return g_pFastTrainingView;\r
+ }\r
+ void FastTrainingView::InitImageLabelCheckbox(UIImageView *image, int image_x, int image_y, int image_w, int image_h,\r
+ UILabel *label, int label_x, int label_y, const char *labelText,\r
+ UICheckBox *checkbox, int check_x, int check_y, int check_w, int check_h, const char *checkboxID,\r
+ UICheckBox::OnChangeListener *ChangeListener, UIScrollView *scrollView)\r
+ {\r
+ image = new UIImageView();\r
+ image->SetPosition(image_x, image_y);\r
+ image->Resize(image_w, image_h);\r
+ image->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+ image->SetSrc(PNG_SETTING_BACKGROUND_IMAGE);\r
+ scrollView->Add(image);\r
+ image->SetVisible(true);\r
+ /* -------------------------------------------------------------------------- */\r
+ label = new UILabel();\r
+ label->SetPosition(label_x, label_y);\r
+ label->SetStyle(STYLE_TEXT_FONT, 30);\r
+ label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // Set additional property\r
+ label->SetText(labelText);\r
+ label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label->SetRollSpeed(0);\r
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ scrollView->Add(label);\r
+ label->SetVisible(true);\r
+ /* -------------------------------------------------------------------------- */\r
+ checkbox = new UICheckBox();\r
+ checkbox->SetPosition(check_x, check_y);\r
+ checkbox->Resize(check_w, check_h);\r
+ checkbox->SetViewId(checkboxID);\r
+ checkbox->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ checkbox->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ checkbox->SetImages(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+ ChangeListener = static_cast<UICheckBox::OnChangeListener *>(FastTrainingPresenter::GetInstance());\r
+ checkbox->SetOnChangeListener(ChangeListener);\r
+ scrollView->Add(checkbox);\r
+ checkbox->SetVisible(true);\r
+ }\r
+\r
+ void FastTrainingView::InitView()\r
+ {\r
+ if (container_ == nullptr)\r
+ {\r
+ container_ = new UIViewGroup();\r
+ container_->SetPosition(0, 0, 466, 466);\r
+ container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+ draglistener = static_cast<UIView::OnDragListener *>(FastTrainingPresenter::GetInstance());\r
+ if (draglistener == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ container_->SetOnDragListener(draglistener);\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+ }\r
+ // Add ScrollView to App\r
+ if (scrollView == nullptr)\r
+ {\r
+ scrollView = new UIScrollView();\r
+ }\r
+ scrollView->SetPosition(0, 0);\r
+ scrollView->Resize(466, 466);\r
+ scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ container_->Add(scrollView);\r
+ scrollView->SetVisible(true);\r
+ // Add Label to App\r
+ if (label == nullptr)\r
+ {\r
+ label = new UILabel();\r
+ }\r
+ label->SetPosition(173, 52);\r
+ label->Resize(200, 60);\r
+ label->SetViewId("label9");\r
+ label->SetStyle(STYLE_TEXT_FONT, 30);\r
+ label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // Set additional property\r
+ label->SetText("快速训练");\r
+ label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label->SetRollSpeed(0);\r
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ // Add to scrollView1\r
+ scrollView->Add(label);\r
+ label->SetVisible(true);\r
+ /* -------------------------------------------------------------------------- */\r
+ InitImageLabelCheckbox(image1, 43, 120, 380, 100, label1, 90, 153, "骑行", checkBox1, 343, 148, 50, 50, "checkBox1", ChangeListener1, scrollView);\r
+ /* -------------------------------------------------------------------------- */\r
+ InitImageLabelCheckbox(image2, 43, 240, 380, 100, label2, 90, 273, "户外跑步", checkBox2, 343, 268, 50, 50, "checkBox2", ChangeListener2, scrollView);\r
+ /* -------------------------------------------------------------------------- */\r
+ InitImageLabelCheckbox(image3, 43, 360, 380, 100, label3, 90, 393, "健走", checkBox3, 343, 388, 50, 50, "checkBox3", ChangeListener3, scrollView);\r
+ /* -------------------------------------------------------------------------- */\r
+ InitImageLabelCheckbox(image4, 43, 480, 380, 100, label4, 90, 513, "登山", checkBox4, 343, 508, 50, 50, "checkBox4", ChangeListener4, scrollView);\r
+ /* -------------------------------------------------------------------------- */\r
+ InitImageLabelCheckbox(image5, 43, 600, 380, 100, label5, 90, 633, "跳绳", checkBox5, 343, 628, 50, 50, "checkBox5", ChangeListener6, scrollView);\r
+ /* -------------------------------------------------------------------------- */\r
+ InitImageLabelCheckbox(image6, 43, 720, 380, 100, label6, 90, 753, "乒乓球", checkBox6, 343, 748, 50, 50, "checkBox6", ChangeListener6, scrollView);\r
+ /* -------------------------------------------------------------------------- */\r
+ FastTrainingPresenter::GetInstance()->setCheckbox(checkBox1, checkBox2, checkBox3, checkBox4, checkBox5, checkBox6);\r
+ /* -------------------------------------------------------------------------- */\r
+ // Add ImageView to App\r
+ if (image5_ == nullptr)\r
+ {\r
+ image5_ = new UIImageView();\r
+ }\r
+ image5_->SetPosition(183, 790);\r
+ image5_->Resize(100, 100);\r
+ scrollView->Add(image5_);\r
+ image5_->SetVisible(true);\r
+ // Add ImageView to App\r
+ if (image6_ == nullptr)\r
+ {\r
+ image6_ = new UIImageView();\r
+ }\r
+ image6_->SetPosition(183, 19);\r
+ image6_->Resize(100, 100);\r
+ scrollView->Add(image6_);\r
+ image6_->SetVisible(true);\r
+ }\r
+ void FastTrainingView::DeInitView()\r
+ {\r
+ container_->RemoveAll();\r
+ delete scrollView;\r
+ scrollView = nullptr;\r
+ delete image5_;\r
+ image5_ = nullptr;\r
+ delete image6_;\r
+ image6_ = nullptr;\r
+ delete image1;\r
+ image1 = nullptr;\r
+ delete image2;\r
+ image2 = nullptr;\r
+ delete image3;\r
+ image3 = nullptr;\r
+ delete image4;\r
+ image4 = nullptr;\r
+ delete image5;\r
+ image5 = nullptr;\r
+ delete image6;\r
+ image6 = nullptr;\r
+ delete label;\r
+ label = nullptr;\r
+ delete label1;\r
+ label1 = nullptr;\r
+ delete label2;\r
+ label2 = nullptr;\r
+ delete label3;\r
+ label3 = nullptr;\r
+ delete label4;\r
+ label4 = nullptr;\r
+ delete label5;\r
+ label5 = nullptr;\r
+ delete label6;\r
+ label6 = nullptr;\r
+ delete checkBox1;\r
+ checkBox1 = nullptr;\r
+ delete checkBox2;\r
+ checkBox2 = nullptr;\r
+ delete checkBox3;\r
+ checkBox3 = nullptr;\r
+ delete checkBox4;\r
+ checkBox4 = nullptr;\r
+ delete checkBox5;\r
+ checkBox5 = nullptr;\r
+ delete checkBox6;\r
+ checkBox6 = nullptr;\r
+ delete container_;\r
+ delete ChangeListener1;\r
+ ChangeListener1 = nullptr;\r
+ delete ChangeListener2;\r
+ ChangeListener2 = nullptr;\r
+ delete ChangeListener3;\r
+ ChangeListener3 = nullptr;\r
+ delete ChangeListener4;\r
+ ChangeListener4 = nullptr;\r
+ delete ChangeListener5;\r
+ ChangeListener5 = nullptr;\r
+ delete ChangeListener6;\r
+ ChangeListener6 = nullptr;\r
+ container_ = nullptr;\r
+ }\r
+ void FastTrainingView::OnStart()\r
+ {\r
+ View<FastTrainingPresenter>::OnStart();\r
+ InitView();\r
+ RootView::GetInstance()->Add(container_);\r
+ }\r
+\r
+ void FastTrainingView::OnSetUpView()\r
+ {\r
+\r
+ View<FastTrainingPresenter>::OnSetUpView();\r
+ Draw();\r
+ }\r
+\r
+ void FastTrainingView::OnTearDownView()\r
+ {\r
+\r
+ View<FastTrainingPresenter>::OnTearDownView();\r
+ return;\r
+ }\r
+\r
+ void FastTrainingView::OnStop()\r
+ {\r
+\r
+ View<FastTrainingPresenter>::OnStop();\r
+ RootView::GetInstance()->RemoveAll();\r
+ return;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "string.h"\r
+\r
+#include "secondaryfunction/include/QuickAccessPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+ // 当前Presenter属性实例化的内存指针\r
+ static QuickAccessPresenter *g_pQuickAccessPresenter = nullptr;\r
+\r
+ QuickAccessPresenter::QuickAccessPresenter()\r
+ {\r
+\r
+ g_pQuickAccessPresenter = this;\r
+ }\r
+\r
+ QuickAccessPresenter::~QuickAccessPresenter()\r
+ {\r
+\r
+ g_pQuickAccessPresenter = nullptr;\r
+ }\r
+\r
+ QuickAccessPresenter *QuickAccessPresenter::GetInstance()\r
+ {\r
+\r
+ return g_pQuickAccessPresenter;\r
+ }\r
+\r
+ void QuickAccessPresenter::OnStart()\r
+ {\r
+\r
+ Presenter<QuickAccessView>::OnStart();\r
+ }\r
+\r
+ void QuickAccessPresenter::OnPause(void)\r
+ {\r
+\r
+ Presenter<QuickAccessView>::OnPause();\r
+ }\r
+\r
+ void QuickAccessPresenter::OnResume(void)\r
+ {\r
+\r
+ Presenter<QuickAccessView>::OnResume();\r
+ }\r
+\r
+ void QuickAccessPresenter::OnStop(void)\r
+ {\r
+\r
+ Presenter<QuickAccessView>::OnStop();\r
+ }\r
+\r
+ bool QuickAccessPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(view);\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+ (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_SECONDARY_FUNCTION);\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+\r
+ bool QuickAccessPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ // 根据控件id查找是哪个控件触发了点击回调\r
+ if (strcmp(view.GetViewId(), HEART_RATE_DETECTION) == 0)\r
+ {\r
+ \r
+ return true;\r
+ }\r
+ else if(strcmp(view.GetViewId(), BLOOD_OXYGEN_MONITOR) == 0)\r
+ {\r
+ \r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "UiConfig.h"\r
+\r
+#include "secondaryfunction/include/QuickAccessView.h"\r
+#include "secondaryfunction/include/QuickAccessPresenter.h"\r
+namespace OHOS\r
+{\r
+\r
+ static QuickAccessView *g_pQuickAccessView{nullptr};\r
+\r
+ QuickAccessView::QuickAccessView()\r
+ {\r
+\r
+ g_pQuickAccessView = this;\r
+ }\r
+\r
+ QuickAccessView::~QuickAccessView()\r
+ {\r
+ DeInitView();\r
+ g_pQuickAccessView = nullptr;\r
+ }\r
+\r
+ QuickAccessView *QuickAccessView::GetInstance()\r
+ {\r
+\r
+ return g_pQuickAccessView;\r
+ }\r
+\r
+ void QuickAccessView::InitView(void)\r
+ {\r
+ if (container_ == nullptr)\r
+ {\r
+ container_ = new UIViewGroup();\r
+ container_->SetPosition(0, 0, 466, 466);\r
+ container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(QuickAccessPresenter::GetInstance());\r
+ if (draglistener == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ container_->SetOnDragListener(draglistener);\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+ }\r
+ /***********************************************************************************************************/\r
+ // Add QuickAccessScrollView to App\r
+ if (QuickAccessScrollView == nullptr)\r
+ {\r
+ QuickAccessScrollView = new UIScrollView();\r
+ }\r
+ QuickAccessScrollView->SetPosition(0, 0);\r
+ QuickAccessScrollView->Resize(466, 466);\r
+ QuickAccessScrollView->SetViewId("QuickAccessScrollView");\r
+ QuickAccessScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ // Add to rootView\r
+ container_->Add(QuickAccessScrollView);\r
+ QuickAccessScrollView->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add Label to App\r
+ if (QuickAccessLabel == nullptr)\r
+ {\r
+ QuickAccessLabel = new UILabel();\r
+ }\r
+ QuickAccessLabel->SetPosition(173, 52);\r
+ QuickAccessLabel->Resize(120, 35);\r
+ QuickAccessLabel->SetViewId("QuickAccessLabel");\r
+ QuickAccessLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+ QuickAccessLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // Set additional property\r
+ QuickAccessLabel->SetText("快速访问");\r
+ QuickAccessLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ QuickAccessLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ QuickAccessLabel->SetRollSpeed(6);\r
+ QuickAccessLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(QuickAccessLabel);\r
+ QuickAccessLabel->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add Label to App\r
+ if (label == nullptr)\r
+ {\r
+ label = new UILabel();\r
+ }\r
+ label->SetPosition(86, 126);\r
+ label->Resize(286, 60);\r
+ label->SetViewId("label");\r
+ label->SetStyle(STYLE_TEXT_FONT, 26);\r
+ label->SetStyle(STYLE_LINE_HEIGHT, 30);\r
+ // Set additional property\r
+ label->SetText("此功能可设置右下方按钮\n快速访问的APP");\r
+ label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label->SetTextColor(Color::GetColorFromRGBA(0xbb, 0xbb, 0xbb, 0xff));\r
+ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label->SetRollSpeed(6);\r
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(label);\r
+ label->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add ImageView to App\r
+ if (HeartRateDetectionImage == nullptr)\r
+ {\r
+ HeartRateDetectionImage = new UIImageView();\r
+ }\r
+ HeartRateDetectionImage->SetPosition(43, 220); // widget's left position and top position\r
+ HeartRateDetectionImage->Resize(380, 100); // widget's width and height\r
+ HeartRateDetectionImage->SetViewId("HeartRateDetectionImage"); // Set style\r
+ HeartRateDetectionImage->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+ HeartRateDetectionImage->SetSrc(PNG_SETTING_BACKGROUND_IMAGE);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(HeartRateDetectionImage);\r
+ HeartRateDetectionImage->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add Label to App\r
+ if (HeartRateDetectionLabel == nullptr)\r
+ {\r
+ HeartRateDetectionLabel = new UILabel();\r
+ }\r
+ HeartRateDetectionLabel->SetPosition(103, 253);\r
+ HeartRateDetectionLabel->Resize(120, 35);\r
+ HeartRateDetectionLabel->SetViewId("HeartRateDetectionLabel");\r
+ HeartRateDetectionLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+ HeartRateDetectionLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // Set additional property\r
+ HeartRateDetectionLabel->SetText("心率监测");\r
+ HeartRateDetectionLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ HeartRateDetectionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ HeartRateDetectionLabel->SetRollSpeed(6);\r
+ HeartRateDetectionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(HeartRateDetectionLabel);\r
+ HeartRateDetectionLabel->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add CheckBox to App\r
+ if (HeartRateDetectionCheckBox == nullptr)\r
+ {\r
+ HeartRateDetectionCheckBox = new UICheckBox();\r
+ }\r
+ HeartRateDetectionCheckBox->SetPosition(343, 250);\r
+ HeartRateDetectionCheckBox->Resize(40, 40);\r
+ HeartRateDetectionCheckBox->SetViewId(HEART_RATE_DETECTION);\r
+ HeartRateDetectionCheckBox->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ HeartRateDetectionCheckBox->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ // Set additional property\r
+ HeartRateDetectionCheckBox->SetImages(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+ // Add the CallBack about events\r
+ UIView::OnClickListener *HeartRateDetectionCheckBoxClick = static_cast<UIView::OnClickListener *>(QuickAccessPresenter::GetInstance());\r
+ HeartRateDetectionCheckBox->SetOnClickListener(HeartRateDetectionCheckBoxClick);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(HeartRateDetectionCheckBox);\r
+ HeartRateDetectionCheckBox->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add ImageView to App\r
+ if (BloodOxygenMonitoringImage == nullptr)\r
+ {\r
+ BloodOxygenMonitoringImage = new UIImageView();\r
+ }\r
+ BloodOxygenMonitoringImage->SetPosition(43, 340);\r
+ BloodOxygenMonitoringImage->Resize(380, 100);\r
+ BloodOxygenMonitoringImage->SetViewId("BloodOxygenMonitoringImage");\r
+ BloodOxygenMonitoringImage->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+ // Set additional property\r
+ BloodOxygenMonitoringImage->SetSrc(PNG_SETTING_BACKGROUND_IMAGE);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(BloodOxygenMonitoringImage);\r
+ BloodOxygenMonitoringImage->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add CheckBox to App\r
+ if (BloodOxygenMonitoringCheckBox == nullptr)\r
+ {\r
+ BloodOxygenMonitoringCheckBox = new UICheckBox();\r
+ }\r
+ BloodOxygenMonitoringCheckBox->SetPosition(343, 370);\r
+ BloodOxygenMonitoringCheckBox->Resize(50, 50);\r
+ BloodOxygenMonitoringCheckBox->SetViewId(BLOOD_OXYGEN_MONITOR);\r
+ BloodOxygenMonitoringCheckBox->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ BloodOxygenMonitoringCheckBox->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ BloodOxygenMonitoringCheckBox->SetImages(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+ // Add the CallBack about events\r
+ UIView::OnClickListener *BloodOxygenMonitoringCheckBoxClick = static_cast<UIView::OnClickListener *>(QuickAccessPresenter::GetInstance());\r
+ BloodOxygenMonitoringCheckBox->SetOnClickListener(BloodOxygenMonitoringCheckBoxClick);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(BloodOxygenMonitoringCheckBox);\r
+ BloodOxygenMonitoringCheckBox->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add Label to App\r
+ if (BloodOxygenMonitoringLabel == nullptr)\r
+ {\r
+ BloodOxygenMonitoringLabel = new UILabel();\r
+ }\r
+ BloodOxygenMonitoringLabel->SetPosition(103, 373);\r
+ BloodOxygenMonitoringLabel->Resize(120, 35);\r
+ BloodOxygenMonitoringLabel->SetViewId("BloodOxygenMonitoringLabel");\r
+ BloodOxygenMonitoringLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+ BloodOxygenMonitoringLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // Set additional property\r
+ BloodOxygenMonitoringLabel->SetText("血氧监测");\r
+ BloodOxygenMonitoringLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ BloodOxygenMonitoringLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ BloodOxygenMonitoringLabel->SetRollSpeed(6);\r
+ BloodOxygenMonitoringLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ // Add to scrollView3\r
+ QuickAccessScrollView->Add(BloodOxygenMonitoringLabel);\r
+ BloodOxygenMonitoringLabel->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add ImageView to App\r
+ if (image1 == nullptr)\r
+ {\r
+ image1 = new UIImageView();\r
+ }\r
+ image1->SetPosition(183, 23);\r
+ image1->Resize(100, 100);\r
+ image1->SetViewId("image1");\r
+\r
+ QuickAccessScrollView->Add(image1);\r
+ image1->SetVisible(true);\r
+ /***********************************************************************************************************/\r
+ // Add ImageView to App\r
+ if (image2 == nullptr)\r
+ {\r
+ image2 = new UIImageView();\r
+ }\r
+ image2->SetPosition(183, 423);\r
+ image2->Resize(100, 100);\r
+ image2->SetViewId("image2");\r
+ QuickAccessScrollView->Add(image2);\r
+ image2->SetVisible(true);\r
+ }\r
+\r
+ void QuickAccessView::DeInitView(void)\r
+ {\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+ if (QuickAccessScrollView != nullptr)\r
+ {\r
+ delete QuickAccessScrollView;\r
+ QuickAccessScrollView = nullptr;\r
+ }\r
+ if (image1 != nullptr)\r
+ {\r
+ delete image1;\r
+ image1 = nullptr;\r
+ }\r
+ if (QuickAccessLabel != nullptr)\r
+ {\r
+ delete QuickAccessLabel;\r
+ QuickAccessLabel = nullptr;\r
+ }\r
+ if (image2 != nullptr)\r
+ {\r
+ delete image2;\r
+ image2 = nullptr;\r
+ }\r
+ if (label != nullptr)\r
+ {\r
+ delete label;\r
+ label = nullptr;\r
+ }\r
+ if (HeartRateDetectionImage != nullptr)\r
+ {\r
+ delete HeartRateDetectionImage;\r
+ HeartRateDetectionImage = nullptr;\r
+ }\r
+ if (HeartRateDetectionCheckBox != nullptr)\r
+ {\r
+ delete HeartRateDetectionCheckBox;\r
+ HeartRateDetectionCheckBox = nullptr;\r
+ }\r
+ if (HeartRateDetectionLabel != nullptr)\r
+ {\r
+ delete HeartRateDetectionLabel;\r
+ HeartRateDetectionLabel = nullptr;\r
+ }\r
+ if (BloodOxygenMonitoringImage != nullptr)\r
+ {\r
+ delete BloodOxygenMonitoringImage;\r
+ BloodOxygenMonitoringImage = nullptr;\r
+ }\r
+ if (BloodOxygenMonitoringCheckBox != nullptr)\r
+ {\r
+ delete BloodOxygenMonitoringCheckBox;\r
+ BloodOxygenMonitoringCheckBox = nullptr;\r
+ }\r
+ if (BloodOxygenMonitoringLabel != nullptr)\r
+ {\r
+ delete BloodOxygenMonitoringLabel;\r
+ BloodOxygenMonitoringLabel = nullptr;\r
+ }\r
+ }\r
+\r
+ void QuickAccessView::OnStart()\r
+ {\r
+ View<QuickAccessPresenter>::OnStart();\r
+ InitView();\r
+ RootView::GetInstance()->Add(container_);\r
+ }\r
+\r
+ void QuickAccessView::OnSetUpView()\r
+ {\r
+\r
+ View<QuickAccessPresenter>::OnSetUpView();\r
+ Draw();\r
+ }\r
+\r
+ void QuickAccessView::OnTearDownView()\r
+ {\r
+\r
+ View<QuickAccessPresenter>::OnTearDownView();\r
+ return;\r
+ }\r
+\r
+ void QuickAccessView::OnStop()\r
+ {\r
+\r
+ View<QuickAccessPresenter>::OnStop();\r
+ RootView::GetInstance()->RemoveAll();\r
+ return;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+\r
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+\r
+#include "secondaryfunction/include/SecondaryFunctionPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+ // 当前Presenter属性实例化的内存指针\r
+ static SecondaryFunctionPresenter *g_pSecondaryFunctionPresenter = nullptr;\r
+\r
+ SecondaryFunctionPresenter::SecondaryFunctionPresenter()\r
+ {\r
+\r
+ g_pSecondaryFunctionPresenter = this;\r
+ }\r
+\r
+ SecondaryFunctionPresenter::~SecondaryFunctionPresenter()\r
+ {\r
+\r
+ g_pSecondaryFunctionPresenter = nullptr;\r
+ }\r
+\r
+ SecondaryFunctionPresenter *SecondaryFunctionPresenter::GetInstance()\r
+ {\r
+\r
+ return g_pSecondaryFunctionPresenter;\r
+ }\r
+\r
+ void SecondaryFunctionPresenter::OnStart()\r
+ {\r
+\r
+ Presenter<SecondaryFunctionView>::OnStart();\r
+ }\r
+\r
+ void SecondaryFunctionPresenter::OnPause(void)\r
+ {\r
+\r
+ Presenter<SecondaryFunctionView>::OnPause();\r
+ }\r
+\r
+ void SecondaryFunctionPresenter::OnResume(void)\r
+ {\r
+\r
+ Presenter<SecondaryFunctionView>::OnResume();\r
+ }\r
+\r
+ void SecondaryFunctionPresenter::OnStop(void)\r
+ {\r
+\r
+ Presenter<SecondaryFunctionView>::OnStop();\r
+ }\r
+\r
+ bool SecondaryFunctionPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(view);\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+ (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+\r
+ bool SecondaryFunctionPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+\r
+ // 根据控件id查找是哪个控件触发了点击回调\r
+ if (strcmp(view.GetViewId(), SECONDARY_FUNCTION_BUTTON1ID) == 0)\r
+ {\r
+ \r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_QUICK_ACCESS);\r
+ return true;\r
+ }\r
+ else if (strcmp(view.GetViewId(), SECONDARY_FUNCTION_BUTTON2ID) == 0)\r
+ {\r
+ \r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_FAST_TRAINING);\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "secondaryfunction/include/SecondaryFunctionView.h"\r
+#include "secondaryfunction/include/SecondaryFunctionPresenter.h"\r
+\r
+#include "UiConfig.h"\r
+namespace OHOS\r
+{\r
+\r
+ static SecondaryFunctionView *g_pSecondaryFunctionView{nullptr};\r
+\r
+ SecondaryFunctionView::SecondaryFunctionView()\r
+ {\r
+\r
+ g_pSecondaryFunctionView = this;\r
+ }\r
+\r
+ SecondaryFunctionView::~SecondaryFunctionView()\r
+ {\r
+ DeInitView();\r
+ g_pSecondaryFunctionView = nullptr;\r
+ }\r
+\r
+ SecondaryFunctionView *SecondaryFunctionView::GetInstance()\r
+ {\r
+\r
+ return g_pSecondaryFunctionView;\r
+ }\r
+\r
+ void SecondaryFunctionView::InitView(void)\r
+ {\r
+ if (container_ == nullptr)\r
+ {\r
+ container_ = new UIViewGroup();\r
+ container_->SetPosition(0, 0, 466, 466);\r
+ container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SecondaryFunctionPresenter::GetInstance());\r
+ if (draglistener == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ container_->SetOnDragListener(draglistener);\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+ }\r
+ // Add Label to App\r
+ if (label1_ == nullptr)\r
+ {\r
+ label1_ = new UILabel();\r
+ }\r
+ label1_->SetPosition(172, 52);\r
+ label1_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ label1_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ label1_->SetText("辅助功能");\r
+ label1_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label1_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label1_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ container_->Add(label1_);\r
+ label1_->SetVisible(true);\r
+\r
+ // Add Button to App\r
+ if (SECONDARY_FUNCTION_BUTTON1 == nullptr)\r
+ {\r
+ SECONDARY_FUNCTION_BUTTON1 = new UIButton();\r
+ }\r
+ SECONDARY_FUNCTION_BUTTON1->SetPosition(43, 120);\r
+ SECONDARY_FUNCTION_BUTTON1->Resize(380, 100);\r
+ SECONDARY_FUNCTION_BUTTON1->SetViewId(SECONDARY_FUNCTION_BUTTON1ID);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyle(STYLE_BORDER_OPA, 0x00);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyle(STYLE_BORDER_COLOR, 0xffffffff);\r
+ SECONDARY_FUNCTION_BUTTON1->SetImageSrc(PNG_SETTING_BACKGROUND_IMAGE, nullptr);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xfffafafa, UIButton::PRESSED);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+ SECONDARY_FUNCTION_BUTTON1->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);\r
+ // Add the CallBack about events\r
+ UIView::OnClickListener *button1Click = static_cast<UIView::OnClickListener *>(SecondaryFunctionPresenter::GetInstance());\r
+ SECONDARY_FUNCTION_BUTTON1->SetOnClickListener(button1Click);\r
+ // Add to rootView\r
+ container_->Add(SECONDARY_FUNCTION_BUTTON1);\r
+ SECONDARY_FUNCTION_BUTTON1->SetVisible(true);\r
+\r
+ // Add Label to App\r
+ if (label2_ == nullptr)\r
+ {\r
+ label2_ = new UILabel();\r
+ }\r
+ label2_->SetPosition(90, 153);\r
+ label2_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ label2_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ // Set additional property\r
+ label2_->SetText("快速访问");\r
+ label2_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label2_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label2_->SetRollSpeed(0);\r
+ label2_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ // Add to rootView\r
+ container_->Add(label2_);\r
+ label2_->SetVisible(true);\r
+\r
+ // Add ImageView to App\r
+ if (image3_ == nullptr)\r
+ {\r
+ image3_ = new UIImageView();\r
+ }\r
+ image3_->SetPosition(369, 157);\r
+ image3_->SetSrc(PNG_SETTING_NEXT_IMAGE);\r
+ // Add to rootView\r
+ container_->Add(image3_);\r
+ image3_->SetVisible(true);\r
+\r
+ // Add Button to App\r
+ if (SECONDARY_FUNCTION_BUTTON2 == nullptr)\r
+ {\r
+ SECONDARY_FUNCTION_BUTTON2 = new UIButton();\r
+ }\r
+ SECONDARY_FUNCTION_BUTTON2->SetPosition(43, 240);\r
+ SECONDARY_FUNCTION_BUTTON2->Resize(380, 100);\r
+ SECONDARY_FUNCTION_BUTTON2->SetViewId(SECONDARY_FUNCTION_BUTTON2ID);\r
+ SECONDARY_FUNCTION_BUTTON2->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+ SECONDARY_FUNCTION_BUTTON2->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
+ SECONDARY_FUNCTION_BUTTON2->SetStyle(STYLE_BORDER_OPA, 0x00);\r
+ SECONDARY_FUNCTION_BUTTON2->SetStyle(STYLE_BORDER_COLOR, 0xffffffff);\r
+ SECONDARY_FUNCTION_BUTTON2->SetImageSrc(PNG_SETTING_BACKGROUND_IMAGE, nullptr);\r
+ SECONDARY_FUNCTION_BUTTON2->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+ SECONDARY_FUNCTION_BUTTON2->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);\r
+ // Add the CallBack about events\r
+ UIView::OnClickListener *button2Click = static_cast<UIView::OnClickListener *>(SecondaryFunctionPresenter::GetInstance());\r
+ SECONDARY_FUNCTION_BUTTON2->SetOnClickListener(button2Click);\r
+ // Add to rootView\r
+ container_->Add(SECONDARY_FUNCTION_BUTTON2);\r
+ SECONDARY_FUNCTION_BUTTON2->SetVisible(true);\r
+ // Add Label to App\r
+ if (label4_ == nullptr)\r
+ {\r
+ label4_ = new UILabel();\r
+ }\r
+ label4_->SetPosition(90, 273);\r
+ label4_->SetStyle(STYLE_TEXT_FONT, 30);\r
+ label4_->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+ // Set additional property\r
+ label4_->SetText("快速训练");\r
+ label4_->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+ label4_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label4_->SetRollSpeed(0);\r
+ label4_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ // Add to rootView\r
+ container_->Add(label4_);\r
+ label4_->SetVisible(true);\r
+\r
+ // Add ImageView to App\r
+ if (image4_ == nullptr)\r
+ {\r
+ image4_ = new UIImageView();\r
+ }\r
+ image4_->SetPosition(369, 277);\r
+ image4_->SetSrc(PNG_SETTING_NEXT_IMAGE);\r
+ // Add to rootView\r
+ container_->Add(image4_);\r
+ image4_->SetVisible(true);\r
+ }\r
+ void SecondaryFunctionView::DeInitView(void)\r
+ {\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ }\r
+ if (label1_ != nullptr)\r
+ {\r
+ delete label1_;\r
+ label1_ = nullptr;\r
+ }\r
+ if (SECONDARY_FUNCTION_BUTTON1 != nullptr)\r
+ {\r
+ delete SECONDARY_FUNCTION_BUTTON1;\r
+ SECONDARY_FUNCTION_BUTTON1 = nullptr;\r
+ }\r
+ if (image3_ != nullptr)\r
+ {\r
+ delete image3_;\r
+ image3_ = nullptr;\r
+ }\r
+ if (label2_ != nullptr)\r
+ {\r
+ delete label2_;\r
+ label2_ = nullptr;\r
+ }\r
+ if (SECONDARY_FUNCTION_BUTTON2 != nullptr)\r
+ {\r
+ delete SECONDARY_FUNCTION_BUTTON2;\r
+ SECONDARY_FUNCTION_BUTTON2 = nullptr;\r
+ }\r
+ if (image4_ != nullptr)\r
+ {\r
+ delete image4_;\r
+ image4_ = nullptr;\r
+ }\r
+ if (label4_ != nullptr)\r
+ {\r
+ delete label4_;\r
+ label4_ = nullptr;\r
+ }\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+\r
+ void SecondaryFunctionView::OnStart()\r
+ {\r
+ View<SecondaryFunctionPresenter>::OnStart();\r
+ InitView();\r
+ RootView::GetInstance()->Add(container_);\r
+ }\r
+\r
+ void SecondaryFunctionView::OnSetUpView()\r
+ {\r
+\r
+ View<SecondaryFunctionPresenter>::OnSetUpView();\r
+ Draw();\r
+ }\r
+\r
+ void SecondaryFunctionView::OnTearDownView()\r
+ {\r
+\r
+ View<SecondaryFunctionPresenter>::OnTearDownView();\r
+ return;\r
+ }\r
+\r
+ void SecondaryFunctionView::OnStop()\r
+ {\r
+\r
+ View<SecondaryFunctionPresenter>::OnStop();\r
+ RootView::GetInstance()->RemoveAll();\r
+ return;\r
+ }\r
+\r
+}
\ No newline at end of file
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ZERO, VIEW_DISPLAY_BRIGHTNESS));
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ONE, VIEW_BLUETOOTH_EARPHONE));
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_TWO, VIEW_SOUND_VIBRATION));
- settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_THREE, VIEW_SYSTEM));
+ settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_THREE, VIEW_SECONDARY_FUNCTION));
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_FOUR, VIEW_SYSTEM));
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_FIVE, VIEW_SHUTDOWN_OR_REBOOT));
}
char* HalGetSerial(void)
{
- char* value = (char*)malloc(strlen(OHOS_SERIAL) + 1);
+ unsigned char sn_buf[32] = {0};
+ unsigned int len = 0;
+ unsigned int ret = zh_get_sn(sn_buf,&len);
+ char* value = (char*)malloc(strlen(sn_buf) + 1);
if (value == NULL) {
return NULL;
}
- if (strcpy_s(value, strlen(OHOS_SERIAL) + 1, OHOS_SERIAL) != 0) {
+ if (strcpy_s(value, strlen(sn_buf) + 1, sn_buf) != 0) {
free(value);
return NULL;
}
+
return value;
}