修改显示与亮度视图
authorluozheng <1732036298@qq.com>
Mon, 26 Feb 2024 01:56:12 +0000 (09:56 +0800)
committerluozheng <1732036298@qq.com>
Mon, 26 Feb 2024 01:56:12 +0000 (09:56 +0800)
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/src/DisplayBrightnessPresent.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/ScreenDurationView.cpp

index b839182..8f2c468 100644 (file)
@@ -26,17 +26,15 @@ namespace OHOS
     class ScreenDurationRadiobuttonOnChangeListener : public UICheckBox::OnChangeListener\r
     {\r
     public:\r
-        ScreenDurationRadiobuttonOnChangeListener(){}\r
-        ~ScreenDurationRadiobuttonOnChangeListener() {}\r
-        bool isRadioButtonSelected(int index);\r
-        void SetRadioButton(UIRadioButton *radiobutton, int16_t i)\r
+        ScreenDurationRadiobuttonOnChangeListener(UIView *view)\r
         {\r
-            m_radiobutton[i] = radiobutton;\r
+            m_view = view;\r
         }\r
+        ~ScreenDurationRadiobuttonOnChangeListener() {}\r
         bool OnChange(UICheckBox::UICheckBoxState state) override;\r
 \r
     private:\r
-        UIRadioButton *m_radiobutton[3]{nullptr};\r
+        UIView *m_view{nullptr};\r
     };\r
 \r
     class DisplayBrightnessView;\r
@@ -56,6 +54,7 @@ namespace OHOS
 \r
         static DisplayBrightnessPresenter *GetInstance();\r
         void SetRaiseToBrightnessState(bool value);\r
+\r
     private:\r
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
index 205e0ec..65fd31f 100644 (file)
@@ -70,6 +70,7 @@ namespace OHOS
         UIScrollView *GetDisplayBrightnessScrollView(int16_t i);\r
         UICheckBox::UICheckBoxState GetRaiseToBrightnessCheckBoxButtonState(void);\r
         void SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState state);\r
+        ScreenDurationView * GetScreenDurationView(void);\r
     public:\r
         void OnStart() override;\r
         void OnSetUpView() override;\r
index c5f92ac..78b2a18 100644 (file)
@@ -29,7 +29,7 @@ namespace OHOS
     }\r
 \r
     /// @brief 设置抬腕亮屏状态\r
-    /// @param value \r
+    /// @param value\r
     void DisplayBrightnessPresenter::SetRaiseToBrightnessState(bool value)\r
     {\r
         DisplayBrightnessView *displayBrightnessView = DisplayBrightnessView::GetInstance();\r
@@ -41,7 +41,7 @@ namespace OHOS
         if (value != false)\r
         {\r
             displayBrightnessView->SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
-            DisplayBrightnessModel::GetInstance()->SetRaiseToBrightnessCheckBoxButtonStatus(false);//将Model层保存的状态清除\r
+            DisplayBrightnessModel::GetInstance()->SetRaiseToBrightnessCheckBoxButtonStatus(false); // 将Model层保存的状态清除\r
         }\r
     }\r
 \r
@@ -166,37 +166,42 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    bool ScreenDurationRadiobuttonOnChangeListener::isRadioButtonSelected(int index)\r
+    bool ScreenDurationRadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
     {\r
-        if (m_radiobutton[index]->GetState() == UICheckBox::SELECTED)\r
+        DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
+        if (p_DisplayBrightnessView == nullptr)\r
         {\r
-            return true;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::GetInstance fail!");\r
+            return false;\r
         }\r
-        return false;\r
-    }\r
-\r
-    bool ScreenDurationRadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
-    {\r
-        for (int i = 0; i < 3; i++)\r
+        switch (state)\r
         {\r
-            if (isRadioButtonSelected(i))\r
+        case UICheckBox::SELECTED:\r
+            if (p_DisplayBrightnessView->GetScreenDurationView() != nullptr)\r
             {\r
-                switch (i)\r
+                if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(0) == (UIView *)m_view)\r
                 {\r
-                case 0:\r
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 5 seconds");\r
-                    break;\r
-                case 1:\r
+                    return true;\r
+                }\r
+                else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(1) == (UIView *)m_view)\r
+                {\r
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 10 seconds");\r
-                    break;\r
-                case 2:\r
+                    return true;\r
+                }\r
+                else if (p_DisplayBrightnessView->GetScreenDurationView()->GetRadioButton(2) == (UIView *)m_view)\r
+                {\r
                     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Switched to 15 seconds");\r
-                    break;\r
-                default:\r
-                    break;\r
+                    return true;\r
                 }\r
             }\r
+\r
+            break;\r
+        case UICheckBox::UNSELECTED:\r
+            break;\r
+        default:\r
+            break;\r
         }\r
-        return true;\r
+        return false;\r
     }\r
 }
\ No newline at end of file
index c7228dd..866f6c6 100644 (file)
@@ -394,12 +394,21 @@ namespace OHOS
     {\r
         if (DisplayBrightnessScrollView[i] == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessScrollView[%d] is nullptr!", i);\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;\r
+    }\r
+\r
     // 1.切换到“屏幕与亮度”视图\r
     bool DisplayBrightnessView::ChangeDisplayBrightnessView(int16_t thisView)\r
     {\r
index 6631a54..83ede9b 100644 (file)
@@ -214,8 +214,6 @@ namespace OHOS
 \r
         int y_positions[] = {130, 250, 370};\r
         const char *viewID[] = {SCREENDURATION_FIVESECONDS_VIEWID, SCREENDURATION_TENSECONDS_VIEWID, SCREENDURATION_FIFTEENSECONDS_VIEWID};\r
-        ScreenDurationRadiobuttonOnChangeListener *p_ScreenDurationRadiobuttonOnChangeListener = new ScreenDurationRadiobuttonOnChangeListener();\r
-        UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange = static_cast<UICheckBox::OnChangeListener *>(p_ScreenDurationRadiobuttonOnChangeListener);\r
         for (int i = 0; i < 3; i++)\r
         {\r
             radiobuttonconfig.y = y_positions[i];\r
@@ -226,7 +224,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationRadioButton[%d] is nullptr!", i);\r
                 return false;\r
             }\r
-            p_ScreenDurationRadiobuttonOnChangeListener->SetRadioButton(ScreenDurationRadioButton[i],i);\r
+            UICheckBox::OnChangeListener *SimplifiedChineseRadioButtonChange = static_cast<UICheckBox::OnChangeListener *>(new ScreenDurationRadiobuttonOnChangeListener(ScreenDurationRadioButton[i]));\r
             ScreenDurationRadioButton[i]->SetOnChangeListener(SimplifiedChineseRadioButtonChange);\r
         }\r
 \r