1.优化显示与亮度视图目前能够同步更新显示(除了亮屏时长视图不能考虑重构中)
authorluozheng <1732036298@qq.com>
Tue, 18 Jun 2024 09:32:47 +0000 (17:32 +0800)
committerluozheng <1732036298@qq.com>
Tue, 18 Jun 2024 09:32:47 +0000 (17:32 +0800)
2.优化ui_service,

13 files changed:
code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/include/BrightnessLevelView.h
code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/src/BrightnessLevelPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/src/BrightnessLevelView.cpp
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h
code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/BrightnessControlView.cpp
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/include/ui_service.h
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp
code/sdk/application/wearable/service/ble_service/blemoder/CMakeLists.txt
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp

index e12fe66..1815aa0 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-16 14:37:15
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-16 16:11:46
+ * @LastEditTime: 2024-06-18 15:30:17
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/include/BrightnessLevelView.h
  */
 #ifndef BRIGHTNESS_LEVEL_VIEW_H
@@ -23,6 +23,10 @@ namespace OHOS
         BrightnessLevelView();
         virtual ~BrightnessLevelView();
         static BrightnessLevelView *GetInstance(void);
+        BrightnessControlView *GetBrightnessControlView(void)
+        {
+            return p_BrightnessControlView;
+        }
 
         void OnStart() override;
         void OnSetUpView() override;
index ce294d4..54241b4 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-16 14:36:45
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-07 10:40:39
+ * @LastEditTime: 2024-06-18 15:19:37
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/src/BrightnessLevelPresenter.cpp
  */
 #include "brightnesslevel/include/BrightnessLevelPresenter.h"
@@ -69,7 +69,7 @@ namespace OHOS
         UNUSED(view);
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
         {
-            NativeAbility::GetInstance().Back();
+            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
         }
         return true;
     }
@@ -83,7 +83,7 @@ namespace OHOS
         // 如果是power键,且是亮屏状态,按键释放就返回上一级
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
         {
-            NativeAbility::GetInstance().Back();
+            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);
         }
         return true;
     }
index cdbc424..5317340 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-16 14:36:13
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-18 14:38:37
+ * @LastEditTime: 2024-06-18 15:28:04
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/brightnesslevel/src/BrightnessLevelView.cpp
  */
 #include "brightnesslevel/include/BrightnessLevelView.h"
@@ -16,14 +16,13 @@ namespace OHOS
 
     BrightnessLevelView::BrightnessLevelView()
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessLevelView::BrightnessLevelView");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BrightnessLevelView::BrightnessLevelView");
         g_pBrightnessLevelView = this;
     }
 
     BrightnessLevelView::~BrightnessLevelView()
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessLevelView::~BrightnessLevelView");
-        ClearAll();
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BrightnessLevelView::~BrightnessLevelView");
         g_pBrightnessLevelView = nullptr;
     }
 
@@ -57,20 +56,18 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BrightnessLevelView::BrightnessLevelViewInit] scorllView == nullptr");
             return;
         }
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(BrightnessLevelPresenter::GetInstance());
-        if (draglistener == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[BrightnessLevelView::BrightnessLevelViewInit] draglistener can not be nullptr!");
-            return;
-        }
-        scorllView->SetOnDragListener(draglistener);
     }
 
     void BrightnessLevelView::OnStart()
     {
         View<BrightnessLevelPresenter>::OnStart();
-        BrightnessLevelViewInit();
+        SetContainerView(new UIViewGroup());
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+        container_->SetOnDragListener(presenter_);
+        container_->SetTouchable(true);
+        container_->SetDraggable(true);
 
+        BrightnessLevelViewInit();
         // 增加按键监听
         RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::BrightnessLevelPresenter::GetInstance();
         RootView::GetInstance()->SetOnKeyActListener(keyactListener);
@@ -78,9 +75,8 @@ namespace OHOS
 
     void BrightnessLevelView::OnSetUpView()
     {
-
         View<BrightnessLevelPresenter>::OnSetUpView();
-        RootView::GetInstance()->Add(scorllView);
+        container_->Add(scorllView);
         Draw();
     }
 
@@ -95,7 +91,13 @@ namespace OHOS
     {
 
         View<BrightnessLevelPresenter>::OnStop();
-        RootView::GetInstance()->RemoveAll();
+        if (container_ != nullptr)
+        {
+            container_->RemoveAll();
+            delete container_;
+            container_ = nullptr;
+            ClearAll();
+        }
         RootView::GetInstance()->ClearOnKeyActListener();
         return;
     }
index 570346a..94af90d 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-04-12 20:11:04\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-18 15:36:31\r
+ * @LastEditTime: 2024-06-18 15:14:25\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/include/DisplayBrightnessModel.h\r
  */\r
 #ifndef DISPLAY_BRIGHTNESS_MODEL_H_\r
@@ -15,9 +15,10 @@ namespace OHOS
     {\r
     public:\r
         static DisplayBrightnessModel *GetInstance(void);\r
-        bool RaiseToBrightnessCheckBoxButtonStatusInit(void);\r
-        bool ScreenDurationRadioButtonSlectStatusInit(void);\r
-        bool SelectScreenDurationLabelInit(void);\r
+        bool UpdateRaiseToBrightnessCheckBoxButtonStatus(void);\r
+        bool UpdateScreenDurationRadioButtonSlectStatus(void);\r
+        bool UpdateSelectScreenDurationLabel(void);\r
+        bool UpdateBrightnessValueOfSlider(void);\r
         void SetScreenDurationTime(unsigned int time);\r
         unsigned int GetScreenDurationTime(void);\r
 \r
index aace0d4..da015af 100644 (file)
@@ -11,13 +11,13 @@ namespace OHOS
     static BrightnessControlView *g_pBrightnessControlView{nullptr};\r
     BrightnessControlView::BrightnessControlView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::BrightnessControlView");\r
         g_pBrightnessControlView = this;\r
     }\r
 \r
     BrightnessControlView::~BrightnessControlView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::~BrightnessControlView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BrightnessControlView::~BrightnessControlView");\r
         ClearAll();\r
         g_pBrightnessControlView = nullptr;\r
     }\r
@@ -33,9 +33,6 @@ namespace OHOS
         {\r
             BrightnessControlScrollView->RemoveAll();\r
 \r
-            // int value = BrightnessControlViewSlider->GetValue();\r
-            // ConfigModel::GetInstance()->SetBrightness(value);\r
-\r
             delete BrightnessControlViewSlider;\r
             BrightnessControlViewSlider = nullptr;\r
 \r
index 3784b82..95fe487 100644 (file)
@@ -2,20 +2,19 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-12 20:11:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-18 15:34:22
+ * @LastEditTime: 2024-06-18 15:31:55
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
  */
 #include "displaybrightness/include/DisplayBrightnessModel.h"
 #include "displaybrightness/include/DisplayBrightnessPresenter.h"
+#include "brightnesslevel/include/BrightnessLevelView.h"
 #include "wearable_log.h"
 #include "ConfigModel.h"
 
 namespace OHOS
 {
 
-    DisplayBrightnessModel::DisplayBrightnessModel()
-    {
-    }
+    DisplayBrightnessModel::DisplayBrightnessModel() {}
 
     DisplayBrightnessModel::~DisplayBrightnessModel() {}
 
@@ -25,12 +24,8 @@ namespace OHOS
         return &instance;
     }
 
-    
-
-    /*
-     * @brief 抬腕亮屏按钮状态设置
-     */    
-    bool DisplayBrightnessModel::RaiseToBrightnessCheckBoxButtonStatusInit(void)
+    // 更新抬腕亮屏按钮状态
+    bool DisplayBrightnessModel::UpdateRaiseToBrightnessCheckBoxButtonStatus(void)
     {
         DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
         if (displayBrightnessPresent == nullptr)
@@ -42,10 +37,8 @@ namespace OHOS
         return true;
     }
 
-    /// @brief 亮屏时长按钮选中状态初始化
-    /// @param
-    /// @return
-    bool DisplayBrightnessModel::ScreenDurationRadioButtonSlectStatusInit(void)
+    // 更新亮屏时长按钮选中状态
+    bool DisplayBrightnessModel::UpdateScreenDurationRadioButtonSlectStatus(void)
     {
         DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
         if (displayBrightnessPresent == nullptr)
@@ -57,7 +50,8 @@ namespace OHOS
         return true;
     }
 
-    bool DisplayBrightnessModel::SelectScreenDurationLabelInit(void)
+    // 更新选择的亮屏时长标签内容
+    bool DisplayBrightnessModel::UpdateSelectScreenDurationLabel(void)
     {
         DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
         if (displayBrightnessPresent == nullptr)
@@ -66,6 +60,27 @@ namespace OHOS
             return false;
         }
         displayBrightnessPresent->SetSelectScreenDurationLabel(GetScreenDurationTime());
+        UpdateRaiseToBrightnessCheckBoxButtonStatus();
+        return true;
+    }
+
+    //更新亮度条的亮度值值
+    bool DisplayBrightnessModel::UpdateBrightnessValueOfSlider(void)
+    {
+        BrightnessLevelView *p_BrightnessLevelView= BrightnessLevelView::GetInstance();
+        if (p_BrightnessLevelView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BrightnessLevelView::GetInstance fail!!");
+            return false;
+        }
+        UISlider *slider = p_BrightnessLevelView->GetBrightnessControlView()->GetBrightnessControlViewSlider();
+        if (slider == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "slider is nullptr!!");
+            return false;
+        }
+        uint8_t value = ConfigModel::GetInstance()->GetBrightness();
+        slider->SetValue(value);
         return true;
     }
 
index 21400b2..de9086b 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-07 19:55:47\r
+ * @LastEditTime: 2024-06-18 14:11:36\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp\r
  */\r
 #include "AppViewIDs.h"\r
@@ -54,10 +54,7 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetRaiseToBrightnessState displayBrightnessView GetInstance fail");\r
             return;\r
         }\r
-        if (value != false)\r
-        {\r
-            displayBrightnessView->SetRaiseToBrightnessCheckBoxButtonState(UICheckBox::UICheckBoxState::SELECTED);\r
-        }\r
+        displayBrightnessView->SetRaiseToBrightnessCheckBoxButtonState(value != false ? UICheckBox::UICheckBoxState::SELECTED : UICheckBox::UICheckBoxState::UNSELECTED);\r
     }\r
 \r
     /// @brief 根据value值设置哪个按钮被选中\r
@@ -157,6 +154,7 @@ namespace OHOS
         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 (strcmp(view.GetViewId(), BRINGHTNESSCONTROLBUTTON_VIEW) == 0)\r
@@ -193,7 +191,6 @@ namespace OHOS
             else if (strcmp(view.GetViewId(), DISPLAY_BRIGHTNESS_VIEW) == 0)\r
             {\r
                 NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
-                \r
             }\r
             DisplayBrightnessPresenter::X_DRAG_FLAG = false;\r
         }\r
@@ -240,6 +237,7 @@ namespace OHOS
      */\r
     bool ScreenDurationRadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationRadiobuttonOnChangeListener::OnChange");\r
         if (state != UICheckBox::SELECTED)\r
         {\r
             return true; // 如果不是选中状态,无需处理\r
index caaa16f..ffa0c8f 100644 (file)
@@ -2,19 +2,20 @@
 #include "displaybrightness/include/DisplayBrightnessModel.h"\r
 #include "wearable_log.h"\r
 #include "ConfigModel.h"\r
+#include "language/font/ui_resource_string.h"\r
 namespace OHOS\r
 {\r
     static DisplayBrightnessView *g_pDisplayBrightnessView{nullptr};\r
 \r
     DisplayBrightnessView::DisplayBrightnessView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessView");\r
         g_pDisplayBrightnessView = this;\r
     }\r
 \r
     DisplayBrightnessView::~DisplayBrightnessView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::~DisplayBrightnessView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::~DisplayBrightnessView");\r
         ClearAll();\r
         g_pDisplayBrightnessView = nullptr;\r
     }\r
@@ -79,9 +80,11 @@ namespace OHOS
         }\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetViewId(DISPLAY_BRIGHTNESS_VIEW);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetScrollBlankSize(35);\r
-        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetReboundSize(50);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetScrollBlankSize(75);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetReboundSize(35);\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetDirection(1);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetMaxScrollDistance(1000);\r
+        DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->SetThrowDrag(true);\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
         if (draglistener == nullptr)\r
         {\r
@@ -105,13 +108,12 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView::DisplayBrightnessTitleLabel new fail!");\r
             return false;\r
         }\r
-        DisplayBrightnessTitleLabel->SetPosition(93, 52, 280, 40);\r
+        DisplayBrightnessTitleLabel->SetPosition(83, 52, 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->SetRollSpeed(40);\r
         DisplayBrightnessTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
         DisplayBrightnessTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         DisplayBrightnessTitleLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
@@ -134,8 +136,7 @@ namespace OHOS
         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, 0xffffffff, UIButton::PRESSED);\r
-        button->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
+        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
         button->SetOnClickListener(clickListener);\r
         return button;\r
     }\r
@@ -187,8 +188,8 @@ namespace OHOS
         // 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(40);\r
+        //  label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
         return label;\r
     }\r
@@ -202,7 +203,7 @@ namespace OHOS
             .left = 90,\r
             .top = 153,\r
             .width = 250,\r
-            .height = 40,\r
+            .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
             //.text = "亮度调节",\r
@@ -218,7 +219,7 @@ namespace OHOS
         /* -------------------------------------------------------------------------- */\r
         labelconfig.top = 273;\r
         labelconfig.width = 180;\r
-        //labelconfig.text = "亮屏时长";\r
+        // labelconfig.text = "亮屏时长";\r
         labelconfig.textId = STR_SCREEN_ON_DURATION;\r
         ScreenDurationLabel = SetUpLabel(labelconfig);\r
         if (ScreenDurationLabel == nullptr)\r
@@ -228,7 +229,7 @@ namespace OHOS
         }\r
         /* -------------------------------------------------------------------------- */\r
         labelconfig.top = 393;\r
-        //labelconfig.text = "抬腕亮屏";\r
+        // labelconfig.text = "抬腕亮屏";\r
         labelconfig.textId = STR_RAISE_TO_WAKE;\r
         RaiseToBrightnessLabel = SetUpLabel(labelconfig);\r
         if (RaiseToBrightnessLabel == nullptr)\r
@@ -382,15 +383,14 @@ namespace OHOS
         {\r
             return;\r
         }\r
-        if (!DisplayBrightnessModel::GetInstance()->RaiseToBrightnessCheckBoxButtonStatusInit())\r
+        if (!DisplayBrightnessModel::GetInstance()->UpdateRaiseToBrightnessCheckBoxButtonStatus())\r
         {\r
             return;\r
         }\r
-        if (!DisplayBrightnessModel::GetInstance()->SelectScreenDurationLabelInit())\r
+        if (!DisplayBrightnessModel::GetInstance()->UpdateSelectScreenDurationLabel())\r
         {\r
             return;\r
         }\r
-        initViewStatus = true;\r
     }\r
 \r
     /// @brief 获取抬腕亮屏按钮状态\r
@@ -528,6 +528,7 @@ namespace OHOS
         if (!initViewStatus)\r
         {\r
             DisplayAndBrightnessViewInit();\r
+            initViewStatus = true;\r
         }\r
         RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DisplayBrightnessPresenter::GetInstance();\r
         RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
@@ -553,7 +554,6 @@ namespace OHOS
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessLabel);\r
         DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]->Add(RaiseToBrightnessCheckBoxButton);\r
         RootView::GetInstance()->Add(DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW]);\r
-        container_ = DisplayBrightnessScrollView[DISPLAYBRIGHTNESSVIEW];\r
         Draw();\r
     }\r
 \r
index e3f14d3..ede47b8 100644 (file)
@@ -2,6 +2,7 @@
 #include "displaybrightness/include/DisplayBrightnessPresenter.h"\r
 #include "displaybrightness/include/DisplayBrightnessModel.h"\r
 #include "wearable_log.h"\r
+#include "language/font/ui_resource_string.h"\r
 namespace OHOS\r
 {\r
 \r
@@ -9,13 +10,13 @@ namespace OHOS
 \r
     ScreenDurationView::ScreenDurationView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationView");\r
         g_pScreenDurationView = this;\r
     }\r
 \r
     ScreenDurationView::~ScreenDurationView()\r
     {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::~ScreenDurationView");\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::~ScreenDurationView");\r
         ClearAll();\r
         g_pScreenDurationView = nullptr;\r
     }\r
@@ -80,9 +81,9 @@ namespace OHOS
         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->SetTextId(labelconfig.textId);               // 内容\r
         label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
-        label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        // label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
         label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
         return label;\r
     }\r
@@ -112,9 +113,11 @@ namespace OHOS
         }\r
         ScreenDurationScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
         ScreenDurationScrollView->SetViewId(SCREENDURATIONSCROLLVIEW);\r
-        ScreenDurationScrollView->SetScrollBlankSize(35);\r
-        ScreenDurationScrollView->SetReboundSize(50);\r
+        ScreenDurationScrollView->SetScrollBlankSize(75);\r
+        ScreenDurationScrollView->SetReboundSize(35);\r
         ScreenDurationScrollView->SetDirection(1);\r
+        ScreenDurationScrollView->SetMaxScrollDistance(1000);\r
+        ScreenDurationScrollView->SetThrowDrag(true);\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
         if (draglistener == nullptr)\r
         {\r
@@ -155,10 +158,10 @@ namespace OHOS
     {\r
         // 创建ScreenDurationTitleLabel\r
         LabelConfig labelconfig = {\r
-            .left = 93,\r
+            .left = 83,\r
             .top = 52,\r
-            .width = 280,\r
-            .height = 40,\r
+            .width = 300,\r
+            .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
             //.text = "亮屏时长",\r
@@ -172,13 +175,18 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::SetUpScreenDurationViewLabel is nullptr!");\r
             return false;\r
         }\r
+        ScreenDurationTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
 \r
         // 创建ScreenDurationLabel\r
         labelconfig = {\r
-            .left = 99,\r
+            .left = 103,\r
+            .top = 153,\r
+            .width = 210,\r
+            .height = 35,\r
             .fontSize = 30,\r
             .lineHeigh = 35,\r
-            .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+            .textId = STR_SCREEN_ON_DURATION,\r
+            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
         };\r
 \r
         // const char *durations[DURATIONS] = {"5秒", "10秒", "15秒", "30秒", "60秒", "300秒"};\r
@@ -187,7 +195,6 @@ namespace OHOS
         for (int i = 0; i < DURATIONS; i++)\r
         {\r
             labelconfig.top = 153 + (i * 120);\r
-            // labelconfig.text = durations[i];\r
             labelconfig.textId = durations[i];\r
             ScreenDurationLabel[i] = SetUpLabel(labelconfig);\r
             if (ScreenDurationLabel[i] == nullptr)\r
@@ -195,6 +202,7 @@ namespace OHOS
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ScreenDurationView::ScreenDurationLabel[%d] is nullptr!", i);\r
                 return false;\r
             }\r
+            ScreenDurationLabel[i]->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);\r
         }\r
 \r
         return true;\r
@@ -276,7 +284,7 @@ namespace OHOS
             return nullptr;\r
         }\r
 \r
-        if (!DisplayBrightnessModel::GetInstance()->ScreenDurationRadioButtonSlectStatusInit())\r
+        if (!DisplayBrightnessModel::GetInstance()->UpdateScreenDurationRadioButtonSlectStatus())\r
         {\r
             return nullptr;\r
         }\r
index 002a7f6..ac4308a 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-12 11:44:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-17 17:43:25
+ * @LastEditTime: 2024-06-18 17:08:49
  * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
  */
 /*
@@ -60,6 +60,9 @@ typedef enum {
     SCREEN_OFF_ENABLE_TO_UI,
     UI_ADD_SLEEP_VETO,
     UI_RM_SLEEP_VETO,
+    UI_UPDATE_SCREEN_DURATION,  //更新亮屏时长
+    UI_UPDATE_RAISETOBRIGHTNESS,//更新抬腕亮屏
+    UI_UPDATE_BRIGHTNESS_VALUE, //更新亮度值 
 } UiServiceMsgId;
 
 #define BUNDLE_NAME_LEN 128
index 6320d04..a8e565d 100644 (file)
  * limitations under the License.
  */
 
+#include <unordered_map>
+#include <functional>
+#include <iostream>
+#include "displaybrightness/include/DisplayBrightnessModel.h"
 #include "uiservice/include/ui_service.h"
 #include "wearable_log.h"
 #include "samgr_lite.h"
@@ -63,6 +67,54 @@ const int DATA_DIST_MAIL_LENGTH = 10;
 const int BYTE_OFFSET = 8;
 static uint32_t g_interval = 5;
 
+/* -------------------------------------------------------------------------- */
+// 消息处理程序的函数指针类型
+typedef  void (*MsgHandlerFunc)(Request *);
+// 定义一个结构来保存消息处理程序
+typedef struct
+{
+    int msgId;
+    MsgHandlerFunc handler;
+} MsgHandlerEntry;
+
+// 消息处理程序的函数原型
+static void HandleJSInstallSuccess(Request *request);
+static void HandleJSUninstallSuccess(Request *request);
+static void HandlePhoneConnected(Request *request);
+static void HandlePhoneDisconnected(Request *request);
+static void HandleEarphoneConnected(Request *request);
+static void HandleEarphoneDisconnected(Request *request);
+static void HandleBluetoothConnected(Request *request);
+static void HandleBluetoothDisconnected(Request *request);
+static void HandleScreenTurnOn(Request *request);
+static void HandleScreenTurnOff(Request *request);
+static void HandleScreenOffEnable(Request *request);
+static void HandleAddSleepVeto(Request *request);
+static void HandleRemoveSleepVeto(Request *request);
+static void HandleUpdateScreenDuration(Request *request);
+static void HandleUpdateRaiseToBrightness(Request *request);
+static void HandleUpdateBrightnessValue(Request *request);
+
+// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
+MsgHandlerEntry msgHandlers[] = {
+    {JS_INSTALL_SUCESS_TO_UI, HandleJSInstallSuccess},
+    {JS_UNINSTALL_SUCESS_TO_UI, HandleJSUninstallSuccess},
+    {PHONE_CONNECTED_TO_UI, HandlePhoneConnected},
+    {PHONE_DISCONNECTED_TO_UI, HandlePhoneDisconnected},
+    {EARPHONE_CONNECTED_TO_UI, HandleEarphoneConnected},
+    {EARPHONE_DISCONNECTED_TO_UI, HandleEarphoneDisconnected},
+    {BT_CONNECTED_TO_UI, HandleBluetoothConnected},
+    {BT_DISCONNECTED_TO_UI, HandleBluetoothDisconnected},
+    {SCREEN_TURN_ON_TO_UI, HandleScreenTurnOn},
+    {SCREEN_TURN_OFF_TO_UI, HandleScreenTurnOff},
+    {SCREEN_OFF_ENABLE_TO_UI, HandleScreenOffEnable},
+    {UI_ADD_SLEEP_VETO, HandleAddSleepVeto},
+    {UI_RM_SLEEP_VETO, HandleRemoveSleepVeto},
+    {UI_UPDATE_SCREEN_DURATION, HandleUpdateScreenDuration},
+    {UI_UPDATE_RAISETOBRIGHTNESS, HandleUpdateRaiseToBrightness},
+    {UI_UPDATE_BRIGHTNESS_VALUE, HandleUpdateBrightnessValue},
+    };
+/* -------------------------------------------------------------------------- */
 static void ScreenTurnOn(Request *request)
 {
     if (OHOS::HealthModel::GetInstance()->GetBriScrStatus() == 1) {
@@ -137,6 +189,8 @@ BOOL ServiceInitialize(Service *service, Identity identity)
 
 void ServiceMsgProcess(Request *request)
 {
+    #if 0
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d",request->msgId);
     switch (request->msgId) {
         case JS_INSTALL_SUCESS_TO_UI:
         case JS_UNINSTALL_SUCESS_TO_UI:
@@ -184,8 +238,35 @@ void ServiceMsgProcess(Request *request)
         case UI_RM_SLEEP_VETO:
             uapi_pm_remove_sleep_veto(PM_ID_SCREEN);
             break;
+        case UI_UPDATE_SCREEN_DURATION:
+            GraphicService::GetInstance()->PostGraphicEvent(
+                std::bind(&OHOS::DisplayBrightnessModel::UpdateSelectScreenDurationLabel, OHOS::DisplayBrightnessModel::GetInstance()));
+            break;
+        case UI_UPDATE_RAISETOBRIGHTNESS:
+            GraphicService::GetInstance()->PostGraphicEvent(
+                std::bind(&OHOS::DisplayBrightnessModel::UpdateRaiseToBrightnessCheckBoxButtonStatus, OHOS::DisplayBrightnessModel::GetInstance()));
+            break;
+        case UI_UPDATE_BRIGHTNESS_VALUE:
+            GraphicService::GetInstance()->PostGraphicEvent(
+                std::bind(&OHOS::DisplayBrightnessModel::UpdateBrightnessValueOfSlider, OHOS::DisplayBrightnessModel::GetInstance()));
+            break;
     }
     SAMGR_FreeRequestMsg(request);
+    #endif
+    /* -------------------------------------------------------------------------- */
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d",request->msgId);
+    int numHandlers = sizeof(msgHandlers) / sizeof(msgHandlers[0]);
+    for (int i = 0; i < numHandlers; ++i)
+    {
+        if (msgHandlers[i].msgId == request->msgId)
+        {
+            msgHandlers[i].handler(request);
+            break;
+        }
+    }
+    //释放请求消息
+    SAMGR_FreeRequestMsg(request);
+    /* -------------------------------------------------------------------------- */
 }
 
 BOOL ServiceMessageHandle(Service *service, Request *request)
@@ -206,6 +287,7 @@ TaskConfig GetServiceTaskConfig(Service *service)
     return config;
 }
 
+//发送msg
 static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen)
 {
     Request *request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, UI_SVR_ID, dataLen);
@@ -228,6 +310,7 @@ static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dat
     return TRUE;
 }
 
+//发送msg给ui服务
 void SendMsgToUIService(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen)
 {
     UiServiceFeatureApi *comApi = nullptr;
@@ -245,6 +328,125 @@ void SendMsgToUIService(int32_t msgId, uint32_t msgValue, void *data, int32_t da
     comApi->Release((IUnknown *)comApi);
 }
 
+/* -------------------------------------------------------------------------- */
+void HandleJSInstallSuccess(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "bms msg_id = %d bundleName = %s",
+                          request->msgId, ((BundleData *)request->data)->bundleName);
+            GraphicService::GetInstance()->PostGraphicEvent(
+                std::bind(&OHOS::ApplistModel::ApplistUpdate, &OHOS::ApplistModel::GetInstance()));
+}
+
+void HandleJSUninstallSuccess(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "bms msg_id = %d bundleName = %s",
+                          request->msgId, ((BundleData *)request->data)->bundleName);
+            GraphicService::GetInstance()->PostGraphicEvent(
+                std::bind(&OHOS::ApplistModel::ApplistUpdate, &OHOS::ApplistModel::GetInstance()));
+}
+
+//处理手机连接成功
+void HandlePhoneConnected(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandlePhoneConnectStatus");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SettingModel::UpdatePhoneConnectStatus, &OHOS::SettingModel::GetInstance(), true));
+}
+
+//处理手机断开连接
+void HandlePhoneDisconnected(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandlePhoneDisconnected");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SettingModel::UpdatePhoneConnectStatus, &OHOS::SettingModel::GetInstance(), false));
+}
+
+//处理耳机连接成功
+void HandleEarphoneConnected(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SettingModel::UpdateEarPhoneConnectStatus, &OHOS::SettingModel::GetInstance(), true));
+}
+
+//处理耳机断开连接
+void HandleEarphoneDisconnected(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleEarphoneConnected");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SettingModel::UpdateEarPhoneConnectStatus, &OHOS::SettingModel::GetInstance(), false));
+}
+
+//处理蓝牙连接成功
+void HandleBluetoothConnected(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleBluetoothConnected");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), true));
+}
+
+//处理蓝牙断开连接
+void HandleBluetoothDisconnected(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleBluetoothDisconnected");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SettingModel::UpdateBlueToothConnectStatus, &OHOS::SettingModel::GetInstance(), false));
+}
+
+void HandleScreenTurnOn(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenTurnOn");
+    ScreenTurnOn(request);
+}
+
+void HandleScreenTurnOff(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenTurnOff");
+    ScreenTurnOff(request);
+}
+
+void HandleScreenOffEnable(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleScreenOffEnable");
+    ScreenOffEnable(request);
+}
+
+void HandleAddSleepVeto(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleAddSleepVeto");
+    uapi_pm_add_sleep_veto(PM_ID_SCREEN);
+}
+
+void HandleRemoveSleepVeto(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleRemoveSleepVeto");
+    uapi_pm_remove_sleep_veto(PM_ID_SCREEN);
+}
+
+//处理更新选择的亮屏时长标签内容
+void HandleUpdateScreenDuration(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateRaiseToBrightness");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::DisplayBrightnessModel::UpdateSelectScreenDurationLabel, OHOS::DisplayBrightnessModel::GetInstance()));
+}
+
+//处理更新抬腕亮屏按钮状态
+void HandleUpdateRaiseToBrightness(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateRaiseToBrightness");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::DisplayBrightnessModel::UpdateRaiseToBrightnessCheckBoxButtonStatus, OHOS::DisplayBrightnessModel::GetInstance()));
+}
+
+//处理更新亮度条的亮度值值
+void HandleUpdateBrightnessValue(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateBrightnessValue");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::DisplayBrightnessModel::UpdateBrightnessValueOfSlider, OHOS::DisplayBrightnessModel::GetInstance()));
+}
+/* -------------------------------------------------------------------------- */
 #ifdef __cplusplus
 }
 #endif
index b4c8693..1b9bc4d 100644 (file)
@@ -20,6 +20,7 @@ ${ROOT_DIR}/application/wearable/fd230app/nativeui/language
 ${ROOT_DIR}/application/wearable/fd230app/nativeui/traing/training_card/include
 ${ROOT_DIR}/application/wearable/fd230app/nativeui/config/include
 ${ROOT_DIR}/application/wearable/fd230app/nativeui/traing/include
+${ROOT_DIR}/application/wearable/fd230app/nativeui/uiservice/include
 #${ROOT_DIR}/application/wearable/fd230app/nativeui/alarm/include 
 ${ROOT_DIR}/application/wearable/fd230app/nativeui/alarmclockmanage/include 
 ${ROOT_DIR}/application/wearable/fd230app/nativeui/alarmclocktimerconfig/include 
index 0e31908..5393217 100644 (file)
@@ -17,7 +17,8 @@
 #include "health_service.h"
 #include "phoneaddressmodel.h"
 #include "LanguageInit.h"
-#include "ConfigModel.h" 
+#include "ConfigModel.h"
+#include "uiservice/include/ui_service.h" 
 // #include "TraingCardPresenter.h"
 
 #ifdef FD230
@@ -692,7 +693,14 @@ void set_traning_heart_max(uint8_t data)
 void set_brigthness(uint8_t data) //设置屏幕亮度
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
+    const uint8_t minbrightness =51;
+    const uint8_t maxbrightness =0xff;
+    if(data<=minbrightness)
+        data = minbrightness;
+    else if(data >= maxbrightness)
+        data = maxbrightness;
     p_ConfigModel->SetBrightness(data);
+    SendMsgToUIService(UI_UPDATE_BRIGHTNESS_VALUE,0,nullptr,0);
     return;
 }
 void Set_DmpChangeMode(int state)
@@ -717,6 +725,7 @@ void set_ScreenDuration(int data) //设置亮屏时长
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetScreenDuration(data);
+    SendMsgToUIService(UI_UPDATE_SCREEN_DURATION,0,nullptr,0);
     return;
 }
 
@@ -730,6 +739,7 @@ void Set_RaiseToWake(bool value) //抬婉亮屏开关
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetRaiseToWake(value);
+    SendMsgToUIService(UI_UPDATE_RAISETOBRIGHTNESS,0,nullptr,0);
     return;
 }