From: luozheng <1732036298@qq.com> Date: Sun, 18 Feb 2024 03:32:05 +0000 (+0800) Subject: 修改屏幕与亮度视图:亮度调节更改为“屏幕与亮度”的子视图 X-Git-Tag: release_V1.2.70_20241020_135402~1305 X-Git-Url: http://git.snicker.com.cn/css/static/gitweb.css?a=commitdiff_plain;h=8742c09d0f08c691dcca77b727ce212fd6292b7e;p=mirrors%2FFD230.git 修改屏幕与亮度视图:亮度调节更改为“屏幕与亮度”的子视图 --- diff --git a/code/sdk/application/wearable/fd230app/CMakeLists.txt b/code/sdk/application/wearable/fd230app/CMakeLists.txt index 492b2bf92..ca0834048 100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@ -260,7 +260,6 @@ set(SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/BrightnessControlPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/BrightnessControlView.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationPresenter.cpp ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationView.cpp diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h index 48657d9f3..1ac992979 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h @@ -50,7 +50,6 @@ typedef enum : uint16_t VIEW_CALL_VOLUME, // 通话音量 VIEW_MEDIA_VOLUME, // 媒体音量 VIEW_DISPLAY_BRIGHTNESS, // 屏幕与亮度 - VIEW_BRIGHTNESS_CONTROL, // 亮度调节 VIEW_SCREEN_DURATION, // 亮屏时长 VIEW_SECONDARY_FUNCTION, // 辅助功能 VIEW_QUICK_ACCESS, // 快速访问 diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h index e7d002148..67c76d3ec 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h @@ -57,7 +57,6 @@ namespace OHOS void InitMessageSlice(void); /* -------------------------------------------------------------------------- */ void InitUIDisplayBrightnessSlice(void); - void InitBrightnessControlSlice(void); void InitScreenDurationSlice(void); /* --------------------------------测试界面------------------------------------ */ void InitDialSlice(void); diff --git a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index ff31e0023..81cb8d6fa 100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@ -80,8 +80,6 @@ #include "displaybrightness/include/DisplayBrightnessPresenter.h" #include "displaybrightness/include/DisplayBrightnessView.h" -#include "displaybrightness/include/BrightnessControlPresenter.h" -#include "displaybrightness/include/BrightnessControlView.h" #include "displaybrightness/include/ScreenDurationPresenter.h" #include "displaybrightness/include/ScreenDurationView.h" @@ -149,7 +147,6 @@ namespace OHOS {VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice}, // 系统音量 {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitUIDisplayBrightnessSlice}, // 显示与亮度的实例化地址 - {VIEW_BRIGHTNESS_CONTROL, &NativeLauncher::InitBrightnessControlSlice}, // 调节亮度的实例化地址 {VIEW_SCREEN_DURATION, &NativeLauncher::InitScreenDurationSlice}, // 亮屏时长实例化地址 {VIEW_SECONDARY_FUNCTION, &NativeLauncher::InitSecondaryFunction}, @@ -563,16 +560,6 @@ namespace OHOS NativeAbility::GetInstance().AddSliceProxy(VIEW_DISPLAY_BRIGHTNESS, uidisplaybrightnessView); } - void NativeLauncher::InitBrightnessControlSlice(void) - { - SliceProxy *brightnesscontrol = new AbilitySliceProxy; - if (brightnesscontrol == nullptr) - { - return; - } - NativeAbility::GetInstance().AddSliceProxy(VIEW_BRIGHTNESS_CONTROL, brightnesscontrol); - } - void NativeLauncher::InitScreenDurationSlice(void) { SliceProxy *ScreenDuration = new AbilitySliceProxy; 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 fd1491626..e2458cd53 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/BrightnessControlView.h @@ -3,41 +3,35 @@ #include "BaseView.h" #include "View.h" - -#include "components/ui_view_group.h" +#include "components/ui_scroll_view.h" #include "components/ui_slider.h" #include "components/ui_image_view.h" namespace OHOS { - static const char *BRIGHTNESS_CONTROL_SLIDER = "BCslider"; +#define BRIGHTNESS_MIN 0 +#define BRIGHTNESS_MAX 100 +#define BRIGHTNESS_PROGRESS "progress" + + static const char *BRIGHTNESS_CONTROL_SLIDER = "BrightnessControlViewSlider"; - class BrightnessControlPresenter; - class BrightnessControlView : public View{ - + class BrightnessControlView + { public: - BrightnessControlView(); - virtual ~BrightnessControlView(); - static BrightnessControlView *GetInstance(void); - - void OnStart() override; - void OnSetUpView() override; - void OnTearDownView() override; - void OnStop() override; - - private: - UIView::OnDragListener *draglistener{nullptr}; - UIView::OnClickListener *sliderClick{nullptr}; - UIView::OnDragListener *sliderDrag{nullptr}; - void InitView(void); + BrightnessControlView(); + virtual ~BrightnessControlView(); + static BrightnessControlView *GetInstance(void); + UIScrollView *BrightnessControlViewInit(void); + void ClearAll(void); - UIViewGroup* container_ = nullptr; - UISlider* BCslider = nullptr; - UIImageView* BCimageicon = nullptr; + private: + bool SetUpScrollView(void); + bool SetUpSlider(void); + bool SetUpImageView(void); + UIScrollView *BrightnessControlScrollView{nullptr}; + UISlider *BrightnessControlViewSlider = nullptr; + UIImageView *BrightnessControlViewImageIcon = nullptr; + bool initViewStatus{false}; }; -} //namespace OHOS - - - - +} // namespace OHOS #endif \ No newline at end of file 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 f733ec336..50a82309f 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h @@ -1,5 +1,5 @@ -#ifndef _DISPLAY_BRIGHTNESS_MODEL_H_ -#define _DISPLAY_BRIGHTNESS_MODEL_H_ +#ifndef DISPLAY_BRIGHTNESS_MODEL_H_ +#define DISPLAY_BRIGHTNESS_MODEL_H_ 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 62ff1bb3b..fb924aa75 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h @@ -7,6 +7,14 @@ namespace OHOS { + typedef enum + { + DISPLAYBRIGHTNESSVIEW = 0, // 屏幕与亮度视图(slice) + BRIGHTNESSCONTROLVIEW, // 亮度调节视图(subView) + SCREENDURATIONVIEW, // 亮屏时长视图(subView) + MAX_DISPLAYBRIGHTNESSVIEWID, + } DISPLAYBRIGHTNESSVIEWID; + static const char *BRINGHTNESSCONTROLBUTTON_VIEW = "BRINGHTNESSCONTROLBUTTON"; // 亮度调节按钮视图id static const char *SCREENDURATIONBUTTON_VIEWID = "SCREENDURATIONBUTTON"; // 亮屏时长按钮视图id static const char *RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID = "RAISETOBRIGHTNESSCHECKBOXBUTTON"; // 抬腕亮屏checkbox按钮视图id diff --git a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h index 3f717634f..0f5160c3e 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h @@ -9,6 +9,7 @@ #include "components/ui_scroll_view.h" #include "components/ui_checkbox.h" #include "DisplayBrightnessPresenter.h" +#include "displaybrightness/include/BrightnessControlView.h" namespace OHOS { @@ -59,13 +60,20 @@ namespace OHOS static DisplayBrightnessView *GetInstance(void); void DisplayAndBrightnessViewInit(void); void ClearAll(void); - + bool ChangeDisplayBrightnessView(int16_t thisView); // 切换到“屏幕与亮度”视图 + bool ChangeBrightnessControlView(int16_t thisView); // 切换到“亮度调节”视图 + bool ChangeScreenDurationView(int16_t thisView); // 切换到亮屏时长视图 + bool ClickFunc(int16_t interface); + void ChangeView(int16_t hideView, int16_t showView); + UIScrollView *GetDisplayBrightnessScrollView(int16_t i); public: void OnStart() override; void OnSetUpView() override; void OnTearDownView() override; void OnStop() override; + private: + BrightnessControlView *p_BrightnessControlView{nullptr}; // 亮度调节视图 private: bool SetUpScrollView(void); bool SetTheTitle(void); @@ -77,13 +85,13 @@ namespace OHOS bool InitDisplayBrightnessViewImage(void); UICheckBox *SetUpCheckBox(CheckBoxConfig &checkboxconfig); // 设置复选框 bool InitDisplayBrightnessViewCheckBox(void); - UIScrollView *scrollView = nullptr; - UILabel *DisplayBrightnessTitleLabel = nullptr; // 显示与亮度标题 - UIButton *BringhtnessControlButton = nullptr; // 亮度调节按钮 - UIButton *ScreenDurationButton = nullptr; // 亮屏时长按钮 - UILabel *BringhtnessControlLabel = nullptr; // 亮度调节标签 - UILabel *ScreenDurationLabel = nullptr; // 亮屏时长标签 - UILabel *RaiseToBrightnessLabel = nullptr; // 抬腕亮屏标签 + UIScrollView *DisplayBrightnessScrollView[3]{nullptr}; // “3”表示有三个界面 + UILabel *DisplayBrightnessTitleLabel = nullptr; // 显示与亮度标题 + UIButton *BringhtnessControlButton = nullptr; // 亮度调节按钮 + UIButton *ScreenDurationButton = nullptr; // 亮屏时长按钮 + UILabel *BringhtnessControlLabel = nullptr; // 亮度调节标签 + UILabel *ScreenDurationLabel = nullptr; // 亮屏时长标签 + UILabel *RaiseToBrightnessLabel = nullptr; // 抬腕亮屏标签 UIImageView *NextImage[2]{nullptr}; UIImageView *RaiseToBrightnessImage = nullptr; // 抬腕亮屏图片 UICheckBox *RaiseToBrightnessCheckBoxButton = nullptr; 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 62af8707d..94aaa7f52 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp @@ -1,118 +1,133 @@ #include "displaybrightness/include/BrightnessControlView.h" -#include "displaybrightness/include/BrightnessControlPresenter.h" -#include "UiConfig.h" +#include "displaybrightness/include/DisplayBrightnessPresenter.h" +#include "wearable_log.h" namespace OHOS { - static BrightnessControlView *g_pBrightnessControlView{nullptr}; - BrightnessControlView::BrightnessControlView() { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlView"); g_pBrightnessControlView = this; } BrightnessControlView::~BrightnessControlView() { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::~BrightnessControlView"); + ClearAll(); g_pBrightnessControlView = nullptr; - if (container_ != nullptr) - { - delete container_; - container_ = nullptr; - } - if (BCslider != nullptr) - { - delete BCslider; - BCslider = nullptr; - } - if (BCimageicon != nullptr) - { - delete BCimageicon; - BCimageicon = nullptr; - } } BrightnessControlView *BrightnessControlView::GetInstance() { - return g_pBrightnessControlView; } - void BrightnessControlView::InitView(void) + + void BrightnessControlView::ClearAll(void) { - if (container_ == nullptr) + if (initViewStatus == true) { - container_ = new UIViewGroup(); - container_->SetPosition(0, 0, 466, 466); - container_->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - container_->SetStyle(STYLE_BACKGROUND_COLOR, 0x000000); + BrightnessControlScrollView->RemoveAll(); + + delete BrightnessControlViewSlider; + BrightnessControlViewSlider = nullptr; + + delete BrightnessControlViewImageIcon; + BrightnessControlViewImageIcon = nullptr; + + delete BrightnessControlScrollView; + BrightnessControlScrollView = nullptr; } - draglistener = static_cast(BrightnessControlPresenter::GetInstance()); - container_->SetOnDragListener(draglistener); - container_->SetTouchable(true); - container_->SetDraggable(true); - /********************************************************************************************************/ - if (BCslider == nullptr) + } + + // 显示与亮度视图scrollView初始化 + bool BrightnessControlView::SetUpScrollView(void) + { + BrightnessControlScrollView = new UIScrollView(); + if (BrightnessControlScrollView == nullptr) { - BCslider = new UISlider(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlScrollView new fail!"); + return false; } - BCslider->SetPosition(167, 77); - BCslider->Resize(130, 310); - BCslider->SetViewId(BRIGHTNESS_CONTROL_SLIDER); - BCslider->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - BCslider->SetStyle(STYLE_BACKGROUND_OPA, 0xff); - BCslider->SetStyle(STYLE_BORDER_OPA, 0x19); - BCslider->SetStyle(STYLE_BORDER_RADIUS, 100); - BCslider->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP); - BCslider->SetValue(20); - BCslider->SetSliderColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff)); - BCslider->SetKnobStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); - BCslider->SetForegroundStyle(STYLE_BACKGROUND_OPA, 0xff); - BCslider->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); // 圆帽式 - BCslider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); // 设置进度条的前景样式。圆帽式 - BCslider->SetStyle(STYLE_BORDER_COLOR, 0xff000000); - sliderClick = static_cast(BrightnessControlPresenter::GetInstance()); // 用来处理之后点击slider的点击事件 - BCslider->SetOnClickListener(sliderClick); - sliderDrag = static_cast(BrightnessControlPresenter::GetInstance()); // 用来处理之后拖动slider的拖动事件 - BCslider->SetOnDragListener(sliderDrag); - container_->Add(BCslider); - BCslider->SetVisible(true); - /********************************************************************************************************/ - if (BCimageicon == nullptr) + BrightnessControlScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + UIView::OnDragListener *draglistener = static_cast(DisplayBrightnessPresenter::GetInstance()); + if (draglistener == nullptr) { - BCimageicon = new UIImageView(); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::draglistener can not be nullptr!"); + return false; } - BCimageicon->SetPosition(213, 213); // widget's left position and top position - BCimageicon->Resize(100, 100); // widget's width and height - BCimageicon->SetViewId("BCimageicon"); // Set style - BCimageicon->SetStyle(STYLE_BORDER_COLOR, 0xffAAAAAA); - BCimageicon->SetSrc(PNG_BRIGHTNESS_CONTROL_VECTOR); - - container_->Add(BCimageicon); - BCimageicon->SetVisible(true); + BrightnessControlScrollView->SetOnDragListener(draglistener); + BrightnessControlScrollView->SetTouchable(true); + BrightnessControlScrollView->SetDraggable(true); + return true; } - void BrightnessControlView::OnStart() + // 亮度滑动条设置 + bool BrightnessControlView::SetUpSlider(void) { - View::OnStart(); - InitView(); - RootView::GetInstance()->Add(container_); - } + BrightnessControlViewSlider = new UISlider(); + if (BrightnessControlViewSlider == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlViewSlider new fail"); + return false; + } + BrightnessControlViewSlider->SetSliderColor(Color::Gray(), Color::Silver()); + BrightnessControlViewSlider->SetPosition(167, 77, 130, 310); + BrightnessControlViewSlider->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP); + BrightnessControlViewSlider->SetViewId(BRIGHTNESS_PROGRESS); + BrightnessControlViewSlider->SetRange(BRIGHTNESS_MAX, BRIGHTNESS_MIN); - void BrightnessControlView::OnSetUpView() - { - View::OnSetUpView(); - Draw(); + BrightnessControlViewSlider->SetStyle(STYLE_BORDER_RADIUS, 100); + BrightnessControlViewSlider->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); + 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); + BrightnessControlViewSlider->SetKnobStyle(StyleDefault::GetSliderKnobStyle()); + return true; } - void BrightnessControlView::OnTearDownView() + bool BrightnessControlView::SetUpImageView(void) { - View::OnTearDownView(); - return; + BrightnessControlViewImageIcon = new UIImageView(); + if (BrightnessControlViewImageIcon == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlViewImageIcon new fail"); + return false; + } + BrightnessControlViewImageIcon->SetPosition(213, 213, 40, 40); + const char *image = "/user/res/VolumeControlVector.bin"; + BrightnessControlViewImageIcon->SetSrc(image); + return true; } - void BrightnessControlView::OnStop() + // 亮度调节视图初始化 + UIScrollView *BrightnessControlView::BrightnessControlViewInit(void) { - View::OnStop(); - RootView::GetInstance()->RemoveAll(); - return; + /* ----------------------- BrightnessControlScrollView ---------------------- */ + if (!SetUpScrollView()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlScrollView is nullptr!"); + return nullptr; + } + + /* ----------------------- BrightnessControlViewSlider ---------------------- */ + if (!SetUpSlider()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlViewSlider is nullptr!"); + return nullptr; + } + + /* ------------------------------- BrightnessControlViewImageIcon ------------------------------ */ + if (!SetUpImageView()) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlViewImageIcon is nullptr!"); + return nullptr; + } + + /* ----------------------------------- Add ---------------------------------- */ + BrightnessControlScrollView->Add(BrightnessControlViewSlider); + BrightnessControlScrollView->Add(BrightnessControlViewImageIcon); + initViewStatus = true; + return BrightnessControlScrollView; } + } 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 276e06767..a372edc86 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp @@ -52,10 +52,11 @@ namespace OHOS bool DisplayBrightnessPresenter::OnClick(UIView &view, const ClickEvent &event) { + DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance(); // 根据控件id查找是哪个控件触发了点击回调 if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0) { - NativeAbility::GetInstance().ChangeSlice(VIEW_BRIGHTNESS_CONTROL); // 亮度调节 + p_DisplayBrightnessView->ChangeView(DISPLAYBRIGHTNESSVIEW, BRIGHTNESSCONTROLVIEW); // 切换到亮度调节视图 return true; } if (strcmp(view.GetViewId(), SCREENDURATIONBUTTON_VIEWID) == 0) @@ -73,11 +74,27 @@ namespace OHOS bool DisplayBrightnessPresenter::OnDragEnd(UIView &view, const DragEvent &event) { + DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance(); if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { - NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); + for (int i = 0; i < MAX_DISPLAYBRIGHTNESSVIEWID; i++) + { + if (p_DisplayBrightnessView->GetDisplayBrightnessScrollView(i)->IsVisible() == true) + { + if (i == DISPLAYBRIGHTNESSVIEW) + { + NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING); + } + else + { + p_DisplayBrightnessView->ChangeView(i, DISPLAYBRIGHTNESSVIEW); + } + break; + } + } + return true; } - return true; + return false; } bool DisplayBrightnessPresenter::OnChange(UICheckBox::UICheckBoxState state) 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 1c8e26d8f..a2f6d53cf 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp @@ -29,7 +29,7 @@ namespace OHOS { if (initViewStatus == true) { - scrollView->RemoveAll(); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->RemoveAll(); delete DisplayBrightnessTitleLabel; DisplayBrightnessTitleLabel = nullptr; @@ -61,33 +61,36 @@ namespace OHOS delete RaiseToBrightnessCheckBoxButton; RaiseToBrightnessCheckBoxButton = nullptr; - delete scrollView; - scrollView = nullptr; + delete p_BrightnessControlView; + p_BrightnessControlView = nullptr; + + delete DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]; + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = nullptr; } } // 显示与亮度视图scrollView初始化 bool DisplayBrightnessView::SetUpScrollView(void) { - scrollView = new UIScrollView(); - if (scrollView == nullptr) + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = new UIScrollView(); + if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::scrollView new fail!"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] new fail!"); return false; } - scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); - scrollView->SetScrollBlankSize(35); - scrollView->SetReboundSize(50); - scrollView->SetDirection(1); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetScrollBlankSize(35); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetReboundSize(50); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDirection(1); UIView::OnDragListener *draglistener = static_cast(DisplayBrightnessPresenter::GetInstance()); if (draglistener == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::draglistener can not be nullptr!"); return false; } - scrollView->SetOnDragListener(draglistener); - scrollView->SetTouchable(true); - scrollView->SetDraggable(true); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetOnDragListener(draglistener); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetTouchable(true); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDraggable(true); return true; } @@ -121,7 +124,7 @@ namespace OHOS UIButton *button = new UIButton(); if (button == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: button new fail!"); + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " DisplayBrightnessView::SetTheButton: button new fail!"); return nullptr; } button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h); @@ -293,7 +296,7 @@ namespace OHOS checkbox->SetPosition(checkboxconfig.x, checkboxconfig.y, checkboxconfig.w, checkboxconfig.h); checkbox->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff); checkbox->SetViewId(checkboxconfig.ViewId); - checkbox->SetImages(checkboxconfig.select,checkboxconfig.unselect); + checkbox->SetImages(checkboxconfig.select, checkboxconfig.unselect); return checkbox; } @@ -352,6 +355,99 @@ namespace OHOS initViewStatus = true; } + UIScrollView *DisplayBrightnessView::GetDisplayBrightnessScrollView(int16_t i) + { + if (DisplayBrightnessScrollView[i] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessScrollView[%d] is nullptr!",i); + return nullptr; + } + return DisplayBrightnessScrollView[i]; + } + + // 1.切换到“屏幕与亮度”视图 + bool DisplayBrightnessView::ChangeDisplayBrightnessView(int16_t thisView) + { + if (DisplayBrightnessScrollView[thisView] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeDisplayBrightnessView"); + RootView::GetInstance()->Add(DisplayBrightnessScrollView[thisView]); + } + return true; + } + + // 2.切换到“亮度调节”视图 + bool DisplayBrightnessView::ChangeBrightnessControlView(int16_t thisView) + { + if (DisplayBrightnessScrollView[thisView] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeBrightnessControlView"); + p_BrightnessControlView = new BrightnessControlView(); + if (p_BrightnessControlView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: new scrollView[%d] fail", thisView); + return false; + } + DisplayBrightnessScrollView[thisView] = p_BrightnessControlView->BrightnessControlViewInit(); + RootView::GetInstance()->Add(DisplayBrightnessScrollView[thisView]); + } + return true; + } + + // 3.切换到“亮屏时长”视图 + bool DisplayBrightnessView::ChangeScreenDurationView(int16_t thisView) + { + } + + /* -------------------------------------------------------------------------- */ + // 1.DisplayBrightnessViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。 + struct DisplayBrightnessViewMapper + { + const int16_t viewId; + bool (DisplayBrightnessView::*func)(int16_t thisView); + }; + + // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与DisplayBrightnessViewMapper类中的特定成员函数指针进行了绑定。 + static const DisplayBrightnessViewMapper ViewMapper[] = { + {DISPLAYBRIGHTNESSVIEW, &DisplayBrightnessView::ChangeDisplayBrightnessView}, + {BRIGHTNESSCONTROLVIEW, &DisplayBrightnessView::ChangeBrightnessControlView}, + {SCREENDURATIONVIEW, &DisplayBrightnessView::ChangeScreenDurationView}, + }; + + // 3.根据传入的interface参数执行相应视图ID关联的成员函数。 + bool DisplayBrightnessView::ClickFunc(int16_t interface) + { + int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]); + for (int i = 0; i < funcSize; i++) + { + if (interface == ViewMapper[i].viewId) + { + bool jug = (this->*(ViewMapper[i].func))(interface); + if (jug == false) + { + return false; + } + return true; + } + } + return false; + } + + // 4.切换视图 + void DisplayBrightnessView::ChangeView(int16_t hideView, int16_t showView) + { + if (hideView > MAX_DISPLAYBRIGHTNESSVIEWID) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: SystemViewId Overstep ones bounds"); + return; + } + DisplayBrightnessScrollView[hideView]->SetVisible(false); + ClickFunc(showView); + DisplayBrightnessScrollView[showView]->SetVisible(true); + Draw(); + } + /* -------------------------------------------------------------------------- */ + void DisplayBrightnessView::OnStart() { View::OnStart(); @@ -364,22 +460,22 @@ namespace OHOS void DisplayBrightnessView::OnSetUpView() { View::OnSetUpView(); - if (scrollView == nullptr) + if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: OnSetUpView has nullptr"); return; } - scrollView->Add(DisplayBrightnessTitleLabel); - scrollView->Add(BringhtnessControlButton); - scrollView->Add(ScreenDurationButton); - scrollView->Add(BringhtnessControlLabel); - scrollView->Add(ScreenDurationLabel); - scrollView->Add(NextImage[0]); - scrollView->Add(NextImage[1]); - scrollView->Add(RaiseToBrightnessImage); - scrollView->Add(RaiseToBrightnessLabel); - scrollView->Add(RaiseToBrightnessCheckBoxButton); - RootView::GetInstance()->Add(scrollView); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(DisplayBrightnessTitleLabel); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlButton); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationButton); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(BringhtnessControlLabel); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(ScreenDurationLabel); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[0]); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(NextImage[1]); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessImage); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessLabel); + DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessCheckBoxButton); + RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]); Draw(); } diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemPresenter.h index 37def53b9..f99d15dea 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemPresenter.h @@ -24,8 +24,8 @@ namespace OHOS SUPERVISEVIEW, // 监管视图(subView) SYSTEMLANGUAGEVIEW, // 系统语言视图(subView) FACTORYRESETVIEW, // 恢复出厂设置视图(subView) - MAX_VIEWID, - } SYSTEMVIEWId; + MAX_SYSTEMVIEWID, + } SYSTEMVIEWID; /* ---------------------------- 系统语言界面单选按钮VIEWID ---------------------------- */ static const char *SIMPLIFIED_CHINESE_CHECKBOX = "SimplifiedChineseCheckBox"; // 简体中文 @@ -61,7 +61,6 @@ namespace OHOS }; class SystemView; - class UISampleModel; class SystemPresenter : public Presenter, public UIView::OnClickListener, public UIView::OnDragListener diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp index b3cb3f880..b118fc18a 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp @@ -65,7 +65,7 @@ namespace OHOS SystemView *p_SystemView = SystemView::GetInstance(); if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { - for (int i = 1; i < MAX_VIEWID; i++) + for (int i = 1; i < MAX_SYSTEMVIEWID; i++) { if (p_SystemView->GetSystemScrollView(i)->IsVisible() == true) { diff --git a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp index ac9f3f43e..6439fba69 100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemView.cpp @@ -317,7 +317,7 @@ namespace OHOS // 4.切换视图 void SystemView::ChangeView(int16_t hideView, int16_t showView) { - if (hideView > MAX_VIEWID) + if (hideView > MAX_SYSTEMVIEWID) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemViewId Overstep ones bounds"); return;