--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-01-29 15:37:44\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-09-27 15:07:34\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h\r
+ */\r
+#ifndef BRIGHTNESS_CONTROL_VIEW_H\r
+#define BRIGHTNESS_CONTROL_VIEW_H\r
+\r
+\r
+#include "View.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_slider.h"\r
+#include "components/ui_image_view.h"\r
+#include <memory>\r
+#include "map"\r
+namespace OHOS\r
+{\r
+#define BRIGHTNESS_MIN 51\r
+#define BRIGHTNESS_MAX 0xff\r
+#define BRIGHTNESS_PROGRESS "progress"\r
+\r
+ // 步骤 1: 定义策略接口.定义一个策略接口,所有的亮度调整策略都需要实现这个接口\r
+ class BrightnessControlView;\r
+ class BrightnessChangeStrategy\r
+ {\r
+ public:\r
+ virtual void ApplyChange(BrightnessControlView *view, UISlider *slider, uint8_t value) = 0;\r
+ virtual ~BrightnessChangeStrategy() = default;\r
+ };\r
+\r
+ static const char *BRIGHTNESS_CONTROL_SLIDER = "BrightnessControlViewSlider";\r
+ class BrightnessSliderEventListener : public UISlider::UISliderEventListener,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener,\r
+ public UIView::OnRotateListener\r
+ {\r
+ public:\r
+ BrightnessSliderEventListener();\r
+ ~BrightnessSliderEventListener();\r
+ static BrightnessSliderEventListener *GetInstance();\r
+ void ChangeBrightness(uint8_t status, uint8_t value);\r
+ void OnChange(int32_t value) override;\r
+ void OnRelease(int32_t value) override;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnRotateEnd(UIView& view, const RotateEvent& event);\r
+\r
+ private:\r
+ std::map<uint8_t, std::shared_ptr<BrightnessChangeStrategy>> strategyMap;\r
+ };\r
+ class BrightnessControlView\r
+ {\r
+ public:\r
+ BrightnessControlView();\r
+ virtual ~BrightnessControlView();\r
+ static BrightnessControlView *GetInstance(void);\r
+ UIScrollView *BrightnessControlViewInit(void);\r
+ void ClearAll(void);\r
+ UISlider *GetBrightnessControlViewSlider(void);\r
+\r
+ private:\r
+ bool SetUpScrollView(void);\r
+ bool SetUpSlider(void);\r
+ bool SetUpImageView(void);\r
+ BrightnessSliderEventListener *rawPointer{nullptr};\r
+ UIScrollView *BrightnessControlScrollView{nullptr};\r
+ UISlider *BrightnessControlViewSlider = nullptr;\r
+ UIImageView *BrightnessControlViewImageIcon = nullptr;\r
+ bool initViewStatus{false};\r
+ };\r
+} // namespace OHOS\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-04-12 20:11:04\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-06-18 15:14:25\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h\r
+ */\r
+#ifndef DISPLAY_BRIGHTNESS_MODEL_H_\r
+#define DISPLAY_BRIGHTNESS_MODEL_H_\r
+\r
+#include "ConfigModel.h"\r
+namespace OHOS\r
+{\r
+ class DisplayBrightnessModel\r
+ {\r
+ public:\r
+ static DisplayBrightnessModel *GetInstance(void);\r
+ bool UpdateRaiseToBrightnessCheckBoxButtonStatus(void);\r
+ bool UpdateScreenDurationRadioButtonSlectStatus(void);\r
+ bool UpdateSelectScreenDurationLabel(void);\r
+ bool UpdateBrightnessValueOfSlider(void);\r
+ void SetScreenDurationTime(unsigned int time);\r
+ unsigned int GetScreenDurationTime(void);\r
+\r
+ private:\r
+ DisplayBrightnessModel();\r
+ DisplayBrightnessModel(const DisplayBrightnessModel &) = delete;\r
+ DisplayBrightnessModel &operator=(const DisplayBrightnessModel &) = delete;\r
+ virtual ~DisplayBrightnessModel();\r
+ };\r
+}\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-02-18 09:10:05\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-07-22 16:24:31\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h\r
+ */\r
+#ifndef _DISPLAY_BRIGHTNESS_PRESENTER_H\r
+#define _DISPLAY_BRIGHTNESS_PRESENTER_H\r
+\r
+/*显示与亮度*/\r
+#include "Presenter.h"\r
+#include "DisplayBrightnessView.h"\r
+#include "components/ui_slider.h"\r
+\r
+namespace OHOS\r
+{\r
+ static constexpr uint8_t WRIST_RAISE_TO_WAKE_ENABLED = 1;\r
+ static constexpr uint8_t WRIST_RAISE_TO_WAKE_DISENABLED = 0;\r
+ typedef enum\r
+ {\r
+ DISPLAYBRIGHTNESSVIEW = 0, // 屏幕与亮度视图(slice)\r
+ SCREENDURATIONVIEW, // 亮屏时长视图(subView)\r
+ MAX_DISPLAYBRIGHTNESSVIEWID,\r
+ } DISPLAYBRIGHTNESSVIEWID;\r
+\r
+ /// @brief 亮度状态改变\r
+ typedef enum : uint8_t\r
+ {\r
+ BRIGHTNESSLOWERS = 0, // 亮度降低\r
+ BRIGHTNESSEVATED = 1, // 亮度增加\r
+ BRIGHTNESSDRAG = 2, // 亮度拖动状态\r
+ } BrightnessChangeStatus;\r
+\r
+ /// @brief 亮屏时长\r
+ typedef enum : uint32_t\r
+ {\r
+ SCREENDURATION_FIVE = 1000 * 5, // 5秒后熄屏\r
+ SCREENDURATION_TEN = 1000 * 10, // 10秒后熄屏\r
+ SCREENDURATION_FIFTEENTH = 1000 * 15, // 15秒后熄屏\r
+ SCREENDURATION_THIRTY = 1000 * 30, // 30秒后熄屏\r
+ SCREENDURATION_SIXTY = 1000 * 60, // 60秒后熄屏\r
+ SCREENDURATION_THREE_HUNDRED = 1000 * 300, // 300秒后熄屏\r
+ } ScreenDurationTime;\r
+\r
+ typedef enum\r
+ {\r
+ ScreenDurationRadioButton1 = 0,\r
+ ScreenDurationRadioButton2,\r
+ ScreenDurationRadioButton3,\r
+ ScreenDurationRadioButton4,\r
+ ScreenDurationRadioButton5,\r
+ ScreenDurationRadioButton6,\r
+ Max_ScreenDurationRadioButton,\r
+ } ScreenDurationRadioButton;\r
+\r
+ static const char *BRINGHTNESSCONTROLBUTTON_VIEW = "BRINGHTNESSCONTROLBUTTON"; // 亮度调节按钮视图id\r
+ static const char *SCREENDURATIONBUTTON_VIEWID = "SCREENDURATIONBUTTON"; // 亮屏时长按钮视图id\r
+ static const char *RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID = "RAISETOBRIGHTNESSCHECKBOXBUTTON"; // 抬腕亮屏checkbox按钮视图id\r
+\r
+ class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener, public UIView::OnClickListener\r
+ {\r
+ public:\r
+ ScreenDurationRadiobuttonOnChangeListener() {}\r
+ ScreenDurationRadiobuttonOnChangeListener(UIView *view)\r
+ {\r
+ m_view = view;\r
+ }\r
+ ~ScreenDurationRadiobuttonOnChangeListener() {}\r
+ bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+\r
+ private:\r
+ UIView *m_view{nullptr};\r
+ };\r
+\r
+ class DisplayBrightnessView;\r
+ class DisplayBrightnessPresenter : public Presenter<DisplayBrightnessView>,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener,\r
+ public RootView::OnKeyActListener,\r
+ public UICheckBox::OnChangeListener\r
+ {\r
+ public:\r
+ DisplayBrightnessPresenter();\r
+ virtual ~DisplayBrightnessPresenter();\r
+\r
+ void OnStart() override;\r
+ void OnPause() override;\r
+ void OnResume() override;\r
+ void OnStop() override;\r
+\r
+ static DisplayBrightnessPresenter *GetInstance();\r
+ void SetRaiseToBrightnessState(bool value);\r
+ void SetScreenDurationRadioButtonSelectStatus(uint32_t value);\r
+ void SetSelectScreenDurationLabel(uint32_t value);\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 OnDragEnd(UIView &view, const DragEvent &event) override;\r
+ bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
+ bool X_DRAG_FLAG{false};\r
+ };\r
+} // namespace OHOS\r
+\r
+#endif //_DisplayBrightness_PRESENTER_H\r
--- /dev/null
+#ifndef _DISPLAY_BRIGHTNESS_VIEW_H\r
+#define _DISPLAY_BRIGHTNESS_VIEW_H\r
+\r
+\r
+#include "View.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_checkbox.h"\r
+#include "components/ui_radio_button.h"\r
+#include "DisplayBrightnessPresenter.h"\r
+#include "displaybrightness/include/ScreenDurationView.h"\r
+#include "memory"\r
+namespace OHOS\r
+{\r
+ static constexpr const char *DISPLAY_BRIGHTNESS_VIEW = "DisplayBrightnessView";\r
+ class DisplayBrightnessPresenter;\r
+ class DisplayBrightnessView : public View<DisplayBrightnessPresenter>\r
+ {\r
+ public:\r
+ struct ImageConfig\r
+ {\r
+ int16_t x;\r
+ int16_t y;\r
+ int16_t w;\r
+ int16_t h;\r
+ const char *ImageSrc;\r
+ };\r
+ struct ButtonConfig\r
+ {\r
+ int16_t x;\r
+ int16_t y;\r
+ int16_t w;\r
+ int16_t h;\r
+ const char *ViewId;\r
+ // const char *ImageSrc;\r
+ };\r
+ struct LabelConfig\r
+ {\r
+ int16_t left;\r
+ int16_t top;\r
+ int16_t width;\r
+ int16_t height;\r
+ int16_t fontSize; // 字体大小\r
+ int16_t lineHeigh; // 行高\r
+ // std::string text; // 文本\r
+ int16_t textId;\r
+ uint8_t lineBreakMode; // 断行模式。\r
+ };\r
+ struct CheckBoxConfig\r
+ {\r
+ int16_t x;\r
+ int16_t y;\r
+ int16_t w;\r
+ int16_t h;\r
+ const char *ViewId;\r
+ const char *select;\r
+ const char *unselect;\r
+ };\r
+ DisplayBrightnessView();\r
+ virtual ~DisplayBrightnessView();\r
+ static DisplayBrightnessView *GetInstance(void);\r
+\r
+ bool ChangeDisplayBrightnessView(int16_t thisView); // 切换到“屏幕与亮度”视图\r
+ bool ChangeScreenDurationView(int16_t thisView); // 切换到亮屏时长视图\r
+ bool ClickFunc(int16_t interface);\r
+ void ChangeView(int16_t hideView, int16_t showView);\r
+ void SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState state);\r
+ ScreenDurationView *GetScreenDurationView(void);\r
+ UILabelExt *GetSelectScreenDurationLabel(void);\r
+\r
+ public:\r
+ void OnStart() override;\r
+\r
+\r
+ private:\r
+ ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图\r
+\r
+ private:\r
+ UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
+ UIImageView *SetUpImageView(ImageConfig &imageconfig); // 设置图片\r
+ UICheckBox *SetUpCheckBox(CheckBoxConfig &checkboxconfig); // 设置复选框\r
+ UIButton *SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener);\r
+ bool SetTheTitle(void);\r
+ bool InitDisplayBrightnessViewButton(void);\r
+ bool InitDisplayBrightnessViewLabel(void);\r
+ bool InitDisplayBrightnessViewImage(void);\r
+ bool InitDisplayBrightnessViewCheckBox(void);\r
+ bool SetUpScrollView(void);\r
+ void DisplayAndBrightnessViewInit(void);\r
+ void ClearAll(void);\r
+ UIScrollView *DisplayBrightnessScrollView[2]{nullptr};\r
+ UILabelExt *DisplayBrightnessTitleLabel = nullptr; // 显示与亮度标题\r
+ UIButton *BringhtnessControlButton = nullptr; // 亮度调节按钮\r
+ UIButton *ScreenDurationButton = nullptr; // 亮屏时长按钮\r
+ UILabelExt *BringhtnessControlLabel = nullptr; // 亮度调节标签\r
+ UILabelExt *ScreenDurationLabel = nullptr; // 亮屏时长标签\r
+ UILabelExt *selectScreenDurationLabel = nullptr; // 选择的亮屏时间\r
+ UILabelExt *RaiseToBrightnessLabel = nullptr; // 抬腕亮屏标签\r
+ UIImageView *NextImage[2]{nullptr};\r
+ UIImageView *RaiseToBrightnessImage = nullptr; // 抬腕亮屏图片\r
+ UICheckBox *RaiseToBrightnessCheckBoxButton = nullptr; // 抬腕亮屏按钮\r
+ uint8_t state = UICheckBox::UICheckBoxState::MAX_STATUS_NUM;\r
+ bool initViewStatus{false};\r
+ };\r
+} // namespace OHOS\r
+#endif // DisplayBrightness_PRESENTER_H\r
--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-07-22 16:30:36\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h\r
+ */\r
+#ifndef SCREEN_DUATION_VIEW_H\r
+#define SCREEN_DUATION_VIEW_H\r
+// 屏幕时长\r
+\r
+#include "View.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label_ext.h"\r
+#include "components/ui_radio_button.h"\r
+#include "components/ui_button.h"\r
+namespace OHOS\r
+{\r
+#define DURATIONS 6\r
+ static constexpr const char *SCREENDURATIONSCROLLVIEW = "ScreenDurationView";\r
+ class ScreenDurationView\r
+ {\r
+ public:\r
+ struct ButtonConfig\r
+ {\r
+ int16_t x;\r
+ int16_t y;\r
+ int16_t w;\r
+ int16_t h;\r
+ };\r
+ struct LabelConfig\r
+ {\r
+ int16_t left;\r
+ int16_t top;\r
+ int16_t width;\r
+ int16_t height;\r
+ int16_t fontSize; // 字体大小\r
+ int16_t lineHeigh; // 行高\r
+ int16_t textId; // 文本id\r
+ uint8_t lineBreakMode; // 断行模式。\r
+ };\r
+ struct RadioButtonConfig\r
+ {\r
+ int16_t x;\r
+ int16_t y;\r
+ int16_t w;\r
+ int16_t h;\r
+ // const char *viewId;\r
+ const char *select;\r
+ const char *unselect;\r
+ };\r
+ ScreenDurationView();\r
+ virtual ~ScreenDurationView();\r
+ static ScreenDurationView *GetInstance(void);\r
+ UIScrollView *ScreenDurationViewInit(void);\r
+ void ClearAll(void);\r
+ UIRadioButton *GetRadioButton(int16_t i);\r
+ void SetRadioButtonSelectStatus(int16_t i);\r
+ UIButton *GetScreenDurationButton(int16_t i);\r
+\r
+ private:\r
+ UIButton *SetUpButtonView(ButtonConfig &buttonConfig); // 设置按钮\r
+ UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
+ UIRadioButton *SetUpRadioButton(RadioButtonConfig &radiobuttonconfig); // 设置单选框\r
+ bool SetUpScrollView(void);\r
+ bool SetUpScreenDurationViewLabel(void);\r
+ bool SetUpScreenDurationViewImageView(void);\r
+ bool SetUpScreenDurationViewRadioButton(void);\r
+ UIScrollView *ScreenDurationScrollView = nullptr;\r
+ UILabelExt *ScreenDurationTitleLabel = nullptr; // 标题\r
+ UILabelExt *ScreenDurationLabel[DURATIONS]{nullptr}; // 亮屏时长标签\r
+ UIButton *ScreenDurationButton[DURATIONS]{nullptr}; // 放置组件的按钮\r
+ UIRadioButton *ScreenDurationRadioButton[DURATIONS]{nullptr}; // 单选框\r
+ UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange[DURATIONS]{nullptr};\r
+ UIView::OnClickListener *ScreenDurationButtonClickListener{nullptr};\r
+ bool initViewStatus{false};\r
+ };\r
+} // namespace OHOS\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+#include "displaybrightness/include/BrightnessControlView.h"\r
+#include "displaybrightness/include/DisplayBrightnessPresenter.h"\r
+#include "wearable_log.h"\r
+#include <custom_utils.h>\r
+#include "power_display_service.h"\r
+#include "ConfigModel.h"\r
+#include "map"\r
+#include "iostream"\r
+#include "vibrator_service.h"\r
+namespace OHOS\r
+{\r
+ static BrightnessControlView *g_pBrightnessControlView{nullptr};\r
+ BrightnessControlView::BrightnessControlView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlView");\r
+ g_pBrightnessControlView = this;\r
+ }\r
+\r
+ BrightnessControlView::~BrightnessControlView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::~BrightnessControlView");\r
+ ClearAll();\r
+ g_pBrightnessControlView = nullptr;\r
+ }\r
+\r
+ BrightnessControlView *BrightnessControlView::GetInstance()\r
+ {\r
+ return g_pBrightnessControlView;\r
+ }\r
+\r
+ void BrightnessControlView::ClearAll(void)\r
+ {\r
+ if (initViewStatus == true)\r
+ {\r
+ BrightnessControlScrollView->RemoveAll();\r
+\r
+ delete BrightnessControlViewSlider;\r
+ BrightnessControlViewSlider = nullptr;\r
+\r
+ delete BrightnessControlViewImageIcon;\r
+ BrightnessControlViewImageIcon = nullptr;\r
+\r
+ delete rawPointer;\r
+ rawPointer = nullptr;\r
+\r
+ delete BrightnessControlScrollView;\r
+ BrightnessControlScrollView = nullptr;\r
+ }\r
+ }\r
+\r
+ // 显示与亮度视图scrollView初始化\r
+ bool BrightnessControlView::SetUpScrollView(void)\r
+ {\r
+ BrightnessControlScrollView = new UIScrollView();\r
+ if (BrightnessControlScrollView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlScrollView new fail!");\r
+ return false;\r
+ }\r
+ BrightnessControlScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ BrightnessControlScrollView->SetTouchable(true);\r
+ BrightnessControlScrollView->SetDraggable(true);\r
+ return true;\r
+ }\r
+\r
+ // 亮度滑动条设置\r
+ bool BrightnessControlView::SetUpSlider(void)\r
+ {\r
+ BrightnessControlViewSlider = new UISlider();\r
+ if (BrightnessControlViewSlider == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlViewSlider new fail");\r
+ return false;\r
+ }\r
+ BrightnessControlViewSlider->SetSliderColor(Color::Gray(), Color::Silver());\r
+ BrightnessControlViewSlider->SetPosition(167, 77, 130, 310);\r
+ BrightnessControlViewSlider->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);\r
+ BrightnessControlViewSlider->SetViewId(BRIGHTNESS_PROGRESS);\r
+ BrightnessControlViewSlider->SetRange(BRIGHTNESS_MAX, BRIGHTNESS_MIN);\r
+\r
+ BrightnessControlViewSlider->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+ BrightnessControlViewSlider->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);\r
+ BrightnessControlViewSlider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);\r
+ BrightnessControlViewSlider->SetSliderColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
+ BrightnessControlViewSlider->SetForegroundStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ BrightnessControlViewSlider->SetValue(ConfigModel::GetInstance()->GetBrightness());\r
+ BrightnessControlViewSlider->SetRotateFactor(1);\r
+ BrightnessControlViewSlider->RequestFocus();\r
+ BrightnessControlViewSlider->SetIntercept(true);\r
+\r
+ if (rawPointer == nullptr)\r
+ {\r
+ rawPointer = new BrightnessSliderEventListener();\r
+ if (rawPointer == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "rawPointer new fail");\r
+ return false;\r
+ }\r
+ }\r
+ BrightnessControlViewSlider->SetSliderEventListener(rawPointer);\r
+ BrightnessControlViewSlider->SetOnClickListener(rawPointer);\r
+ BrightnessControlViewSlider->SetOnDragListener(rawPointer);\r
+ BrightnessControlViewSlider->SetOnRotateListener(rawPointer);\r
+ BrightnessControlViewSlider->SetKnobStyle(StyleDefault::GetSliderKnobStyle());\r
+ return true;\r
+ }\r
+\r
+ bool BrightnessControlView::SetUpImageView(void)\r
+ {\r
+ BrightnessControlViewImageIcon = new UIImageView();\r
+ if (BrightnessControlViewImageIcon == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlViewImageIcon new fail");\r
+ return false;\r
+ }\r
+ BrightnessControlViewImageIcon->SetPosition(213, 213, 40, 40);\r
+ const char *image = "/user/res/BringhtnessContuolVector.bin";\r
+ BrightnessControlViewImageIcon->SetSrc(image);\r
+ return true;\r
+ }\r
+\r
+ UISlider *BrightnessControlView::GetBrightnessControlViewSlider(void)\r
+ {\r
+ return BrightnessControlViewSlider;\r
+ }\r
+\r
+\r
+ // 亮度调节视图初始化\r
+ UIScrollView *BrightnessControlView::BrightnessControlViewInit(void)\r
+ {\r
+ /* ----------------------- BrightnessControlScrollView ---------------------- */\r
+ if (!SetUpScrollView())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlScrollView is nullptr!");\r
+ return nullptr;\r
+ }\r
+\r
+ /* ----------------------- BrightnessControlViewSlider ---------------------- */\r
+ if (!SetUpSlider())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlViewSlider is nullptr!");\r
+ return nullptr;\r
+ }\r
+\r
+ /* ------------------------------- BrightnessControlViewImageIcon ------------------------------ */\r
+ if (!SetUpImageView())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlViewImageIcon is nullptr!");\r
+ return nullptr;\r
+ }\r
+ /* ----------------------------------- Add ---------------------------------- */\r
+ BrightnessControlScrollView->Add(BrightnessControlViewSlider);\r
+ BrightnessControlScrollView->Add(BrightnessControlViewImageIcon);\r
+ initViewStatus = true;\r
+ return BrightnessControlScrollView;\r
+ }\r
+\r
+ /* -------------------------------------------------------------------------- */\r
+\r
+ static constexpr int16_t BRIGHTNESS_CHANGE = 10;\r
+ // 步骤 2: 实现具体的策略\r
+ class LowerBrightnessStrategy : public BrightnessChangeStrategy\r
+ {\r
+ public:\r
+ void ApplyChange(BrightnessControlView *view, UISlider *slider, uint8_t value) override\r
+ {\r
+ // Implement the logic similar to the BRIGHTNESSLOWERS case\r
+ uint8_t newBrightnessValue = slider->GetValue() - BRIGHTNESS_CHANGE;\r
+ if (newBrightnessValue < BRIGHTNESS_MIN)\r
+ {\r
+ newBrightnessValue = BRIGHTNESS_MIN;\r
+ }\r
+\r
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
+ if (display_api->set_brightness(newBrightnessValue) != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LowerBrightness: set_brightness fail!");\r
+ }\r
+ else\r
+ {\r
+ slider->SetValue(newBrightnessValue);\r
+ }\r
+ }\r
+ };\r
+\r
+ class ElevateBrightnessStrategy : public BrightnessChangeStrategy\r
+ {\r
+ public:\r
+ void ApplyChange(BrightnessControlView *view, UISlider *slider, uint8_t value) override\r
+ {\r
+ // Implement the logic similar to the BRIGHTNESSEVATED case\r
+ uint8_t newBrightnessValue = slider->GetValue() + BRIGHTNESS_CHANGE;\r
+ if (newBrightnessValue > BRIGHTNESS_MAX)\r
+ {\r
+ newBrightnessValue = BRIGHTNESS_MAX;\r
+ }\r
+\r
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
+ if (display_api->set_brightness(newBrightnessValue) != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ElevateBrightness: set_brightness fail!");\r
+ }\r
+ else\r
+ {\r
+ slider->SetValue(newBrightnessValue);\r
+ }\r
+ }\r
+ };\r
+\r
+ class DragBrightnessStrategy : public BrightnessChangeStrategy\r
+ {\r
+ public:\r
+ void ApplyChange(BrightnessControlView *view, UISlider *slider, uint8_t value) override\r
+ {\r
+ // Implement the logic similar to the BRIGHTNESSDRAG case\r
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
+ // 更新进度条的显示:\r
+ slider->SetValue(value);\r
+ if (display_api->set_brightness(value) != ERRCODE_SUCC)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChangeBrightness: set_brightness fail!");\r
+ return;\r
+ }\r
+ }\r
+ };\r
+ /* -------------------------------------------------------------------------- */\r
+ static BrightnessSliderEventListener *g_pBrightnessSliderEventListener{nullptr};\r
+ BrightnessSliderEventListener::BrightnessSliderEventListener()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::BrightnessSliderEventListener");\r
+ // 步骤 3: 创建一个映射表将状态映射到策略\r
+ strategyMap[BRIGHTNESSLOWERS] = std::make_shared<LowerBrightnessStrategy>();\r
+ strategyMap[BRIGHTNESSEVATED] = std::make_shared<ElevateBrightnessStrategy>();\r
+ strategyMap[BRIGHTNESSDRAG] = std::make_shared<DragBrightnessStrategy>();\r
+ g_pBrightnessSliderEventListener = this;\r
+ }\r
+\r
+ BrightnessSliderEventListener::~BrightnessSliderEventListener()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::~BrightnessSliderEventListener");\r
+ g_pBrightnessSliderEventListener = nullptr;\r
+ }\r
+\r
+ BrightnessSliderEventListener *BrightnessSliderEventListener::GetInstance(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::GetInstance");\r
+ return g_pBrightnessSliderEventListener;\r
+ }\r
+\r
+ // 步骤 4: 使用映射表简化 ChangeBrightness\r
+ void BrightnessSliderEventListener::ChangeBrightness(uint8_t status, uint8_t value)\r
+ {\r
+ auto it = strategyMap.find(status);\r
+ if (it != strategyMap.end())\r
+ {\r
+ // 确保 BrightnessControlView 和 UISlider 都不为 nullptr\r
+ BrightnessControlView *view = BrightnessControlView::GetInstance();\r
+ UISlider *slider = view ? view->GetBrightnessControlViewSlider() : nullptr;\r
+ if (view && slider)\r
+ {\r
+ it->second->ApplyChange(view, slider, value);\r
+ }\r
+ }\r
+ }\r
+\r
+ /// @brief 当滑动条被拖动或点击时调用\r
+ /// @param value 滑块的当前值。\r
+ void BrightnessSliderEventListener::OnChange(int32_t value)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnChange %d", value);\r
+ ChangeBrightness(BRIGHTNESSDRAG, value);\r
+ ConfigModel::GetInstance()->SetBrightness(value);\r
+ }\r
+\r
+ /// @brief 当滑动条被释放时调用\r
+ /// @param value 滑块的当前值。\r
+ void BrightnessSliderEventListener::OnRelease(int32_t value)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnRelease %d", value);\r
+ ChangeBrightness(BRIGHTNESSDRAG, value);\r
+ ConfigModel::GetInstance()->SetBrightness(value);\r
+ }\r
+\r
+ bool BrightnessSliderEventListener::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ UNUSED(view);\r
+ return true;\r
+ }\r
+ bool BrightnessSliderEventListener::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ UNUSED(view);\r
+ return true;\r
+ }\r
+\r
+ bool BrightnessSliderEventListener::OnRotateEnd(UIView& view, const RotateEvent& event)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnRotateEnd %d", value);\r
+ ui_api_vibrate_once_func();//受设置中震动强度控制\r
+ return true;\r
+ }\r
+}\r
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-12 20:11:04
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-07-22 12:00:13
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
+ */
+#include "displaybrightness/include/DisplayBrightnessModel.h"
+#include "displaybrightness/include/DisplayBrightnessPresenter.h"
+#include "brightnesslevel/include/BrightnessLevelView.h"
+#include "wearable_log.h"
+#include "ConfigModel.h"
+#include "ConfigModelC.h"
+#include "custom_runtime.h"
+
+namespace OHOS
+{
+
+ DisplayBrightnessModel::DisplayBrightnessModel() {}
+
+ DisplayBrightnessModel::~DisplayBrightnessModel() {}
+
+ DisplayBrightnessModel *DisplayBrightnessModel::GetInstance(void)
+ {
+ static DisplayBrightnessModel instance;
+ return &instance;
+ }
+
+ // 更新抬腕亮屏按钮状态
+ bool DisplayBrightnessModel::UpdateRaiseToBrightnessCheckBoxButtonStatus(void)
+ {
+ DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
+ if (displayBrightnessPresent == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail");
+ return false;
+ }
+ bool t_value = mmi_flip_wrist_switch_get();
+ if(uapi_sleep_mode_flag_get())
+ {
+ t_value = false;
+ }
+ displayBrightnessPresent->SetRaiseToBrightnessState(t_value);
+ return true;
+ }
+
+ // 更新亮屏时长按钮选中状态
+ bool DisplayBrightnessModel::UpdateScreenDurationRadioButtonSlectStatus(void)
+ {
+ DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
+ if (displayBrightnessPresent == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail");
+ return false;
+ }
+ displayBrightnessPresent->SetScreenDurationRadioButtonSelectStatus(GetScreenDurationTime());
+ return true;
+ }
+
+ // 更新选择的亮屏时长标签内容
+ bool DisplayBrightnessModel::UpdateSelectScreenDurationLabel(void)
+ {
+ DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
+ if (displayBrightnessPresent == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail");
+ return false;
+ }
+ displayBrightnessPresent->SetSelectScreenDurationLabel(GetScreenDurationTime());
+ // UpdateRaiseToBrightnessCheckBoxButtonStatus();
+ UpdateScreenDurationRadioButtonSlectStatus();
+ return true;
+ }
+
+ //更新亮度条的亮度值值
+ bool DisplayBrightnessModel::UpdateBrightnessValueOfSlider(void)
+ {
+ BrightnessLevelView *p_BrightnessLevelView= BrightnessLevelView::GetInstance();
+ if (p_BrightnessLevelView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessLevelView::GetInstance fail!!");
+ return false;
+ }
+ UISlider *slider = p_BrightnessLevelView->GetBrightnessControlView()->GetBrightnessControlViewSlider();
+ if (slider == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "slider is nullptr!!");
+ return false;
+ }
+ uint8_t value = ConfigModel::GetInstance()->GetBrightness();
+ slider->SetValue(value);
+ return true;
+ }
+
+ /// @brief 保存设置的亮屏时间,单位ms
+ /// @param time
+ void DisplayBrightnessModel::SetScreenDurationTime(unsigned int time)
+ {
+ ConfigModel::GetInstance()->SetScreenDuration(time);
+ }
+
+ // 获取亮屏时长,单位ms
+ unsigned int DisplayBrightnessModel::GetScreenDurationTime(void)
+ {
+ return ConfigModel::GetInstance()->GetScreenDuration();
+ }
+}
--- /dev/null
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-07-22 16:37:02\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp\r
+ */\r
+#include "AppViewIDs.h"\r
+#include "UiConfig.h"\r
+#include "components/ui_label_ext.h"\r
+#include "ui_resource_string.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "string.h"\r
+#include "displaybrightness/include/DisplayBrightnessPresenter.h"\r
+#include "cat1_ctl.h"\r
+#include "displaybrightness/include/DisplayBrightnessModel.h"\r
+#include "power_display_service.h"\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
+#include "map"\r
+#include "iostream"\r
+#include "string"\r
+#include "ConfigModel.h"\r
+#include "ConfigModelC.h"\r
+#include "custom_runtime.h"\r
+\r
+#include "NativeRegisterManager.h"\r
+\r
+namespace OHOS\r
+{\r
+ REGIST_SLICE(VIEW_DISPLAY_BRIGHTNESS, DisplayBrightnessView, DisplayBrightnessPresenter);\r
+ // 当前Presenter属性实例化的内存指针\r
+ static DisplayBrightnessPresenter *g_pDisplayBrightnessPresenter = nullptr;\r
+\r
+ DisplayBrightnessPresenter::DisplayBrightnessPresenter()\r
+ {\r
+\r
+ g_pDisplayBrightnessPresenter = this;\r
+ }\r
+\r
+ DisplayBrightnessPresenter::~DisplayBrightnessPresenter()\r
+ {\r
+\r
+ g_pDisplayBrightnessPresenter = nullptr;\r
+ }\r
+\r
+ DisplayBrightnessPresenter *DisplayBrightnessPresenter::GetInstance()\r
+ {\r
+\r
+ return g_pDisplayBrightnessPresenter;\r
+ }\r
+\r
+ /// @brief 设置抬腕亮屏状态\r
+ /// @param value\r
+ void DisplayBrightnessPresenter::SetRaiseToBrightnessState(bool value)\r
+ {\r
+ DisplayBrightnessView *displayBrightnessView = DisplayBrightnessView::GetInstance();\r
+ if (displayBrightnessView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetRaiseToBrightnessState displayBrightnessView GetInstance fail");\r
+ return;\r
+ }\r
+ displayBrightnessView->SetRaiseToBrightnessCheckBoxButtonState(value != false ? UICheckBox::UICheckBoxState::SELECTED : UICheckBox::UICheckBoxState::UNSELECTED);\r
+ }\r
+\r
+ /// @brief 根据value值设置哪个按钮被选中\r
+ /// @param value\r
+ void DisplayBrightnessPresenter::SetScreenDurationRadioButtonSelectStatus(uint32_t value)\r
+ {\r
+ ScreenDurationView *p_ScreenDurationView = ScreenDurationView::GetInstance();\r
+ if (p_ScreenDurationView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView GetInstance fail");\r
+ return;\r
+ }\r
+\r
+ // 映射表将value映射到特定的单选按钮\r
+ const std::map<uint32_t, ScreenDurationRadioButton> radioButtonMap = {\r
+ {SCREENDURATION_FIVE, ScreenDurationRadioButton1},\r
+ {SCREENDURATION_TEN, ScreenDurationRadioButton2},\r
+ {SCREENDURATION_FIFTEENTH, ScreenDurationRadioButton3},\r
+ {SCREENDURATION_THIRTY, ScreenDurationRadioButton4},\r
+ {SCREENDURATION_SIXTY, ScreenDurationRadioButton5},\r
+ {SCREENDURATION_THREE_HUNDRED, ScreenDurationRadioButton6},\r
+ };\r
+\r
+ auto iter = radioButtonMap.find(value);\r
+ if (iter != radioButtonMap.end())\r
+ {\r
+ p_ScreenDurationView->SetRadioButtonSelectStatus(iter->second);\r
+ }\r
+ else\r
+ {\r
+ // 处理未知值\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unexpected duration value");\r
+ }\r
+ }\r
+\r
+ /*\r
+ * @brief 根据value值出设置选择的亮屏时长内容\r
+ */\r
+ void DisplayBrightnessPresenter::SetSelectScreenDurationLabel(uint32_t value)\r
+ {\r
+ DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+ if (p_DisplayBrightnessView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView GetInstance fail");\r
+ return;\r
+ }\r
+\r
+ if (p_DisplayBrightnessView->GetSelectScreenDurationLabel() == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_DisplayBrightnessView->GetSelectScreenDurationLabel() is nullptr!");\r
+ return;\r
+ }\r
+\r
+ const std::map<uint32_t, int16_t> durationMap = {\r
+ {SCREENDURATION_FIVE, STR_5_SECONDS},\r
+ {SCREENDURATION_TEN, STR_10_SECONDS},\r
+ {SCREENDURATION_FIFTEENTH, STR_15_SECONDS},\r
+ {SCREENDURATION_THIRTY, STR_30_SECONDS},\r
+ {SCREENDURATION_SIXTY, STR_60_SECONDS},\r
+ {SCREENDURATION_THREE_HUNDRED, STR_300_SECONDS}};\r
+\r
+ auto iter = durationMap.find(value);\r
+ if (iter != durationMap.end())\r
+ {\r
+ p_DisplayBrightnessView->GetSelectScreenDurationLabel()->SetTextId(iter->second);\r
+ }\r
+ else\r
+ {\r
+ // Handle unexpected value\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Unexpected duration value");\r
+ }\r
+\r
+ p_DisplayBrightnessView->GetSelectScreenDurationLabel()->Invalidate();\r
+ return;\r
+ }\r
+\r
+ void DisplayBrightnessPresenter::OnStart()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnStart");\r
+ Presenter<DisplayBrightnessView>::OnStart();\r
+ }\r
+\r
+ void DisplayBrightnessPresenter::OnPause(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnPause");\r
+ Presenter<DisplayBrightnessView>::OnPause();\r
+ }\r
+\r
+ void DisplayBrightnessPresenter::OnResume(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnResume");\r
+ Presenter<DisplayBrightnessView>::OnResume();\r
+ }\r
+\r
+ void DisplayBrightnessPresenter::OnStop(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnStop");\r
+ Presenter<DisplayBrightnessView>::OnStop();\r
+ }\r
+\r
+ bool DisplayBrightnessPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnClick");\r
+ DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+ if (p_DisplayBrightnessView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!!");\r
+ return false;\r
+ }\r
+ if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0)\r
+ {\r
+ if(uapi_sleep_mode_flag_get())\r
+ {\r
+ return false;\r
+ }\r
+ NativeAbility::GetInstance().EnterSlice(VIEW_BRIGHTNESSLEVEL); /*切换到亮度调节slice*/\r
+ }\r
+ else if (strcmp(view.GetViewId(), SCREENDURATIONBUTTON_VIEWID) == 0)\r
+ {\r
+ p_DisplayBrightnessView->ChangeView(DISPLAYBRIGHTNESSVIEW, SCREENDURATIONVIEW); // 屏幕与亮度视图切换到亮屏时长视图\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool DisplayBrightnessPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnDrag");\r
+ UNUSED(view);\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+ {\r
+ DisplayBrightnessPresenter::X_DRAG_FLAG = true;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool DisplayBrightnessPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnDragEnd");\r
+ DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+ if (p_DisplayBrightnessView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView GetInstance fail");\r
+ return false;\r
+ }\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && DisplayBrightnessPresenter::X_DRAG_FLAG)\r
+ {\r
+ if (strcmp(view.GetViewId(), SCREENDURATIONSCROLLVIEW) == 0)\r
+ {\r
+ p_DisplayBrightnessView->ChangeView(SCREENDURATIONVIEW, DISPLAYBRIGHTNESSVIEW);\r
+ }\r
+ else if (strcmp(view.GetViewId(), DISPLAY_BRIGHTNESS_VIEW) == 0)\r
+ {\r
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ }\r
+ DisplayBrightnessPresenter::X_DRAG_FLAG = false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*处理抬腕亮屏开关*/\r
+ bool DisplayBrightnessPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
+ {\r
+ switch (state)\r
+ {\r
+ case UICheckBox::SELECTED:\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched on!");\r
+ uapi_take_to_wake(WRIST_RAISE_TO_WAKE_ENABLED);\r
+ mmi_flip_wrist_switch_set(true);\r
+ break;\r
+ case UICheckBox::UNSELECTED:\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched off!");\r
+ uapi_take_to_wake(WRIST_RAISE_TO_WAKE_DISENABLED);\r
+ mmi_flip_wrist_switch_set(false);\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ bool DisplayBrightnessPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnKeyAct");\r
+ unsigned short keyID = event.GetKeyId();\r
+ unsigned short keyState = event.GetState();\r
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
+ {\r
+ NativeAbility::GetInstance().Back();\r
+ }\r
+ return true;\r
+ }\r
+\r
+ /*\r
+ * @brief 用于处理亮屏时长单选按钮的状态改变.根据用户选择的单选按钮,更新屏幕持续显示时间\r
+ */\r
+ bool ScreenDurationRadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationRadiobuttonOnChangeListener::OnChange");\r
+ if (state != UICheckBox::SELECTED)\r
+ {\r
+ return true; // 如果不是选中状态,无需处理\r
+ }\r
+\r
+ DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+ if (p_DisplayBrightnessView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!");\r
+ return false;\r
+ }\r
+\r
+ ScreenDurationView *p_ScreenDurationView = p_DisplayBrightnessView->GetScreenDurationView();\r
+ if (p_ScreenDurationView == nullptr)\r
+ {\r
+ return false; // 相关视图不存在,直接返回\r
+ }\r
+\r
+ // 关联单选按钮视图和对应的持续时间\r
+ std::map<UIView *, uint32_t> durationMap = {\r
+ {p_ScreenDurationView->GetRadioButton(ScreenDurationRadioButton1), SCREENDURATION_FIVE},\r
+ {p_ScreenDurationView->GetRadioButton(ScreenDurationRadioButton2), SCREENDURATION_TEN},\r
+ {p_ScreenDurationView->GetRadioButton(ScreenDurationRadioButton3), SCREENDURATION_FIFTEENTH},\r
+ {p_ScreenDurationView->GetRadioButton(ScreenDurationRadioButton4), SCREENDURATION_THIRTY},\r
+ {p_ScreenDurationView->GetRadioButton(ScreenDurationRadioButton5), SCREENDURATION_SIXTY},\r
+ {p_ScreenDurationView->GetRadioButton(ScreenDurationRadioButton6), SCREENDURATION_THREE_HUNDRED}};\r
+\r
+ auto it = durationMap.find((UIView *)m_view);\r
+ if (it != durationMap.end())\r
+ {\r
+ uapi_setScreenDuration(it->second);\r
+ DisplayBrightnessModel::GetInstance()->SetScreenDurationTime(it->second);\r
+ // 此处可以根据需要,添加对 WEARABLE_LOGE 的调用,打印日志\r
+ DisplayBrightnessPresenter::GetInstance()->SetSelectScreenDurationLabel(it->second);\r
+ }\r
+ else\r
+ {\r
+ // 如果没有找到对应的映射项,可能是逻辑错误或数据不一致\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "No matching screen duration found for selected radiobutton.");\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ bool ScreenDurationRadiobuttonOnChangeListener::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationRadiobuttonOnChangeListener::OnClick");\r
+ UIButton *button = dynamic_cast<UIButton *>(&view);\r
+ if (button == nullptr)\r
+ {\r
+ return false;\r
+ }\r
+\r
+ DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+ if (p_DisplayBrightnessView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!");\r
+ return false;\r
+ }\r
+\r
+ ScreenDurationView *p_ScreenDurationView = p_DisplayBrightnessView->GetScreenDurationView();\r
+ if (p_ScreenDurationView == nullptr)\r
+ {\r
+ return false; // 相关视图不存在,直接返回\r
+ }\r
+ // 关联单选按钮视图和对应的持续时间\r
+ std::map<UIButton *, uint8_t> durationMap = {\r
+ {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton1), ScreenDurationRadioButton1},\r
+ {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton2), ScreenDurationRadioButton2},\r
+ {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton3), ScreenDurationRadioButton3},\r
+ {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton4), ScreenDurationRadioButton4},\r
+ {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton5), ScreenDurationRadioButton5},\r
+ {p_ScreenDurationView->GetScreenDurationButton(ScreenDurationRadioButton6), ScreenDurationRadioButton6}};\r
+\r
+ auto it = durationMap.find((UIButton *)button);\r
+ if (it != durationMap.end())\r
+ {\r
+ p_ScreenDurationView->SetRadioButtonSelectStatus(it->second);\r
+ }\r
+ else\r
+ {\r
+ // 如果没有找到对应的映射项,可能是逻辑错误或数据不一致\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Logic error or data inconsistency.");\r
+ }\r
+\r
+ return true;\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "displaybrightness/include/DisplayBrightnessView.h"\r
+#include "displaybrightness/include/DisplayBrightnessModel.h"\r
+#include "wearable_log.h"\r
+#include "ConfigModel.h"\r
+#include "ConfigModelC.h"\r
+#include "ui_resource_string.h"\r
+#include <UiConfig.h>\r
+#include "custom_runtime.h"\r
+\r
+namespace OHOS\r
+{\r
+ static DisplayBrightnessView *g_pDisplayBrightnessView{nullptr};\r
+\r
+ DisplayBrightnessView::DisplayBrightnessView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessView");\r
+ g_pDisplayBrightnessView = this;\r
+ }\r
+\r
+ DisplayBrightnessView::~DisplayBrightnessView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::~DisplayBrightnessView");\r
+ ClearAll();\r
+ g_pDisplayBrightnessView = nullptr;\r
+ }\r
+\r
+ DisplayBrightnessView *DisplayBrightnessView::GetInstance()\r
+ {\r
+ return g_pDisplayBrightnessView;\r
+ }\r
+\r
+ void DisplayBrightnessView::ClearAll(void)\r
+ {\r
+ if (initViewStatus == true)\r
+ {\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->RemoveAll();\r
+\r
+ delete DisplayBrightnessTitleLabel;\r
+ DisplayBrightnessTitleLabel = nullptr;\r
+\r
+ delete BringhtnessControlButton;\r
+ BringhtnessControlButton = nullptr;\r
+\r
+ delete ScreenDurationButton;\r
+ ScreenDurationButton = nullptr;\r
+\r
+ delete BringhtnessControlLabel;\r
+ BringhtnessControlLabel = nullptr;\r
+\r
+ delete ScreenDurationLabel;\r
+ ScreenDurationLabel = nullptr;\r
+\r
+ delete selectScreenDurationLabel;\r
+ selectScreenDurationLabel = nullptr;\r
+\r
+ delete RaiseToBrightnessLabel;\r
+ RaiseToBrightnessLabel = nullptr;\r
+\r
+ for (int i = 0; i < 2; i++)\r
+ {\r
+ delete NextImage[i];\r
+ NextImage[i] = nullptr;\r
+ }\r
+\r
+ delete RaiseToBrightnessImage;\r
+ RaiseToBrightnessImage = nullptr;\r
+\r
+ delete RaiseToBrightnessCheckBoxButton;\r
+ RaiseToBrightnessCheckBoxButton = nullptr;\r
+\r
+ delete DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW];\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = nullptr;\r
+ }\r
+ if (p_ScreenDurationView != nullptr)\r
+ {\r
+ delete p_ScreenDurationView;\r
+ p_ScreenDurationView = nullptr;\r
+ }\r
+ for (int i = DISPLAYBRIGHTNESSVIEW; i < MAX_DISPLAYBRIGHTNESSVIEWID; i++)\r
+ {\r
+ DisplayBrightnessScrollView[i] = nullptr;\r
+ }\r
+ }\r
+\r
+ // 显示与亮度视图scrollView初始化\r
+ bool DisplayBrightnessView::SetUpScrollView(void)\r
+ {\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = new UIScrollView();\r
+ if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] new fail!");\r
+ return false;\r
+ }\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetViewId(DISPLAY_BRIGHTNESS_VIEW);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetScrollBlankSize(75);\r
+ // DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetReboundSize(35);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDirection(1);\r
+ // DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetMaxScrollDistance(1000);\r
+ // DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetThrowDrag(true);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->RequestFocus();\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetRotateFactor(1.0);\r
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
+ if (draglistener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::draglistener can not be nullptr!");\r
+ return false;\r
+ }\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetOnDragListener(draglistener);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetTouchable(true);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDraggable(true);\r
+ return true;\r
+ }\r
+\r
+ /// @brief 设置显示与亮度标题\r
+ /// @param void\r
+ /// @return true 设置成功,false 失败\r
+ bool DisplayBrightnessView::SetTheTitle(void)\r
+ {\r
+ DisplayBrightnessTitleLabel = new UILabelExt();\r
+ if (DisplayBrightnessTitleLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessTitleLabel new fail!");\r
+ return false;\r
+ }\r
+ DisplayBrightnessTitleLabel->SetPosition(83, 50, 300, 35);\r
+ DisplayBrightnessTitleLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ DisplayBrightnessTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+ DisplayBrightnessTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+ DisplayBrightnessTitleLabel->SetTextId(STR_SCREEN_AND_BRIGHTNESS); /*屏幕与亮度*/\r
+ DisplayBrightnessTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+ DisplayBrightnessTitleLabel->SetRollSpeed(23);\r
+ DisplayBrightnessTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ DisplayBrightnessTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ return true;\r
+ }\r
+\r
+ /// @brief 设置按钮\r
+ /// @param button\r
+ /// @return true 设置成功,false 失败\r
+ UIButton *DisplayBrightnessView::SetTheButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener)\r
+ {\r
+ UIButton *button = new UIButton();\r
+ if (button == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " DisplayBrightnessView::SetTheButton: button new fail!");\r
+ return nullptr;\r
+ }\r
+ button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
+ button->SetViewId(buttonconfig.ViewId);\r
+ button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ button->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+ button->SetOnClickListener(clickListener);\r
+ return button;\r
+ }\r
+\r
+ /// @brief 初始化显示与亮度视图按钮\r
+ /// @param void\r
+ /// @return true 设置成功,false 失败\r
+ bool DisplayBrightnessView::InitDisplayBrightnessViewButton(void)\r
+ {\r
+ /* -------------------------------------------------------------------------- */\r
+ ButtonConfig buttonconfig;\r
+ buttonconfig.x = 43;\r
+ buttonconfig.y = 120;\r
+ buttonconfig.w = 380;\r
+ buttonconfig.h = 100;\r
+ buttonconfig.ViewId = BRINGHTNESSCONTROLBUTTON_VIEW;\r
+ BringhtnessControlButton = SetTheButton(buttonconfig, presenter_);\r
+ if (nullptr == BringhtnessControlButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::BringhtnessControlButton new fail!");\r
+ return false;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ buttonconfig.y = 240;\r
+ buttonconfig.ViewId = SCREENDURATIONBUTTON_VIEWID;\r
+ ScreenDurationButton = SetTheButton(buttonconfig, presenter_);\r
+ if (nullptr == ScreenDurationButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ScreenDurationButton new fail!");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ // 设置标签LabelConfig &labelconfig\r
+ UILabelExt *DisplayBrightnessView::SetUpLabel(LabelConfig &labelconfig)\r
+ {\r
+ UILabelExt *label = new UILabelExt();\r
+ if (label == nullptr)\r
+ {\r
+ return nullptr;\r
+ }\r
+ label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
+ label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); // 字体大小\r
+ label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); // 字体行高\r
+ label->SetTextId(labelconfig.textId);\r
+ label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
+ label->SetRollSpeed(23);\r
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+ return label;\r
+ }\r
+\r
+ /// @brief 初始化显示与亮度标签\r
+ /// @param void\r
+ /// @return true 设置成功,false 失败\r
+ bool DisplayBrightnessView::InitDisplayBrightnessViewLabel(void)\r
+ {\r
+ LabelConfig labelconfig = {\r
+ .left = 90,\r
+ .top = 153,\r
+ .width = 250,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .textId = STR_BRIGHTNESS_ADJUSTMENT, /*亮度调节*/\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+ };\r
+ BringhtnessControlLabel = SetUpLabel(labelconfig);\r
+ if (BringhtnessControlLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::BringhtnessControlLabel new fail!");\r
+ return false;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ labelconfig.top = 273;\r
+ labelconfig.width = 180;\r
+ labelconfig.textId = STR_SCREEN_ON_DURATION; /*亮屏时长*/\r
+ ScreenDurationLabel = SetUpLabel(labelconfig);\r
+ if (ScreenDurationLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ScreenDurationLabel new fail!");\r
+ return false;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ labelconfig.top = 393;\r
+ labelconfig.textId = STR_RAISE_TO_WAKE; /*抬腕亮屏*/\r
+ RaiseToBrightnessLabel = SetUpLabel(labelconfig);\r
+ if (RaiseToBrightnessLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::RaiseToBrightnessLabel new fail!");\r
+ return false;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ labelconfig = {\r
+ .left = 291,\r
+ .top = 273,\r
+ .width = 65,\r
+ .height = 40,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .textId = 0,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+ };\r
+ selectScreenDurationLabel = SetUpLabel(labelconfig);\r
+ if (selectScreenDurationLabel == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::selectScreenDurationLabel new fail!");\r
+ return false;\r
+ }\r
+ selectScreenDurationLabel->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));\r
+ /* -------------------------------------------------------------------------- */\r
+ return true;\r
+ }\r
+\r
+ // 设置图片\r
+ UIImageView *DisplayBrightnessView::SetUpImageView(ImageConfig &imageconfig)\r
+ {\r
+ UIImageView *Image = new UIImageView();\r
+ if (Image == nullptr)\r
+ {\r
+ return nullptr;\r
+ }\r
+ Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h);\r
+ Image->SetSrc(imageconfig.ImageSrc);\r
+ return Image;\r
+ }\r
+\r
+ /// @brief 初始化显示与亮度图片\r
+ /// @param void\r
+ /// @return true 设置成功,false 失败\r
+ bool DisplayBrightnessView::InitDisplayBrightnessViewImage(void)\r
+ {\r
+ ImageConfig imageconfig = {\r
+ .x = 369,\r
+ .y = 157,\r
+ .w = 14,\r
+ .h = 26,\r
+ .ImageSrc = PNG_SETTING_NEXT_IMAGE,\r
+ };\r
+ NextImage[0] = SetUpImageView(imageconfig);\r
+ if (nullptr == NextImage[0])\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::NextImage[0] is nullptr!");\r
+ return false;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ imageconfig.y = 277;\r
+ NextImage[1] = SetUpImageView(imageconfig);\r
+ if (nullptr == NextImage[1])\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::NextImage[1] is nullptr!");\r
+ return false;\r
+ }\r
+ /* -------------------------------------------------------------------------- */\r
+ imageconfig = {\r
+ .x = 43,\r
+ .y = 360,\r
+ .w = 380,\r
+ .h = 100,\r
+ .ImageSrc = PNG_SETTING_BACKGROUND_IMAGE,\r
+ };\r
+ RaiseToBrightnessImage = SetUpImageView(imageconfig);\r
+ if (nullptr == RaiseToBrightnessImage)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::RaiseToBrightnessImage is nullptr!");\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ UICheckBox *DisplayBrightnessView::SetUpCheckBox(CheckBoxConfig &checkboxconfig) // 设置复选框\r
+ {\r
+ UICheckBox *checkbox = new UICheckBox();\r
+ if (nullptr == checkbox)\r
+ {\r
+ return nullptr;\r
+ }\r
+ checkbox->SetPosition(checkboxconfig.x, checkboxconfig.y, checkboxconfig.w, checkboxconfig.h);\r
+ checkbox->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+ checkbox->SetViewId(checkboxconfig.ViewId);\r
+ checkbox->SetImages(checkboxconfig.select, checkboxconfig.unselect);\r
+ return checkbox;\r
+ }\r
+\r
+ /// @brief 初始化抬腕亮屏checkbox\r
+ /// @param void\r
+ /// @return true 设置成功,false 失败\r
+ bool DisplayBrightnessView::InitDisplayBrightnessViewCheckBox(void)\r
+ {\r
+ CheckBoxConfig checkboxconfig = {\r
+ .x = 298,\r
+ .y = 385,\r
+ .w = 100,\r
+ .h = 50,\r
+ .ViewId = RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID,\r
+ .select = PNG_TOGGLEBUTTON_ON_IMAGE,\r
+ .unselect = PNG_TOGGLEBUTTON_OFF_IMAGE,\r
+ };\r
+ RaiseToBrightnessCheckBoxButton = SetUpCheckBox(checkboxconfig);\r
+ if (nullptr == RaiseToBrightnessCheckBoxButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::RaiseToBrightnessCheckBoxButton is nullptr");\r
+ return false;\r
+ }\r
+ RaiseToBrightnessCheckBoxButton->SetOnChangeListener(presenter_);\r
+ return true;\r
+ }\r
+\r
+ // 显示与亮度视图初始化\r
+ void DisplayBrightnessView::DisplayAndBrightnessViewInit()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayAndBrightnessViewInit");\r
+\r
+ if (!SetUpScrollView() || !SetTheTitle() || !InitDisplayBrightnessViewButton() || !InitDisplayBrightnessViewLabel() ||\r
+ !InitDisplayBrightnessViewImage() || !InitDisplayBrightnessViewCheckBox())\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayAndBrightnessViewInit fail!!");\r
+ return;\r
+ }\r
+ DisplayBrightnessModel::GetInstance()->UpdateRaiseToBrightnessCheckBoxButtonStatus();\r
+ DisplayBrightnessModel::GetInstance()->UpdateSelectScreenDurationLabel();\r
+ }\r
+\r
+ void DisplayBrightnessView::OnStart()\r
+ {\r
+ View<DisplayBrightnessPresenter>::OnStart();\r
+ if (!initViewStatus)\r
+ {\r
+ DisplayAndBrightnessViewInit();\r
+ initViewStatus = true;\r
+ }\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DisplayBrightnessPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+\r
+ if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(DisplayBrightnessTitleLabel);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlButton);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationButton);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlLabel);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationLabel);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(selectScreenDurationLabel);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[0]);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[1]);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessImage);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessLabel);\r
+ DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessCheckBoxButton);\r
+\r
+ if (uapi_sleep_mode_flag_get())\r
+ {\r
+ RaiseToBrightnessCheckBoxButton->SetTouchable(false);\r
+ }\r
+ else\r
+ {\r
+ RaiseToBrightnessCheckBoxButton->SetTouchable(true);\r
+ }\r
+\r
+ RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]);\r
+ }\r
+\r
+\r
+\r
+\r
+ /// @brief 设置抬腕亮屏按钮状态\r
+ /// @param state\r
+ void DisplayBrightnessView::SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState state)\r
+ {\r
+ RaiseToBrightnessCheckBoxButton->SetState(state);\r
+ }\r
+\r
+ ScreenDurationView *DisplayBrightnessView::GetScreenDurationView(void)\r
+ {\r
+ return p_ScreenDurationView;\r
+ }\r
+\r
+ UILabelExt *DisplayBrightnessView::GetSelectScreenDurationLabel(void)\r
+ {\r
+ return selectScreenDurationLabel;\r
+ }\r
+\r
+ // 1.切换到“屏幕与亮度”视图\r
+ bool DisplayBrightnessView::ChangeDisplayBrightnessView(int16_t thisView)\r
+ {\r
+ if (DisplayBrightnessScrollView[thisView] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeDisplayBrightnessView");\r
+ RootView::GetInstance()->Add(DisplayBrightnessScrollView[thisView]);\r
+ }\r
+ return true;\r
+ }\r
+\r
+ // 2.切换到“亮屏时长”视图\r
+ bool DisplayBrightnessView::ChangeScreenDurationView(int16_t thisView)\r
+ {\r
+ if (DisplayBrightnessScrollView[thisView] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeScreenDurationView");\r
+ p_ScreenDurationView = new ScreenDurationView();\r
+ if (p_ScreenDurationView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: new scrollView[%d] fail", thisView);\r
+ return false;\r
+ }\r
+ DisplayBrightnessScrollView[thisView] = p_ScreenDurationView->ScreenDurationViewInit();\r
+ RootView::GetInstance()->Add(DisplayBrightnessScrollView[thisView]);\r
+ }\r
+ return true;\r
+ }\r
+\r
+ // 1.DisplayBrightnessViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
+ struct DisplayBrightnessViewMapper\r
+ {\r
+ const int16_t viewId;\r
+ bool (DisplayBrightnessView::*func)(int16_t thisView);\r
+ };\r
+\r
+ // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与DisplayBrightnessViewMapper类中的特定成员函数指针进行了绑定。\r
+ static const DisplayBrightnessViewMapper ViewMapper[] = {\r
+ {DISPLAYBRIGHTNESSVIEW, &DisplayBrightnessView::ChangeDisplayBrightnessView},\r
+ {SCREENDURATIONVIEW, &DisplayBrightnessView::ChangeScreenDurationView},\r
+ };\r
+\r
+ // 3.根据传入的interface参数执行相应视图ID关联的成员函数。\r
+ bool DisplayBrightnessView::ClickFunc(int16_t interface)\r
+ {\r
+ int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]);\r
+ for (int i = 0; i < funcSize; i++)\r
+ {\r
+ if (interface == ViewMapper[i].viewId)\r
+ {\r
+ bool jug = (this->*(ViewMapper[i].func))(interface);\r
+ if (jug == false)\r
+ {\r
+ return false;\r
+ }\r
+ return true;\r
+ }\r
+ }\r
+ return false;\r
+ }\r
+\r
+ // 4.切换视图\r
+ void DisplayBrightnessView::ChangeView(int16_t hideView, int16_t showView)\r
+ {\r
+ if (hideView > MAX_DISPLAYBRIGHTNESSVIEWID)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: SystemViewId Overstep ones bounds");\r
+ return;\r
+ }\r
+ DisplayBrightnessScrollView[hideView]->SetVisible(false);\r
+ ClickFunc(showView);\r
+ DisplayBrightnessScrollView[showView]->SetVisible(true);\r
+ Draw();\r
+ }\r
+}
\ No newline at end of file
--- /dev/null
+#include "displaybrightness/include/ScreenDurationView.h"\r
+#include "displaybrightness/include/DisplayBrightnessPresenter.h"\r
+#include "displaybrightness/include/DisplayBrightnessModel.h"\r
+#include "wearable_log.h"\r
+#include "ui_resource_string.h"\r
+#include <UiConfig.h>\r
+namespace OHOS\r
+{\r
+\r
+ static ScreenDurationView *g_pScreenDurationView{nullptr};\r
+\r
+ ScreenDurationView::ScreenDurationView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationView");\r
+ g_pScreenDurationView = this;\r
+ }\r
+\r
+ ScreenDurationView::~ScreenDurationView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::~ScreenDurationView");\r
+ ClearAll();\r
+ g_pScreenDurationView = nullptr;\r
+ }\r
+\r
+ ScreenDurationView *ScreenDurationView::GetInstance()\r
+ {\r
+ return g_pScreenDurationView;\r
+ }\r
+\r
+ void ScreenDurationView::ClearAll(void)\r
+ {\r
+ if (initViewStatus == true)\r
+ {\r
+ if (ScreenDurationScrollView != nullptr)\r
+ {\r
+ ScreenDurationScrollView->RemoveAll();\r
+ if (ScreenDurationTitleLabel != nullptr)\r
+ {\r
+ delete ScreenDurationTitleLabel;\r
+ ScreenDurationTitleLabel = nullptr;\r
+ }\r
+ for (int i = 0; i < DURATIONS; i++)\r
+ {\r
+ if (ScreenDurationLabel[i] != nullptr)\r
+ {\r
+ delete ScreenDurationLabel[i];\r
+ ScreenDurationLabel[i] = nullptr;\r
+ }\r
+ if (ScreenDurationButton[i])\r
+ {\r
+ delete ScreenDurationButton[i];\r
+ ScreenDurationButton[i] = nullptr;\r
+ }\r
+ if (SimplifiedChineseRadioButtonChange[i] != nullptr)\r
+ {\r
+ delete SimplifiedChineseRadioButtonChange[i];\r
+ SimplifiedChineseRadioButtonChange[i] = nullptr;\r
+ }\r
+ if (ScreenDurationRadioButton[i])\r
+ {\r
+ delete ScreenDurationRadioButton[i];\r
+ ScreenDurationRadioButton[i] = nullptr;\r
+ }\r
+ }\r
+ if (ScreenDurationButtonClickListener != nullptr)\r
+ {\r
+ delete ScreenDurationButtonClickListener;\r
+ ScreenDurationButtonClickListener = nullptr;\r
+ }\r
+ delete ScreenDurationScrollView;\r
+ ScreenDurationScrollView = nullptr;\r
+ }\r
+ }\r
+ }\r
+\r
+ // 设置图片\r
+ UIButton *ScreenDurationView::SetUpButtonView(ButtonConfig &buttonConfig)\r
+ {\r
+ UIButton *button = new UIButton();\r
+ if (button == nullptr)\r
+ {\r
+ return nullptr;\r
+ }\r
+ button->SetPosition(buttonConfig.x, buttonConfig.y, buttonConfig.w, buttonConfig.h);\r
+ button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
+\r
+ return button;\r
+ }\r
+\r
+ // 设置标签\r
+ UILabelExt *ScreenDurationView::SetUpLabel(LabelConfig &labelconfig)\r
+ {\r
+ UILabelExt *label = new UILabelExt();\r
+ if (label == nullptr)\r
+ {\r
+ return nullptr;\r
+ }\r
+ label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
+ label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); // 字体大小\r
+ label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); // 字体行高\r
+ label->SetTextId(labelconfig.textId); // 内容\r
+ label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
+ label->SetRollSpeed(23);\r
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+ return label;\r
+ }\r
+\r
+ // 设置单选框\r
+ UIRadioButton *ScreenDurationView::SetUpRadioButton(RadioButtonConfig &radiobuttonconfig)\r
+ {\r
+ UIRadioButton *radiobutton = new UIRadioButton("ScreenDuration");\r
+ if (nullptr == radiobutton)\r
+ {\r
+ return nullptr;\r
+ }\r
+ radiobutton->SetPosition(radiobuttonconfig.x, radiobuttonconfig.y, radiobuttonconfig.w, radiobuttonconfig.h);\r
+ radiobutton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+ radiobutton->SetImages(radiobuttonconfig.select, radiobuttonconfig.unselect);\r
+ return radiobutton;\r
+ }\r
+\r
+ // 亮屏时长视图“scrollView”初始化\r
+ bool ScreenDurationView::SetUpScrollView(void)\r
+ {\r
+ ScreenDurationScrollView = new UIScrollView();\r
+ if (ScreenDurationScrollView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationScrollView new fail!");\r
+ return false;\r
+ }\r
+ ScreenDurationScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ ScreenDurationScrollView->SetViewId(SCREENDURATIONSCROLLVIEW);\r
+ ScreenDurationScrollView->SetScrollBlankSize(75);\r
+ ScreenDurationScrollView->SetReboundSize(35);\r
+ ScreenDurationScrollView->SetDirection(1);\r
+ ScreenDurationScrollView->SetMaxScrollDistance(1000);\r
+ ScreenDurationScrollView->SetThrowDrag(true);\r
+ ScreenDurationScrollView->RequestFocus();\r
+ ScreenDurationScrollView->SetRotateFactor(2);\r
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
+ if (draglistener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::draglistener can not be nullptr!");\r
+ return false;\r
+ }\r
+ ScreenDurationScrollView->SetOnDragListener(draglistener);\r
+ ScreenDurationScrollView->SetTouchable(true);\r
+ ScreenDurationScrollView->SetDraggable(true);\r
+ return true;\r
+ }\r
+\r
+ // 亮屏时长视图“图片”初始化\r
+ bool ScreenDurationView::SetUpScreenDurationViewImageView(void)\r
+ {\r
+ ButtonConfig buttonConfig = {\r
+ .x = 39,\r
+ .y = 120,\r
+ .w = 380,\r
+ .h = 100,\r
+ };\r
+\r
+ ScreenDurationButtonClickListener = static_cast<UIView::OnClickListener *>(new ScreenDurationRadiobuttonOnChangeListener());\r
+\r
+ for (int i = 0; i < DURATIONS; i++)\r
+ {\r
+ buttonConfig.y = 120 + (i * 120);\r
+ ScreenDurationButton[i] = SetUpButtonView(buttonConfig);\r
+ if (ScreenDurationButton[i] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationButton[%d] is nullptr!", i);\r
+ return false;\r
+ }\r
+ ScreenDurationButton[i]->SetOnClickListener(ScreenDurationButtonClickListener);\r
+ }\r
+ return true;\r
+ }\r
+\r
+ // 亮屏时长视图“标签”初始化\r
+ bool ScreenDurationView::SetUpScreenDurationViewLabel(void)\r
+ {\r
+ // 创建ScreenDurationTitleLabel\r
+ LabelConfig labelconfig = {\r
+ .left = 83,\r
+ .top = 50,\r
+ .width = 300,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .textId = STR_SCREEN_ON_DURATION, /*亮屏时长*/\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+ };\r
+\r
+ ScreenDurationTitleLabel = SetUpLabel(labelconfig);\r
+ if (nullptr == ScreenDurationTitleLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::SetUpScreenDurationViewLabel is nullptr!");\r
+ return false;\r
+ }\r
+ ScreenDurationTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+\r
+ // 创建ScreenDurationLabel\r
+ labelconfig = {\r
+ .left = 103,\r
+ .top = 153,\r
+ .width = 210,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .textId = STR_SCREEN_ON_DURATION,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
+ };\r
+\r
+ // const char *durations[DURATIONS] = {"5秒", "10秒", "15秒", "30秒", "60秒", "300秒"};\r
+ UIResourceTextId durations[DURATIONS] = {STR_5_SECONDS, STR_10_SECONDS, STR_15_SECONDS, STR_30_SECONDS, STR_60_SECONDS, STR_300_SECONDS};\r
+\r
+ for (int i = 0; i < DURATIONS; i++)\r
+ {\r
+ labelconfig.top = 153 + (i * 120);\r
+ labelconfig.textId = durations[i];\r
+ ScreenDurationLabel[i] = SetUpLabel(labelconfig);\r
+ if (ScreenDurationLabel[i] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationLabel[%d] is nullptr!", i);\r
+ return false;\r
+ }\r
+ ScreenDurationLabel[i]->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // 亮屏时长视图“单选框”初始化\r
+ bool ScreenDurationView::SetUpScreenDurationViewRadioButton(void)\r
+ {\r
+ RadioButtonConfig radiobuttonconfig = {\r
+ .x = 300,\r
+ .w = 80,\r
+ .h = 80,\r
+ .select = PNG_CHECKBOX_ON_IMAGE,\r
+ .unselect = PNG_CHECKBOX_OFF_IMAGE,\r
+ };\r
+\r
+ int y_positions = 130;\r
+ for (int i = 0; i < DURATIONS; i++)\r
+ {\r
+ radiobuttonconfig.y = y_positions + 120 * i;\r
+ ScreenDurationRadioButton[i] = SetUpRadioButton(radiobuttonconfig);\r
+ if (ScreenDurationRadioButton[i] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
+ return false;\r
+ }\r
+ SimplifiedChineseRadioButtonChange[i] = static_cast<UICheckBox::OnChangeListener *>(new ScreenDurationRadiobuttonOnChangeListener(ScreenDurationRadioButton[i]));\r
+ ScreenDurationRadioButton[i]->SetOnChangeListener(SimplifiedChineseRadioButtonChange[i]);\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // 亮屏时长视图初始化\r
+ UIScrollView *ScreenDurationView::ScreenDurationViewInit(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationViewInit");\r
+ if (!SetUpScrollView() || !SetUpScreenDurationViewImageView() ||\r
+ !SetUpScreenDurationViewLabel() || !SetUpScreenDurationViewRadioButton())\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationViewInit fail!!");\r
+ return nullptr;\r
+ }\r
+\r
+ if (!DisplayBrightnessModel::GetInstance()->UpdateScreenDurationRadioButtonSlectStatus())\r
+ {\r
+ return nullptr;\r
+ }\r
+\r
+ /* ----------------------------------- Add ---------------------------------- */\r
+ ScreenDurationScrollView->Add(ScreenDurationTitleLabel);\r
+ for (int i = 0; i < DURATIONS; i++)\r
+ {\r
+ ScreenDurationScrollView->Add(ScreenDurationButton[i]);\r
+ ScreenDurationScrollView->Add(ScreenDurationLabel[i]);\r
+ ScreenDurationScrollView->Add(ScreenDurationRadioButton[i]);\r
+ }\r
+ initViewStatus = true;\r
+ return ScreenDurationScrollView;\r
+ }\r
+\r
+ // 设置哪个单选按钮被选中\r
+ void ScreenDurationView::SetRadioButtonSelectStatus(int16_t index)\r
+ {\r
+ if (index >= DURATIONS || index < 0)\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (ScreenDurationRadioButton[index] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", index);\r
+ return;\r
+ }\r
+\r
+ for (int i = 0; i < DURATIONS; i++)\r
+ {\r
+ ScreenDurationRadioButton[i]->SetState(i == index ? UICheckBox::SELECTED : UICheckBox::UNSELECTED);\r
+ }\r
+ }\r
+\r
+ UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i)\r
+ {\r
+ if (ScreenDurationRadioButton[i] == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
+ return nullptr;\r
+ }\r
+ return ScreenDurationRadioButton[i];\r
+ }\r
+\r
+ UIButton *ScreenDurationView::GetScreenDurationButton(int16_t i)\r
+ {\r
+ return ScreenDurationButton[i];\r
+ }\r
+}
\ No newline at end of file