From: luozheng <1732036298@qq.com> Date: Mon, 26 Feb 2024 11:49:01 +0000 (+0800) Subject: 屏幕与亮度功能完成,还差开机读取保存的配置的信息,需要实现全局的config类 X-Git-Tag: release_V1.2.70_20241020_135402~1298^2~11 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=4ff55e70deca663df57adf857d34851cf117699f;p=mirrors%2FFD230.git 屏幕与亮度功能完成,还差开机读取保存的配置的信息,需要实现全局的config类 --- diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h index e2458cd53..f69f88b9d 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h @@ -8,8 +8,8 @@ #include "components/ui_image_view.h" namespace OHOS { -#define BRIGHTNESS_MIN 0 -#define BRIGHTNESS_MAX 100 +#define BRIGHTNESS_MIN 51 +#define BRIGHTNESS_MAX 0xff #define BRIGHTNESS_PROGRESS "progress" static const char *BRIGHTNESS_CONTROL_SLIDER = "BrightnessControlViewSlider"; @@ -22,7 +22,9 @@ namespace OHOS static BrightnessControlView *GetInstance(void); UIScrollView *BrightnessControlViewInit(void); void ClearAll(void); - + UISlider *GetBrightnessControlViewSlider(void); + int16_t CurrentBrightnessValue{0}; // 当前亮度值 + void SetScreenBrightnessValue(unsigned char value); private: bool SetUpScrollView(void); bool SetUpSlider(void); diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h index 89fd6f751..a06e95e2a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h @@ -8,7 +8,12 @@ namespace OHOS public: static DisplayBrightnessModel *GetInstance(void); void SetRaiseToBrightnessCheckBoxButtonStatus(bool value); - bool DisplayBrightnessViewAndSubViewComponentsStatusInit(); + bool RaiseToBrightnessCheckBoxButtonStatusInit(void); + void KeepScreenBrightnessValues(unsigned char value); + bool BrightnessControlViewSliderValuesInit(void); + void KeepScreenDurationRadioButtonSlectStatus(unsigned int value); + bool ScreenDurationRadioButtonSlectStatusInit(void); + private: DisplayBrightnessModel(); DisplayBrightnessModel(const DisplayBrightnessModel &); @@ -16,7 +21,9 @@ namespace OHOS virtual ~DisplayBrightnessModel(); private: - bool RaiseToBrightnessCheckBoxButtonState{false}; //抬腕按钮状态 + bool RaiseToBrightnessCheckBoxButtonState{false}; // 抬腕按钮状态 ,默认补选中 + unsigned char ScreenBrightnessValue{255}; // 亮度值 ,默认最大亮度 + unsigned int ScreenDurationRadioButtonSlectValue{1}; // 亮屏时长 ,1对应10秒后熄屏 }; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h index 8f2c468a8..858b97e1a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h @@ -4,6 +4,7 @@ /*显示与亮度*/ #include "Presenter.h" #include "DisplayBrightnessView.h" +#include "components/ui_slider.h" namespace OHOS { @@ -15,6 +16,29 @@ namespace OHOS MAX_DISPLAYBRIGHTNESSVIEWID, } DISPLAYBRIGHTNESSVIEWID; + /// @brief 亮度状态改变 + typedef enum : uint8_t + { + BRIGHTNESSLOWERS = 0, // 亮度降低 + BRIGHTNESSEVATED = 1, // 亮度增加 + BRIGHTNESSDRAG = 2, // 亮度拖动状态 + } BrightnessChangeStatus; + + /// @brief 亮屏时长 + typedef enum : uint32_t + { + SCREENDURATIONFIVE = 1000 * 5, // 5秒后熄屏 + SCREENDURATIONTEN = 1000 * 10, // 10秒后熄屏 + SCREENDURATIONFIFTEENTH = 1000 * 15, // 15秒后熄屏 + } ScreenDurationTime; + + typedef enum + { + ScreenDurationRadioButton1 = 0, + ScreenDurationRadioButton2, + ScreenDurationRadioButton3, + } ScreenDurationRadioButton; + static const char *BRINGHTNESSCONTROLBUTTON_VIEW = "BRINGHTNESSCONTROLBUTTON"; // 亮度调节按钮视图id static const char *SCREENDURATIONBUTTON_VIEWID = "SCREENDURATIONBUTTON"; // 亮屏时长按钮视图id static const char *RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID = "RAISETOBRIGHTNESSCHECKBOXBUTTON"; // 抬腕亮屏checkbox按钮视图id @@ -23,6 +47,24 @@ namespace OHOS static const char *SCREENDURATION_TENSECONDS_VIEWID = "SCREENDURATION_TENSECONDS"; // 10秒时长 static const char *SCREENDURATION_FIFTEENSECONDS_VIEWID = "SCREENDURATION_FIFTEENSECONDS"; // 15秒时长 + class BrightnessSliderEventListener : public UISlider::UISliderEventListener, + public UIView::OnClickListener, + public UIView::OnDragListener + { + public: + BrightnessSliderEventListener(); + ~BrightnessSliderEventListener(); + static BrightnessSliderEventListener *GetInstance(void); + void ChangeBrightness(uint8_t status, uint8_t value); + void OnChange(int32_t value) override; + void OnRelease(int32_t value) override; + bool OnClick(UIView &view, const ClickEvent &event) override; + bool OnDrag(UIView &view, const DragEvent &event) override; + + private: + int32_t BrightnessValue; // 亮度值 + }; + class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener { public: @@ -54,6 +96,8 @@ namespace OHOS static DisplayBrightnessPresenter *GetInstance(); void SetRaiseToBrightnessState(bool value); + void SetScreenBrightnessValues(unsigned char value); + void SetScreenDurationRadioButtonSlectStatus(uint32_t value); private: // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承; diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h index e26e89981..786d559a4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h @@ -47,7 +47,7 @@ namespace OHOS UIScrollView *ScreenDurationViewInit(void); void ClearAll(void); UIRadioButton *GetRadioButton(int16_t i); - + void SetRadioButtonSelectStatus(int16_t i); private: UIImageView *SetUpImageView(ImageConfig &imageconfig); // 设置图片 UILabel *SetUpLabel(LabelConfig &labelconfig); // 设置标签 @@ -61,6 +61,7 @@ namespace OHOS UILabel *ScreenDurationLabel[3]{nullptr}; // 亮屏时长标签 UIImageView *BackGroundImage[3]{nullptr}; // 放置组件的背景 UIRadioButton *ScreenDurationRadioButton[3]{nullptr}; // 三个单选框 + UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange[3]{nullptr}; bool initViewStatus{false}; }; } // namespace OHOS diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp index 1ef39dc88..d400d0be8 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp @@ -1,5 +1,6 @@ #include "displaybrightness/include/BrightnessControlView.h" #include "displaybrightness/include/DisplayBrightnessPresenter.h" +#include "displaybrightness/include/DisplayBrightnessModel.h" #include "wearable_log.h" namespace OHOS { @@ -28,6 +29,9 @@ namespace OHOS { BrightnessControlScrollView->RemoveAll(); + unsigned char value = BrightnessControlViewSlider->GetValue(); + DisplayBrightnessModel::GetInstance()->KeepScreenBrightnessValues(value); + delete BrightnessControlViewSlider; BrightnessControlViewSlider = nullptr; @@ -81,6 +85,20 @@ namespace OHOS BrightnessControlViewSlider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); BrightnessControlViewSlider->SetSliderColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff)); BrightnessControlViewSlider->SetForegroundStyle(STYLE_BACKGROUND_OPA, 0xff); + + BrightnessSliderEventListener *listener = nullptr; + if (listener == nullptr) + { + listener = new BrightnessSliderEventListener(); + if (listener == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Listener new fail!"); + return false; + } + } + BrightnessControlViewSlider->SetSliderEventListener(listener); + BrightnessControlViewSlider->SetOnClickListener(listener); + BrightnessControlViewSlider->SetOnDragListener(listener); BrightnessControlViewSlider->SetKnobStyle(StyleDefault::GetSliderKnobStyle()); return true; } @@ -99,6 +117,16 @@ namespace OHOS return true; } + UISlider *BrightnessControlView::GetBrightnessControlViewSlider(void) + { + return BrightnessControlViewSlider; + } + + void BrightnessControlView::SetScreenBrightnessValue(unsigned char value) + { + BrightnessControlViewSlider->SetValue(value); + } + // 亮度调节视图初始化 UIScrollView *BrightnessControlView::BrightnessControlViewInit(void) { @@ -123,6 +151,11 @@ namespace OHOS return nullptr; } + if(!DisplayBrightnessModel::GetInstance()->BrightnessControlViewSliderValuesInit()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlViewSliderValuesInit fail!"); + return nullptr; + } /* ----------------------------------- Add ---------------------------------- */ BrightnessControlScrollView->Add(BrightnessControlViewSlider); BrightnessControlScrollView->Add(BrightnessControlViewImageIcon); diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp index 15f1df87d..461fe63e7 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp @@ -24,20 +24,57 @@ namespace OHOS /// @brief 显示与亮度及其子视图中的组件状态初始化 /// @param value true 开启 false 关闭 /// @return true 初始化成功 false 初始化失败 - bool DisplayBrightnessModel::DisplayBrightnessViewAndSubViewComponentsStatusInit() + bool DisplayBrightnessModel::RaiseToBrightnessCheckBoxButtonStatusInit(void) { - /* ---------------------------------- 1.亮屏值大小 --------------------------------- */ + DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance(); + if (displayBrightnessPresent == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail"); + return false; + } + displayBrightnessPresent->SetRaiseToBrightnessState(RaiseToBrightnessCheckBoxButtonState); // 抬腕按钮的状态 + return true; + } - /* --------------------------------- 2.亮屏时长 --------------------------------- */ + /// @brief 亮度值 + /// @param value + void DisplayBrightnessModel::KeepScreenBrightnessValues(unsigned char value) + { + ScreenBrightnessValue = value; + } - /* -------------------------------- 3.抬腕亮屏按钮的状态 ------------------------------- */ + // 亮度控制视图亮度Slider值初始化 + bool DisplayBrightnessModel::BrightnessControlViewSliderValuesInit(void) + { DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance(); if (displayBrightnessPresent == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail"); return false; } - displayBrightnessPresent->SetRaiseToBrightnessState(RaiseToBrightnessCheckBoxButtonState); // 抬腕按钮的状态 + displayBrightnessPresent->SetScreenBrightnessValues(ScreenBrightnessValue); + return true; + } + + /// @brief 保存哪个亮屏时长按钮被选中 + /// @param value 0x001 5秒后熄屏 0x010 10秒后熄屏 0x100 15秒后熄屏 + void DisplayBrightnessModel::KeepScreenDurationRadioButtonSlectStatus(unsigned int value) + { + ScreenDurationRadioButtonSlectValue = value; + } + + /// @brief 亮屏时长按钮选中状态初始化 + /// @param + /// @return + bool DisplayBrightnessModel::ScreenDurationRadioButtonSlectStatusInit(void) + { + DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance(); + if (displayBrightnessPresent == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail"); + return false; + } + displayBrightnessPresent->SetScreenDurationRadioButtonSlectStatus(ScreenDurationRadioButtonSlectValue); return true; } diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp index 78b2a1814..5917208f4 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp @@ -5,6 +5,7 @@ #include "displaybrightness/include/DisplayBrightnessPresenter.h" #include "cat1_ctl.h" #include "displaybrightness/include/DisplayBrightnessModel.h" +#include "power_display_service.h" namespace OHOS { // 当前Presenter属性实例化的内存指针 @@ -45,6 +46,48 @@ namespace OHOS } } + /// @brief 设置亮度值 + /// @param value + void DisplayBrightnessPresenter::SetScreenBrightnessValues(unsigned char value) + { + BrightnessControlView *p_BrightnessControlView = BrightnessControlView::GetInstance(); + if (p_BrightnessControlView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetScreenBrightnessValues BrightnessControlView GetInstance fail"); + return; + } + if (value >= BRIGHTNESS_MIN && value <= BRIGHTNESS_MAX) + { + p_BrightnessControlView->SetScreenBrightnessValue(value); + DisplayBrightnessModel::GetInstance()->KeepScreenBrightnessValues(0xff);// 将Model层保存的状态清除 + } + } + + /// @brief 根据value值设置哪个按钮被选中 + /// @param value + void DisplayBrightnessPresenter::SetScreenDurationRadioButtonSlectStatus(uint32_t value) + { + ScreenDurationView *p_ScreenDurationView = ScreenDurationView::GetInstance(); + if (p_ScreenDurationView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetScreenDurationRadioButtonSlectStatus ScreenDurationView GetInstance fail"); + return; + } + if (value == ScreenDurationRadioButton1) + { + p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton1); + } + else if (value == ScreenDurationRadioButton2) + { + p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton2); + } + else + { + p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton3); + } + DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(ScreenDurationRadioButton1);// 将Model层保存的状态清除 + } + void DisplayBrightnessPresenter::OnStart() { @@ -174,24 +217,28 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!"); return false; } + const power_display_svr_api_t *display_api = power_display_svr_get_api(); switch (state) { case UICheckBox::SELECTED: if (p_DisplayBrightnessView->GetScreenDurationView() != nullptr) { - if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(0) == (UIView *)m_view) + if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton1) == (UIView *)m_view) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 5 seconds"); + display_api->set_screen_auto_off_timeout(SCREENDURATIONFIVE); return true; } - else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(1) == (UIView *)m_view) + else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton2) == (UIView *)m_view) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 10 seconds"); + display_api->set_screen_auto_off_timeout(SCREENDURATIONTEN); return true; } - else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(2) == (UIView *)m_view) + else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(ScreenDurationRadioButton3) == (UIView *)m_view) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 15 seconds"); + display_api->set_screen_auto_off_timeout(SCREENDURATIONFIFTEENTH); return true; } } @@ -204,4 +251,123 @@ namespace OHOS } return false; } + + static BrightnessSliderEventListener *g_pBrightnessSliderEventListener{nullptr}; + + constexpr int16_t BRIGHTNESS_CHANGE = 10; + + BrightnessSliderEventListener::BrightnessSliderEventListener() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::BrightnessSliderEventListener"); + g_pBrightnessSliderEventListener = this; + } + + BrightnessSliderEventListener::~BrightnessSliderEventListener() + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::~BrightnessSliderEventListener"); + g_pBrightnessSliderEventListener = nullptr; + } + + BrightnessSliderEventListener *BrightnessSliderEventListener::GetInstance(void) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessSliderEventListener::GetInstance"); + return g_pBrightnessSliderEventListener; + } + + /// @brief 改变屏幕状态 + /// @param status + void BrightnessSliderEventListener::ChangeBrightness(uint8_t status, uint8_t value) + { + // 1.获取 BrightnessControlView 的实例: + BrightnessControlView *p_BrightnessControlView = BrightnessControlView::GetInstance(); + // 2.检查 BrightnessControlView 指针是否为 nullptr,并在为 nullptr 时打印错误日志并返回 + if (p_BrightnessControlView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::GetInstance fail!"); + return; + } + // 3.获取 p_BrightnessControlView 的进度条 UISlider 实例的指针: + UISlider *progress = p_BrightnessControlView->GetBrightnessControlViewSlider(); + // 4.检查 progress 指针是否为 nullptr,并在为 nullptr 时打印错误日志并返回: + if (progress == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChangeBrightness:progress is nullptr!"); + return; + } + // 5.保存当前亮度到变量 BrightnessValue + BrightnessValue = p_BrightnessControlView->CurrentBrightnessValue; + + // 6.获取显示功耗管理服务API接口. + const power_display_svr_api_t *display_api = power_display_svr_get_api(); + // 7.根据传入的 status 值进行亮度变化操作 + switch (status) + { + case BRIGHTNESSLOWERS: + /* code */ + p_BrightnessControlView->CurrentBrightnessValue = progress->GetValue() - BRIGHTNESS_CHANGE; + if (p_BrightnessControlView->CurrentBrightnessValue < BRIGHTNESS_MIN) + { + p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MIN; + } + break; + case BRIGHTNESSEVATED: + p_BrightnessControlView->CurrentBrightnessValue = progress->GetValue() + BRIGHTNESS_CHANGE; + if (p_BrightnessControlView->CurrentBrightnessValue > BRIGHTNESS_MAX) + { + p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MAX; + } + break; + case BRIGHTNESSDRAG: + p_BrightnessControlView->CurrentBrightnessValue = value; + if (p_BrightnessControlView->CurrentBrightnessValue < BRIGHTNESS_MIN) + { + p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MIN; + } + else if (p_BrightnessControlView->CurrentBrightnessValue > BRIGHTNESS_MAX) + { + p_BrightnessControlView->CurrentBrightnessValue = BRIGHTNESS_MAX; + } + break; + default: + break; + } + // 8.将 p_BrightnessControlView->CurrentBrightnessValue 的值赋给 progress 的值,更新进度条的显示: + progress->SetValue(p_BrightnessControlView->CurrentBrightnessValue); + + // 9.设置当前亮度值并检查是否设置成功 + if (display_api->set_brightness(p_BrightnessControlView->CurrentBrightnessValue) != ERRCODE_SUCC) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ChangeBrightness: set_brightness fail!"); + return; + } + } + + /// @brief 当滑动条被拖动或点击时调用 + /// @param value 滑块的当前值。 + void BrightnessSliderEventListener::OnChange(int32_t value) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnChange %d", value); + ChangeBrightness(BRIGHTNESSDRAG, value); + } + + /// @brief 当滑动条被释放时调用 + /// @param value 滑块的当前值。 + void BrightnessSliderEventListener::OnRelease(int32_t value) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnRelease %d", value); + ChangeBrightness(BRIGHTNESSDRAG, value); + } + + bool BrightnessSliderEventListener::OnClick(UIView &view, const ClickEvent &event) + { + UNUSED(event); + UNUSED(view); + return true; + } + bool BrightnessSliderEventListener::OnDrag(UIView &view, const DragEvent &event) + { + UNUSED(event); + UNUSED(view); + return true; + } } \ No newline at end of file diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp index 866f6c647..567112863 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp @@ -363,7 +363,10 @@ namespace OHOS { return; } - DisplayBrightnessModel::GetInstance()->DisplayBrightnessViewAndSubViewComponentsStatusInit(); + if (!DisplayBrightnessModel::GetInstance()->RaiseToBrightnessCheckBoxButtonStatusInit()) + { + return; + } initViewStatus = true; } @@ -399,14 +402,14 @@ namespace OHOS return DisplayBrightnessScrollView[i]; } - ScreenDurationView * DisplayBrightnessView::GetScreenDurationView(void) + ScreenDurationView *DisplayBrightnessView::GetScreenDurationView(void) { - if(p_ScreenDurationView == nullptr) + if (p_ScreenDurationView == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetScreenDurationView p_ScreenDurationView is nullptr!"); return nullptr; } - return p_ScreenDurationView; + return p_ScreenDurationView; } // 1.切换到“屏幕与亮度”视图 diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp index 83ede9b81..845a5e569 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp @@ -1,5 +1,6 @@ #include "displaybrightness/include/ScreenDurationView.h" #include "displaybrightness/include/DisplayBrightnessPresenter.h" +#include "displaybrightness/include/DisplayBrightnessModel.h" #include "wearable_log.h" namespace OHOS { @@ -30,6 +31,16 @@ namespace OHOS { ScreenDurationScrollView->RemoveAll(); + unsigned int i; + for (i = 0; i < 3; i++) + { + if (ScreenDurationRadioButton[i]->GetState() == UICheckBox::SELECTED) + { + break; + } + } + DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(i); + delete ScreenDurationTitleLabel; ScreenDurationTitleLabel = nullptr; @@ -41,10 +52,12 @@ namespace OHOS delete BackGroundImage[i]; BackGroundImage[i] = nullptr; + delete SimplifiedChineseRadioButtonChange[i]; + SimplifiedChineseRadioButtonChange[i] = nullptr; + delete ScreenDurationRadioButton[i]; ScreenDurationRadioButton[i] = nullptr; } - delete ScreenDurationScrollView; ScreenDurationScrollView = nullptr; } @@ -224,13 +237,18 @@ namespace OHOS WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i); return false; } - UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange = static_cast(new ScreenDurationRadiobuttonOnChangeListener(ScreenDurationRadioButton[i])); - ScreenDurationRadioButton[i]->SetOnChangeListener(SimplifiedChineseRadioButtonChange); + SimplifiedChineseRadioButtonChange[i] = static_cast(new ScreenDurationRadiobuttonOnChangeListener(ScreenDurationRadioButton[i])); + ScreenDurationRadioButton[i]->SetOnChangeListener(SimplifiedChineseRadioButtonChange[i]); } return true; } + void ScreenDurationView::SetRadioButtonSelectStatus(int16_t i) + { + GetRadioButton(i)->SetState(UICheckBox::SELECTED); + } + // 亮屏时长视图初始化 UIScrollView *ScreenDurationView::ScreenDurationViewInit(void) { @@ -255,6 +273,12 @@ namespace OHOS { return nullptr; } + + if (!DisplayBrightnessModel::GetInstance()->ScreenDurationRadioButtonSlectStatusInit()) + { + return nullptr; + } + /* ----------------------------------- Add ---------------------------------- */ ScreenDurationScrollView->Add(ScreenDurationTitleLabel); for (int i = 0; i < 3; i++) diff --git a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c index 5f86518b1..5db3374bd 100755 --- a/code/sdk/application/wearable/service/power_manager/src/power_display_service.c +++ b/code/sdk/application/wearable/service/power_manager/src/power_display_service.c @@ -20,7 +20,7 @@ #include "touch_screen_def.h" #include "display_state_machine.h" -#define DISPLAY_AUTO_POWER_OFF_PERIOD_MS (1000 * 10) //10秒 +#define DISPLAY_AUTO_POWER_OFF_PERIOD_MS (1000 * 5) //5秒 #define DISPLAY_DEFAULT_BRIGHTNESS 50 #define POWER_DISPLAY_QUEUE_MAX_SIZE 64 #define POWER_DISPLAY_MAX_SIZE 0x10