利用Model层不会被销毁的特点保存复选按钮的状态
authorluozheng <1732036298@qq.com>
Tue, 20 Feb 2024 02:11:11 +0000 (10:11 +0800)
committerluozheng <1732036298@qq.com>
Tue, 20 Feb 2024 02:11:11 +0000 (10:11 +0800)
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessPresenter.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

index 50a8230..89fd6f7 100644 (file)
@@ -1,9 +1,23 @@
 #ifndef DISPLAY_BRIGHTNESS_MODEL_H_\r
 #define DISPLAY_BRIGHTNESS_MODEL_H_\r
 \r
+namespace OHOS\r
+{\r
+    class DisplayBrightnessModel\r
+    {\r
+    public:\r
+        static DisplayBrightnessModel *GetInstance(void);\r
+        void SetRaiseToBrightnessCheckBoxButtonStatus(bool value);\r
+        bool DisplayBrightnessViewAndSubViewComponentsStatusInit();\r
+    private:\r
+        DisplayBrightnessModel();\r
+        DisplayBrightnessModel(const DisplayBrightnessModel &);\r
+        DisplayBrightnessModel &operator=(const DisplayBrightnessModel &);\r
+        virtual ~DisplayBrightnessModel();\r
 \r
-\r
-\r
-\r
+    private:\r
+        bool RaiseToBrightnessCheckBoxButtonState{false}; //抬腕按钮状态\r
+    };\r
+}\r
 \r
 #endif
\ No newline at end of file
index 8a60fdd..b839182 100644 (file)
@@ -55,7 +55,7 @@ namespace OHOS
         void OnStop() override;\r
 \r
         static DisplayBrightnessPresenter *GetInstance();\r
-\r
+        void SetRaiseToBrightnessState(bool value);\r
     private:\r
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
index 5a94007..43ac836 100644 (file)
@@ -1 +1,44 @@
-#include "displaybrightness/include/DisplayBrightnessModel.h"
\ No newline at end of file
+#include "displaybrightness/include/DisplayBrightnessModel.h"
+#include "displaybrightness/include/DisplayBrightnessPresenter.h"
+#include "wearable_log.h"
+namespace OHOS
+{
+
+    DisplayBrightnessModel::DisplayBrightnessModel() {}
+
+    DisplayBrightnessModel::~DisplayBrightnessModel() {}
+
+    DisplayBrightnessModel *DisplayBrightnessModel::GetInstance(void)
+    {
+        static DisplayBrightnessModel instance;
+        return &instance;
+    }
+
+    /// @brief 设置抬腕亮屏按钮状态
+    /// @param value true 开启 false 关闭
+    void DisplayBrightnessModel::SetRaiseToBrightnessCheckBoxButtonStatus(bool value)
+    {
+        RaiseToBrightnessCheckBoxButtonState = value;
+    }
+
+    /// @brief 显示与亮度及其子视图中的组件状态初始化
+    /// @param value true 开启 false 关闭
+    /// @return true 初始化成功 false 初始化失败
+    bool DisplayBrightnessModel::DisplayBrightnessViewAndSubViewComponentsStatusInit()
+    {
+        /* ---------------------------------- 1.亮屏值大小 --------------------------------- */
+
+        /* --------------------------------- 2.亮屏时长 --------------------------------- */
+
+        /* -------------------------------- 3.抬腕亮屏按钮的状态 ------------------------------- */
+        DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
+        if (displayBrightnessPresent == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButtonStateInit DisplayBrightnessPresenter GetInstance fail");
+            return false;
+        }
+        displayBrightnessPresent->SetRaiseToBrightnessState(RaiseToBrightnessCheckBoxButtonState); // 抬腕按钮的状态
+        return true;
+    }
+
+}
index 307b1a2..eaa17ee 100644 (file)
@@ -4,6 +4,7 @@
 #include "string.h"\r
 #include "displaybrightness/include/DisplayBrightnessPresenter.h"\r
 #include "cat1_ctl.h"\r
+#include "displaybrightness/include/DisplayBrightnessModel.h"\r
 namespace OHOS\r
 {\r
     // 当前Presenter属性实例化的内存指针\r
@@ -27,6 +28,23 @@ namespace OHOS
         return g_pDisplayBrightnessPresenter;\r
     }\r
 \r
+    /// @brief 设置抬腕亮屏状态\r
+    /// @param value \r
+    void DisplayBrightnessPresenter::SetRaiseToBrightnessState(bool value)\r
+    {\r
+        DisplayBrightnessView *displayBrightnessView = DisplayBrightnessView::GetInstance();\r
+        if (displayBrightnessView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPlayerState playersView GetInstance fail");\r
+            return;\r
+        }\r
+        if (value != false)\r
+        {\r
+            displayBrightnessView->SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
+            DisplayBrightnessModel::GetInstance()->SetRaiseToBrightnessCheckBoxButtonStatus(false);//将Model层保存的状态清除\r
+        }\r
+    }\r
+\r
     void DisplayBrightnessPresenter::OnStart()\r
     {\r
 \r
index 9b43e5b..f6e03d8 100644 (file)
@@ -1,4 +1,5 @@
 #include "displaybrightness/include/DisplayBrightnessView.h"\r
+#include "displaybrightness/include/DisplayBrightnessModel.h"\r
 #include "wearable_log.h"\r
 namespace OHOS\r
 {\r
@@ -61,8 +62,7 @@ namespace OHOS
             state = GetRaiseToBrightnessCheckBoxButtonState();\r
             if (state == UICheckBox::UICheckBoxState::SELECTED)\r
             {\r
-                //PlayersModel::GetInstance()->SetPlayButtonState(true);\r
-                //SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
+                DisplayBrightnessModel::GetInstance()->SetRaiseToBrightnessCheckBoxButtonStatus(true);\r
             }\r
 \r
             delete RaiseToBrightnessCheckBoxButton;\r
@@ -363,6 +363,7 @@ namespace OHOS
         {\r
             return;\r
         }\r
+        DisplayBrightnessModel::GetInstance()->DisplayBrightnessViewAndSubViewComponentsStatusInit();\r
         initViewStatus = true;\r
     }\r
 \r
@@ -383,7 +384,7 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::SetPlayerButtonState playerButton NULL");\r
             return;\r
         }\r
-        return RaiseToBrightnessCheckBoxButton->SetState(state);\r
+        RaiseToBrightnessCheckBoxButton->SetState(state);\r
     }\r
 \r
     /// @brief 获取显示与亮度视图中的scrollView\r