优化屏幕与亮度Slice: 570/2
authorluozheng <1732036298@qq.com>
Mon, 22 Jul 2024 08:53:24 +0000 (16:53 +0800)
committerluozheng <1732036298@qq.com>
Mon, 22 Jul 2024 08:53:24 +0000 (16:53 +0800)
1.添加了scrollview的表冠控制,
2.标签断行模式为LINE_BREAK_OSCILLATION改为LINE_BREAK_OSCILLATION
3.亮屏时长视图实现点击按钮该变亮屏时长单选按钮选中状态

code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessView.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/ScreenDurationView.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/drivers/peripheral/config/src/ConfigModel.cpp

index 1e070ae..255e916 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-18 09:10:05\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-07 19:25:27\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
@@ -58,15 +58,17 @@ namespace OHOS
     static const char *SCREENDURATIONBUTTON_VIEWID = "SCREENDURATIONBUTTON";                       // 亮屏时长按钮视图id\r
     static const char *RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID = "RAISETOBRIGHTNESSCHECKBOXBUTTON"; // 抬腕亮屏checkbox按钮视图id\r
 \r
-    class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener\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
index 84b41b6..ea9dcb6 100644 (file)
@@ -35,7 +35,7 @@ namespace OHOS
             int16_t w;\r
             int16_t h;\r
             const char *ViewId;\r
-            //const char *ImageSrc;\r
+            // const char *ImageSrc;\r
         };\r
         struct LabelConfig\r
         {\r
@@ -43,9 +43,9 @@ namespace OHOS
             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 fontSize;  // 字体大小\r
+            int16_t lineHeigh; // 行高\r
+            // std::string text;      // 文本\r
             int16_t textId;\r
             uint8_t lineBreakMode; // 断行模式。\r
         };\r
@@ -62,17 +62,15 @@ namespace OHOS
         DisplayBrightnessView();\r
         virtual ~DisplayBrightnessView();\r
         static DisplayBrightnessView *GetInstance(void);\r
-        void DisplayAndBrightnessViewInit(void);\r
-        void ClearAll(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
-        UIScrollView *GetDisplayBrightnessScrollView(int16_t i);\r
-        UICheckBox::UICheckBoxState GetRaiseToBrightnessCheckBoxButtonState(void);\r
         void SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState state);\r
         ScreenDurationView *GetScreenDurationView(void);\r
-        UILabelExt * GetSelectScreenDurationLabel(void);\r
+        UILabelExt *GetSelectScreenDurationLabel(void);\r
+\r
     public:\r
         void OnStart() override;\r
         void OnSetUpView() override;\r
@@ -80,20 +78,21 @@ namespace OHOS
         void OnStop() override;\r
 \r
     private:\r
-        // ScreenDurationView *p_ScreenDurationView{nullptr};       // 亮屏时长视图\r
-        std::shared_ptr<ScreenDurationView> p_ScreenDurationView;\r
+        ScreenDurationView *p_ScreenDurationView{nullptr}; // 亮屏时长视图\r
 \r
     private:\r
-        bool SetUpScrollView(void);\r
-        bool SetTheTitle(void);\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
-        UILabelExt *SetUpLabel(LabelConfig &labelconfig); // 设置标签\r
         bool InitDisplayBrightnessViewLabel(void);\r
-        UIImageView *SetUpImageView(ImageConfig &imageconfig); // 设置图片\r
         bool InitDisplayBrightnessViewImage(void);\r
-        UICheckBox *SetUpCheckBox(CheckBoxConfig &checkboxconfig); // 设置复选框\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
index 0a04d4c..66b0f20 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 11:14:31\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
@@ -14,6 +14,7 @@
 #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
@@ -21,7 +22,7 @@ namespace OHOS
     class ScreenDurationView\r
     {\r
     public:\r
-        struct ImageConfig\r
+        struct ButtonConfig\r
         {\r
             int16_t x;\r
             int16_t y;\r
@@ -36,8 +37,7 @@ namespace OHOS
             int16_t height;\r
             int16_t fontSize;      // 字体大小\r
             int16_t lineHeigh;     // 行高\r
-            //const char *text;      // 文本\r
-            int16_t textId;\r
+            int16_t textId;        // 文本id\r
             uint8_t lineBreakMode; // 断行模式。\r
         };\r
         struct RadioButtonConfig\r
@@ -57,9 +57,10 @@ namespace OHOS
         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
-        UIImageView *SetUpImageView(ImageConfig &imageconfig);                 // 设置图片\r
+        UIButton *SetUpButtonView(ButtonConfig &buttonConfig);                 // 设置按钮\r
         UILabelExt *SetUpLabel(LabelConfig &labelconfig);                      // 设置标签\r
         UIRadioButton *SetUpRadioButton(RadioButtonConfig &radiobuttonconfig); // 设置单选框\r
         bool SetUpScrollView(void);\r
@@ -69,9 +70,10 @@ namespace OHOS
         UIScrollView *ScreenDurationScrollView = nullptr;\r
         UILabelExt *ScreenDurationTitleLabel = nullptr;               // 标题\r
         UILabelExt *ScreenDurationLabel[DURATIONS]{nullptr};          // 亮屏时长标签\r
-        UIImageView *BackGroundImage[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
index 95fe487..2add7fb 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-12 20:11:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-18 15:31:55
+ * @LastEditTime: 2024-07-22 12:00:13
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
  */
 #include "displaybrightness/include/DisplayBrightnessModel.h"
@@ -60,7 +60,8 @@ namespace OHOS
             return false;
         }
         displayBrightnessPresent->SetSelectScreenDurationLabel(GetScreenDurationTime());
-        UpdateRaiseToBrightnessCheckBoxButtonStatus();
+        // UpdateRaiseToBrightnessCheckBoxButtonStatus();
+        UpdateScreenDurationRadioButtonSlectStatus();
         return true;
     }
 
index 96e0d9e..88e1133 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-06-18 14:11:36\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
@@ -20,6 +20,7 @@
 #include <custom_utils.h>\r
 #include "map"\r
 #include "iostream"\r
+#include "string"\r
 #include "ConfigModel.h"\r
 namespace OHOS\r
 {\r
@@ -102,6 +103,12 @@ namespace OHOS
             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
@@ -127,24 +134,25 @@ namespace OHOS
 \r
     void DisplayBrightnessPresenter::OnStart()\r
     {\r
-\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnStart");\r
         Presenter<DisplayBrightnessView>::OnStart();\r
     }\r
 \r
     void DisplayBrightnessPresenter::OnPause(void)\r
     {\r
-\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnPause");\r
         Presenter<DisplayBrightnessView>::OnPause();\r
     }\r
 \r
     void DisplayBrightnessPresenter::OnResume(void)\r
     {\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
@@ -159,11 +167,11 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0)\r
         {\r
-            NativeAbility::GetInstance().EnterSlice(VIEW_BRIGHTNESSLEVEL);\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
+            p_DisplayBrightnessView->ChangeView(DISPLAYBRIGHTNESSVIEW, SCREENDURATIONVIEW); // å±\8få¹\95ä¸\8e亮度è§\86å\9b¾å\88\87æ\8d¢å\88°äº®å±\8fæ\97¶é\95¿è§\86å\9b¾\r
         }\r
         return true;\r
     }\r
@@ -181,7 +189,13 @@ namespace OHOS
 \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
@@ -203,12 +217,12 @@ namespace OHOS
         switch (state)\r
         {\r
         case UICheckBox::SELECTED:\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched on!");\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched on!");\r
             uapi_take_to_wake(WRIST_RAISE_TO_WAKE_ENABLED);\r
             ConfigModel::GetInstance()->SetRaiseToWake(true);\r
             break;\r
         case UICheckBox::UNSELECTED:\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched off!");\r
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Raise to Wake switched off!");\r
             uapi_take_to_wake(WRIST_RAISE_TO_WAKE_DISENABLED);\r
             ConfigModel::GetInstance()->SetRaiseToWake(false);\r
             break;\r
@@ -281,4 +295,48 @@ namespace OHOS
 \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
index 022e155..7fdfd34 100644 (file)
@@ -3,20 +3,20 @@
 #include "wearable_log.h"\r
 #include "ConfigModel.h"\r
 #include "ui_resource_string.h"\r
+#include <UiConfig.h>\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
+        WEARABLE_LOGE(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
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::~DisplayBrightnessView");\r
         g_pDisplayBrightnessView = nullptr;\r
     }\r
 \r
@@ -67,6 +67,11 @@ namespace OHOS
             delete DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW];\r
             DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] = nullptr;\r
         }\r
+        if (p_ScreenDurationView != nullptr)\r
+        {\r
+            delete p_ScreenDurationView;\r
+            p_ScreenDurationView = nullptr;\r
+        }\r
     }\r
 \r
     // 显示与亮度视图scrollView初始化\r
@@ -85,6 +90,8 @@ namespace OHOS
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDirection(1);\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetMaxScrollDistance(1000);\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetThrowDrag(true);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->RequestFocus();\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetRotateFactor(2);\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
         if (draglistener == nullptr)\r
         {\r
@@ -108,13 +115,13 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessTitleLabel new fail!");\r
             return false;\r
         }\r
-        DisplayBrightnessTitleLabel->SetPosition(83, 52, 300, 35);\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->SetText("屏幕与亮度");\r
-        DisplayBrightnessTitleLabel->SetTextId(STR_SCREEN_AND_BRIGHTNESS);\r
-        DisplayBrightnessTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
+        DisplayBrightnessTitleLabel->SetTextId(STR_SCREEN_AND_BRIGHTNESS); /*屏幕与亮度*/\r
+        DisplayBrightnessTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);\r
+        DisplayBrightnessTitleLabel->SetRollSpeed(70);\r
         DisplayBrightnessTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         DisplayBrightnessTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
         return true;\r
@@ -135,7 +142,6 @@ namespace OHOS
         button->SetViewId(buttonconfig.ViewId);\r
         button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
         button->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        // button->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);\r
         button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
         button->SetOnClickListener(clickListener);\r
         return button;\r
@@ -146,8 +152,6 @@ namespace OHOS
     /// @return true 设置成功,false 失败\r
     bool DisplayBrightnessView::InitDisplayBrightnessViewButton(void)\r
     {\r
-        /* -------------------------------------------------------------------------- */\r
-        UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(DisplayBrightnessPresenter::GetInstance());\r
         /* -------------------------------------------------------------------------- */\r
         ButtonConfig buttonconfig;\r
         buttonconfig.x = 43;\r
@@ -155,8 +159,7 @@ namespace OHOS
         buttonconfig.w = 380;\r
         buttonconfig.h = 100;\r
         buttonconfig.ViewId = BRINGHTNESSCONTROLBUTTON_VIEW;\r
-        // buttonconfig.ImageSrc = "/user/res/SETTING_BACKGROUND.bin";\r
-        BringhtnessControlButton = SetTheButton(buttonconfig, clickListener);\r
+        BringhtnessControlButton = SetTheButton(buttonconfig, presenter_);\r
         if (nullptr == BringhtnessControlButton)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::BringhtnessControlButton new fail!");\r
@@ -165,7 +168,7 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */\r
         buttonconfig.y = 240;\r
         buttonconfig.ViewId = SCREENDURATIONBUTTON_VIEWID;\r
-        ScreenDurationButton = SetTheButton(buttonconfig, clickListener);\r
+        ScreenDurationButton = SetTheButton(buttonconfig, presenter_);\r
         if (nullptr == ScreenDurationButton)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ScreenDurationButton new fail!");\r
@@ -185,11 +188,9 @@ namespace OHOS
         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->SetText(labelconfig.text.c_str());                                                     // 内容\r
         label->SetTextId(labelconfig.textId);\r
         label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
-        // label->SetRollSpeed(40);\r
-        //  label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label->SetRollSpeed(70);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
         return label;\r
     }\r
@@ -206,9 +207,8 @@ namespace OHOS
             .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            //.text = "亮度调节",\r
-            .textId = STR_BRIGHTNESS_ADJUSTMENT,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .textId = STR_BRIGHTNESS_ADJUSTMENT, /*亮度调节*/\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
         BringhtnessControlLabel = SetUpLabel(labelconfig);\r
         if (BringhtnessControlLabel == nullptr)\r
@@ -219,8 +219,7 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */\r
         labelconfig.top = 273;\r
         labelconfig.width = 180;\r
-        // labelconfig.text = "亮屏时长";\r
-        labelconfig.textId = STR_SCREEN_ON_DURATION;\r
+        labelconfig.textId = STR_SCREEN_ON_DURATION; /*亮屏时长*/\r
         ScreenDurationLabel = SetUpLabel(labelconfig);\r
         if (ScreenDurationLabel == nullptr)\r
         {\r
@@ -229,8 +228,7 @@ namespace OHOS
         }\r
         /* -------------------------------------------------------------------------- */\r
         labelconfig.top = 393;\r
-        // labelconfig.text = "抬腕亮屏";\r
-        labelconfig.textId = STR_RAISE_TO_WAKE;\r
+        labelconfig.textId = STR_RAISE_TO_WAKE; /*抬腕亮屏*/\r
         RaiseToBrightnessLabel = SetUpLabel(labelconfig);\r
         if (RaiseToBrightnessLabel == nullptr)\r
         {\r
@@ -245,9 +243,8 @@ namespace OHOS
             .height = 40,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            //.text = "",\r
             .textId = 0,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
         selectScreenDurationLabel = SetUpLabel(labelconfig);\r
         if (selectScreenDurationLabel == nullptr)\r
@@ -278,13 +275,12 @@ namespace OHOS
     /// @return true 设置成功,false 失败\r
     bool DisplayBrightnessView::InitDisplayBrightnessViewImage(void)\r
     {\r
-        const char *NextImageSrc = "/user/res/SETTING_NEXT.bin";\r
         ImageConfig imageconfig = {\r
             .x = 369,\r
             .y = 157,\r
             .w = 14,\r
             .h = 26,\r
-            .ImageSrc = NextImageSrc,\r
+            .ImageSrc = PNG_SETTING_NEXT_IMAGE,\r
         };\r
         NextImage[0] = SetUpImageView(imageconfig);\r
         if (nullptr == NextImage[0])\r
@@ -306,7 +302,7 @@ namespace OHOS
             .y = 360,\r
             .w = 380,\r
             .h = 100,\r
-            .ImageSrc = "/user/res/SETTING_BACKGROUND.bin",\r
+            .ImageSrc = PNG_SETTING_BACKGROUND_IMAGE,\r
         };\r
         RaiseToBrightnessImage = SetUpImageView(imageconfig);\r
         if (nullptr == RaiseToBrightnessImage)\r
@@ -342,8 +338,8 @@ namespace OHOS
             .w = 100,\r
             .h = 50,\r
             .ViewId = RAISETOBRIGHTNESSCHECKBOXBUTTON_VIEWID,\r
-            .select = "/user/res/TOGGLEBUTTON_ON.bin",\r
-            .unselect = "/user/res/TOGGLEBUTTON_OFF.bin",\r
+            .select = PNG_TOGGLEBUTTON_ON_IMAGE,\r
+            .unselect = PNG_TOGGLEBUTTON_OFF_IMAGE,\r
         };\r
         RaiseToBrightnessCheckBoxButton = SetUpCheckBox(checkboxconfig);\r
         if (nullptr == RaiseToBrightnessCheckBoxButton)\r
@@ -351,97 +347,92 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::RaiseToBrightnessCheckBoxButton is nullptr");\r
             return false;\r
         }\r
-        UICheckBox::OnChangeListener *checkBoxListener = static_cast<UICheckBox::OnChangeListener *>(DisplayBrightnessPresenter::GetInstance());\r
-        RaiseToBrightnessCheckBoxButton->SetOnChangeListener(checkBoxListener);\r
+        RaiseToBrightnessCheckBoxButton->SetOnChangeListener(presenter_);\r
         return true;\r
     }\r
 \r
     // 显示与亮度视图初始化\r
     void DisplayBrightnessView::DisplayAndBrightnessViewInit()\r
     {\r
-        if (SetUpScrollView() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (SetTheTitle() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewButton() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewLabel() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewImage() != true)\r
-        {\r
-            return;\r
-        }\r
-        if (InitDisplayBrightnessViewCheckBox() != true)\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
-        if (!DisplayBrightnessModel::GetInstance()->UpdateRaiseToBrightnessCheckBoxButtonStatus())\r
+        DisplayBrightnessModel::GetInstance()->UpdateRaiseToBrightnessCheckBoxButtonStatus();\r
+        DisplayBrightnessModel::GetInstance()->UpdateSelectScreenDurationLabel();\r
+    }\r
+\r
+    void DisplayBrightnessView::OnStart()\r
+    {\r
+        View<DisplayBrightnessPresenter>::OnStart();\r
+        if (!initViewStatus)\r
         {\r
-            return;\r
+            DisplayAndBrightnessViewInit();\r
+            initViewStatus = true;\r
         }\r
-        if (!DisplayBrightnessModel::GetInstance()->UpdateSelectScreenDurationLabel())\r
+        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DisplayBrightnessPresenter::GetInstance();\r
+        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+    }\r
+\r
+    void DisplayBrightnessView::OnSetUpView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::OnSetUpView");\r
+        View<DisplayBrightnessPresenter>::OnSetUpView();\r
+        if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: OnSetUpView  has nullptr");\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
+        RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]);\r
+        Draw();\r
     }\r
 \r
-    /// @brief 获取抬腕亮屏按钮状态\r
-    /// @param  void\r
-    /// @return 获取此复选框的状态。\r
-    UICheckBox::UICheckBoxState DisplayBrightnessView::GetRaiseToBrightnessCheckBoxButtonState(void)\r
+    void DisplayBrightnessView::OnTearDownView()\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::OnTearDownView");\r
+        View<DisplayBrightnessPresenter>::OnTearDownView();\r
+        return;\r
+    }\r
+\r
+    void DisplayBrightnessView::OnStop()\r
     {\r
-        return RaiseToBrightnessCheckBoxButton->GetState();\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::OnStop");\r
+        View<DisplayBrightnessPresenter>::OnStop();\r
+        RootView::GetInstance()->ClearOnKeyActListener();\r
+        RootView::GetInstance()->RemoveAll();\r
+        ClearAll();\r
+        return;\r
     }\r
 \r
     /// @brief 设置抬腕亮屏按钮状态\r
     /// @param state\r
     void DisplayBrightnessView::SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState state)\r
     {\r
-        if (RaiseToBrightnessCheckBoxButton == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButton is nullptr!");\r
-            return;\r
-        }\r
         RaiseToBrightnessCheckBoxButton->SetState(state);\r
     }\r
 \r
-    /// @brief 获取显示与亮度视图中的scrollView\r
-    /// @param i 第几个scrollView\r
-    /// @return 第几个scrollView的指针\r
-    UIScrollView *DisplayBrightnessView::GetDisplayBrightnessScrollView(int16_t i)\r
-    {\r
-        if (DisplayBrightnessScrollView[i] == nullptr)\r
-        {\r
-            return nullptr;\r
-        }\r
-        return DisplayBrightnessScrollView[i];\r
-    }\r
-\r
     ScreenDurationView *DisplayBrightnessView::GetScreenDurationView(void)\r
     {\r
-        if (p_ScreenDurationView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetScreenDurationView p_ScreenDurationView is nullptr!");\r
-            return nullptr;\r
-        }\r
-        return p_ScreenDurationView.get();\r
+        return p_ScreenDurationView;\r
     }\r
 \r
     UILabelExt *DisplayBrightnessView::GetSelectScreenDurationLabel(void)\r
     {\r
-        if (selectScreenDurationLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetSelectScreenDurationLabel selectScreenDurationLabel is nullptr!");\r
-            return nullptr;\r
-        }\r
         return selectScreenDurationLabel;\r
     }\r
 \r
@@ -462,7 +453,7 @@ namespace OHOS
         if (DisplayBrightnessScrollView[thisView] == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::ChangeScreenDurationView");\r
-            p_ScreenDurationView = std::make_shared<ScreenDurationView>();\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
@@ -474,7 +465,6 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    /* -------------------------------------------------------------------------- */\r
     // 1.DisplayBrightnessViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
     struct DisplayBrightnessViewMapper\r
     {\r
@@ -520,56 +510,4 @@ namespace OHOS
         DisplayBrightnessScrollView[showView]->SetVisible(true);\r
         Draw();\r
     }\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
-\r
-    void DisplayBrightnessView::OnSetUpView()\r
-    {\r
-        View<DisplayBrightnessPresenter>::OnSetUpView();\r
-        if (DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW] == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: OnSetUpView  has nullptr");\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
-        RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]);\r
-        Draw();\r
-    }\r
-\r
-    void DisplayBrightnessView::OnTearDownView()\r
-    {\r
-\r
-        View<DisplayBrightnessPresenter>::OnTearDownView();\r
-        return;\r
-    }\r
-\r
-    void DisplayBrightnessView::OnStop()\r
-    {\r
-\r
-        View<DisplayBrightnessPresenter>::OnStop();\r
-        RootView::GetInstance()->ClearOnKeyActListener();\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
-    }\r
 }
\ No newline at end of file
index d1dc438..546b2ce 100644 (file)
@@ -3,6 +3,7 @@
 #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
@@ -10,13 +11,13 @@ namespace OHOS
 \r
     ScreenDurationView::ScreenDurationView()\r
     {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationView");\r
+        WEARABLE_LOGE(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
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::~ScreenDurationView");\r
         ClearAll();\r
         g_pScreenDurationView = nullptr;\r
     }\r
@@ -30,43 +31,61 @@ namespace OHOS
     {\r
         if (initViewStatus == true)\r
         {\r
-            ScreenDurationScrollView->RemoveAll();\r
-\r
-            delete ScreenDurationTitleLabel;\r
-            ScreenDurationTitleLabel = nullptr;\r
-\r
-            for (int i = 0; i < DURATIONS; i++)\r
+            if (ScreenDurationScrollView != nullptr)\r
             {\r
-                delete ScreenDurationLabel[i];\r
-                ScreenDurationLabel[i] = nullptr;\r
-\r
-                delete BackGroundImage[i];\r
-                BackGroundImage[i] = nullptr;\r
-\r
-                delete SimplifiedChineseRadioButtonChange[i];\r
-                SimplifiedChineseRadioButtonChange[i] = nullptr;\r
-\r
-                delete ScreenDurationRadioButton[i];\r
-                ScreenDurationRadioButton[i] = nullptr;\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
-            delete ScreenDurationScrollView;\r
-            ScreenDurationScrollView = nullptr;\r
         }\r
     }\r
 \r
     // 设置图片\r
-    UIImageView *ScreenDurationView::SetUpImageView(ImageConfig &imageconfig)\r
+    UIButton *ScreenDurationView::SetUpButtonView(ButtonConfig &buttonConfig)\r
     {\r
-        UIImageView *Image = new UIImageView();\r
-        if (Image == nullptr)\r
+        UIButton *button = new UIButton();\r
+        if (button == nullptr)\r
         {\r
             return nullptr;\r
         }\r
-        Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h);\r
-        Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-        Image->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        Image->SetStyle(STYLE_BORDER_RADIUS, 100);\r
-        return Image;\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
@@ -80,10 +99,9 @@ namespace OHOS
         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->SetText(labelconfig.text);                                                             // 内容\r
-        label->SetTextId(labelconfig.textId);               // 内容\r
-        label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
-        // label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        label->SetTextId(labelconfig.textId);                                                         // 内容\r
+        label->SetLineBreakMode(labelconfig.lineBreakMode);                                           // 断行模式。\r
+        label->SetRollSpeed(70);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
         return label;\r
     }\r
@@ -118,6 +136,8 @@ namespace OHOS
         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
@@ -133,22 +153,25 @@ namespace OHOS
     // 亮屏时长视图“图片”初始化\r
     bool ScreenDurationView::SetUpScreenDurationViewImageView(void)\r
     {\r
-        ImageConfig imageconfig = {\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
-            imageconfig.y = 120 + (i * 120);\r
-            BackGroundImage[i] = SetUpImageView(imageconfig);\r
-            if (BackGroundImage[i] == nullptr)\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::BackGroundImage[%d] is nullptr!", i);\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
@@ -159,14 +182,13 @@ namespace OHOS
         // 创建ScreenDurationTitleLabel\r
         LabelConfig labelconfig = {\r
             .left = 83,\r
-            .top = 52,\r
+            .top = 50,\r
             .width = 300,\r
             .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            //.text = "亮屏时长",\r
-            .textId = STR_SCREEN_ON_DURATION,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .textId = STR_SCREEN_ON_DURATION, /*亮屏时长*/\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
 \r
         ScreenDurationTitleLabel = SetUpLabel(labelconfig);\r
@@ -186,7 +208,7 @@ namespace OHOS
             .fontSize = 30,\r
             .lineHeigh = 35,\r
             .textId = STR_SCREEN_ON_DURATION,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+            .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
         };\r
 \r
         // const char *durations[DURATIONS] = {"5秒", "10秒", "15秒", "30秒", "60秒", "300秒"};\r
@@ -215,8 +237,8 @@ namespace OHOS
             .x = 300,\r
             .w = 80,\r
             .h = 80,\r
-            .select = "/user/res/CHECKBOX_ON.bin",\r
-            .unselect = "/user/res/CHECKBOX_OFF.bin",\r
+            .select = PNG_CHECKBOX_ON_IMAGE,\r
+            .unselect = PNG_CHECKBOX_OFF_IMAGE,\r
         };\r
 \r
         int y_positions = 130;\r
@@ -236,68 +258,66 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    // 设置哪个单选按钮被选中\r
-    void ScreenDurationView::SetRadioButtonSelectStatus(int16_t i)\r
+    // 亮屏时长视图初始化\r
+    UIScrollView *ScreenDurationView::ScreenDurationViewInit(void)\r
     {\r
-        if (GetRadioButton(i) != nullptr)\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationViewInit");\r
+        if (!SetUpScrollView() || !SetUpScreenDurationViewImageView() ||\r
+            !SetUpScreenDurationViewLabel() || !SetUpScreenDurationViewRadioButton())\r
         {\r
-            GetRadioButton(i)->SetState(UICheckBox::SELECTED);\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationViewInit fail!!");\r
+            return nullptr;\r
         }\r
-        else\r
+\r
+        if (!DisplayBrightnessModel::GetInstance()->UpdateScreenDurationRadioButtonSlectStatus())\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::GetRadioButton(%d) is nullptr!", i);\r
+            return nullptr;\r
         }\r
-    }\r
 \r
-    UIRadioButton *ScreenDurationView::GetRadioButton(int16_t i)\r
-    {\r
-        if (ScreenDurationRadioButton[i] == nullptr)\r
+        /* ----------------------------------- Add ---------------------------------- */\r
+        ScreenDurationScrollView->Add(ScreenDurationTitleLabel);\r
+        for (int i = 0; i < DURATIONS; i++)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
-            return nullptr;\r
+            ScreenDurationScrollView->Add(ScreenDurationButton[i]);\r
+            ScreenDurationScrollView->Add(ScreenDurationLabel[i]);\r
+            ScreenDurationScrollView->Add(ScreenDurationRadioButton[i]);\r
         }\r
-        return ScreenDurationRadioButton[i];\r
+        initViewStatus = true;\r
+        return ScreenDurationScrollView;\r
     }\r
 \r
-    // 亮屏时长视图初始化\r
-    UIScrollView *ScreenDurationView::ScreenDurationViewInit(void)\r
+    // 设置哪个单选按钮被选中\r
+    void ScreenDurationView::SetRadioButtonSelectStatus(int16_t index)\r
     {\r
-        /* ------------------------ ScreenDurationScrollView ------------------------ */\r
-        if (!SetUpScrollView())\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationScrollView is nullptr!");\r
-            return nullptr;\r
-        }\r
-        /* ----------------------------- BackGroundImage[] ---------------------------- */\r
-        if (!SetUpScreenDurationViewImageView())\r
+        if (index >= DURATIONS || index < 0)\r
         {\r
-            return nullptr;\r
+            return;\r
         }\r
-        /* -------------------------- ScreenDurationLabel[] ------------------------- */\r
-        if (!SetUpScreenDurationViewLabel())\r
+\r
+        if (ScreenDurationRadioButton[index] == nullptr)\r
         {\r
-            return nullptr;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", index);\r
+            return;\r
         }\r
-        /* ----------------------- ScreenDurationRadioButton[] ---------------------- */\r
-        if (!SetUpScreenDurationViewRadioButton())\r
+\r
+        for (int i = 0; i < DURATIONS; i++)\r
         {\r
-            return nullptr;\r
+            ScreenDurationRadioButton[i]->SetState(i == index ? UICheckBox::SELECTED : UICheckBox::UNSELECTED);\r
         }\r
+    }\r
 \r
-        if (!DisplayBrightnessModel::GetInstance()->UpdateScreenDurationRadioButtonSlectStatus())\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
-        /* ----------------------------------- Add ---------------------------------- */\r
-        ScreenDurationScrollView->Add(ScreenDurationTitleLabel);\r
-        for (int i = 0; i < DURATIONS; i++)\r
-        {\r
-            ScreenDurationScrollView->Add(BackGroundImage[i]);\r
-            ScreenDurationScrollView->Add(ScreenDurationLabel[i]);\r
-            ScreenDurationScrollView->Add(ScreenDurationRadioButton[i]);\r
-        }\r
-        initViewStatus = true;\r
-        return ScreenDurationScrollView;\r
+    UIButton *ScreenDurationView::GetScreenDurationButton(int16_t i)\r
+    {\r
+        return ScreenDurationButton[i];\r
     }\r
 }
\ No newline at end of file
index 4ba3c78..0393384 100644 (file)
@@ -463,7 +463,7 @@ void HandleRemoveSleepVeto(Request *request)
 //处理更新选择的亮屏时长标签内容
 void HandleUpdateScreenDuration(Request *request)
 {
-    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateRaiseToBrightness");
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateScreenDuration");
     GraphicService::GetInstance()->PostGraphicEvent(
         std::bind(&OHOS::DisplayBrightnessModel::UpdateSelectScreenDurationLabel, OHOS::DisplayBrightnessModel::GetInstance()));
 }
index 071f256..cf5ac79 100644 (file)
@@ -1552,6 +1552,7 @@ void set_ScreenDuration(int data) //设置亮屏时长
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetScreenDuration(data);
+    uapi_setScreenDuration(data);
 #ifdef FD230
     SendMsgToUIService(UI_UPDATE_SCREEN_DURATION,0,nullptr,0);
 #endif
index 93bcf2a..7ff2738 100644 (file)
@@ -792,7 +792,7 @@ namespace OHOS
     void ConfigModel::SetScreenDuration(unsigned int value)
     {
         set_condigData_Int(CONFIGMODEL_ITEM_SCREEN_OFF_TIMEOUT_VALUE,value);
-        cm_initializeScreenDuration();
+        // cm_initializeScreenDuration();
     }
 
     /// @brief 获取亮屏时长单位ms