屏幕与亮度视图添加
author罗正yun <1732036298@qq.com>
Tue, 23 Jan 2024 10:23:18 +0000 (18:23 +0800)
committer罗正yun <1732036298@qq.com>
Tue, 23 Jan 2024 10:23:18 +0000 (18:23 +0800)
21 files changed:
code/sdk/application/wearable/nativeapp/CMakeLists.txt
code/sdk/application/wearable/nativeapp/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/nativeapp/nativelauncher/include/NativeLauncher.h
code/sdk/application/wearable/nativeapp/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/nativeapp/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/BrightnessControlPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/BrightnessControlView.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessModel.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessView.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/ScreenDurationPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/ScreenDurationView.h [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/BrightnessControlPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/BrightnessControlView.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessView.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/ScreenDurationPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/ScreenDurationView.cpp [new file with mode: 0644]
code/sdk/application/wearable/nativeapp/nativeui/settings/src/SettingModel.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fs/user/res/BringhtnessContuolVector.bin [new file with mode: 0644]

index 319d1d1..c417247 100755 (executable)
@@ -230,7 +230,15 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumePresenter.cpp          
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumeView.cpp            
 
-    
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/BrightnessControlPresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/BrightnessControlView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationPresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationView.cpp
+
+
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassControlView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassCalibrationView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassModel.cpp
index 277935e..cc5c74a 100755 (executable)
@@ -52,6 +52,9 @@ typedef enum : uint16_t
     VIEW_SYSTEM_VOLUME,          // 系统音量
     VIEW_CALL_VOLUME,            // 通话音量
     VIEW_MEDIA_VOLUME,           // 媒体音量
+    VIEW_DISPLAY_BRIGHTNESS,     // 屏幕与亮度
+    VIEW_BRIGHTNESS_CONTROL,     // 亮度调节
+    VIEW_SCREEN_DURATION,        // 亮屏时长
     /* ---------------------------------- 测试界面 ---------------------------------- */
     VIEW_MESSAGE, // 信息通知
     /* -------------------------------------------------------------------------- */
index 6b5b175..beb6b22 100755 (executable)
@@ -57,7 +57,11 @@ namespace OHOS
         void InitSystemVolumeSlice(void);
         void InitCallVolumeSlice(void);
         void InitMediaVolumeSlice(void);
-        void InitMessageSlice(void); 
+        void InitMessageSlice(void);
+        /* -------------------------------------------------------------------------- */
+        void InitUIDisplayBrightnessSlice(void);
+        void InitBrightnessControlSlice(void);      
+        void InitScreenDurationSlice(void);    
     private:
         void InitAllNativeSlices(void);
 
index 3362b91..27aa05f 100755 (executable)
@@ -212,6 +212,7 @@ namespace OHOS
     static constexpr const char *PNG_SETTING_NEXT_IMAGE = APP_RES_PATH "/SETTING_NEXT.bin";             //  箭头图片
     static constexpr const char *PNG_SETTING_BACKGROUND_IMAGE = APP_RES_PATH "/SETTING_BACKGROUND.bin"; //  按钮的背景图片
     static constexpr const char *PNG_VOLUME_CONTROL_VECTOR = APP_RES_PATH "/VolumeControlVector.bin";   //  调节音量图片
+    static constexpr const char *PNG_BRIGHTNESS_CONTROL_VECTOR = APP_RES_PATH "/BringhtnessContuolVector.bin";  // 调节亮度图片
     static constexpr const char *PNG_SYSTEM_CHECK_ON_IMAGE = APP_RES_PATH "/SYSTEM_CheckOn.bin";        // 勾
     static constexpr const char *PNG_SYSTEM_CHECK_OFF_IMAGE = APP_RES_PATH "/SYSTEM_CheckOff.bin";      // 叉
     static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin";     // togglebuttton未选中图片
index 3aeee45..6c46629 100755 (executable)
 #include "soundandvibration/include/SystemVolumePresenter.h"
 #include "soundandvibration/include/SystemVolumeView.h"
 
+#include "displaybrightness/include/DisplayBrightnessPresenter.h"
+#include "displaybrightness/include/DisplayBrightnessView.h"
+#include "displaybrightness/include/BrightnessControlPresenter.h"
+#include "displaybrightness/include/BrightnessControlView.h"
+#include "displaybrightness/include/ScreenDurationPresenter.h"
+#include "displaybrightness/include/ScreenDurationView.h"
+
 #include "message/include/MessageAdapter.h"
 #include "message/include/MessageView.h"
 #include "message/include/MessageItemView.h"
@@ -131,6 +138,10 @@ namespace OHOS
         {VIEW_SOUND_VIBRATION, &NativeLauncher::InitSoundAndVibrationSlice},          // 声音与震动实例化地址
         {VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice},                 // 系统音量
 
+        {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitUIDisplayBrightnessSlice}, // 显示与亮度的实例化地址
+        {VIEW_BRIGHTNESS_CONTROL, &NativeLauncher::InitBrightnessControlSlice},   // 调节亮度的实例化地址
+        {VIEW_SCREEN_DURATION, &NativeLauncher::InitScreenDurationSlice},         // 亮屏时长实例化地址
+
         {VIEW_MESSAGE, &NativeLauncher::InitMessageSlice},
 
 #if 0
@@ -493,8 +504,8 @@ namespace OHOS
         SliceProxy *messageview = new AbilitySliceProxy<MessageView, MessagePresenter>;
         if (messageview == nullptr)
         {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageView is nullptr");
-        return;
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageView is nullptr");
+            return;
         }
         NativeAbility::GetInstance().AddSliceProxy(VIEW_MESSAGE, messageview);
     }
@@ -518,5 +529,37 @@ namespace OHOS
         }
         NativeAbility::GetInstance().AddSliceProxy(VIEW_SYSTEM_VOLUME, systemvolume);
     }
-    
+
+    // DisplayBrightness的实例化
+    void NativeLauncher::InitUIDisplayBrightnessSlice(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitUISampleSlice");
+        SliceProxy *uidisplaybrightnessView = new AbilitySliceProxy<DisplayBrightnessView, DisplayBrightnessPresenter>;
+        if (uidisplaybrightnessView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uidisplaybrightnessView");
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_DISPLAY_BRIGHTNESS, uidisplaybrightnessView);
+    }
+
+    void NativeLauncher::InitBrightnessControlSlice(void)
+    {
+        SliceProxy *brightnesscontrol = new AbilitySliceProxy<BrightnessControlView, BrightnessControlPresenter>;
+        if (brightnesscontrol == nullptr)
+        {
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_BRIGHTNESS_CONTROL, brightnesscontrol);
+    }
+
+    void NativeLauncher::InitScreenDurationSlice(void)
+    {
+        SliceProxy *ScreenDuration = new AbilitySliceProxy<ScreenDurationView, ScreenDurationPresenter>;
+        if (ScreenDuration == nullptr)
+        {
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_SCREEN_DURATION, ScreenDuration);
+    }
 }
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/BrightnessControlPresenter.h b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/BrightnessControlPresenter.h
new file mode 100644 (file)
index 0000000..33f35b3
--- /dev/null
@@ -0,0 +1,37 @@
+#ifndef BRIGHTNESS_CONTROL_PRESENTER_H\r
+#define BRIGHTNESS_CONTROL_PRESENTER_H\r
+\r
+\r
+#include "Presenter.h"\r
+ \r
+#include "BrightnessControlView.h"\r
+ \r
+namespace OHOS\r
+{\r
+    class BrightnessControlView;\r
+       \r
+    class BrightnessControlPresenter : public Presenter<BrightnessControlView>,\r
+                                 public UIView::OnClickListener,\r
+                                 public UIView::OnDragListener\r
+    {\r
+    public:\r
+        BrightnessControlPresenter();\r
+        virtual ~BrightnessControlPresenter();\r
+ \r
+        void OnStart() override;  \r
+        void OnPause() override;  \r
+        void OnResume() override; \r
+        void OnStop() override;   \r
+ \r
+        static BrightnessControlPresenter *GetInstance();     \r
+ \r
+    private:\r
+        //因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+        bool OnClick(UIView &view, const ClickEvent &event) override; \r
+        bool OnDrag(UIView &view, const DragEvent &event) override;   \r
+    };\r
+} //namespace OHOS\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/BrightnessControlView.h b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/BrightnessControlView.h
new file mode 100644 (file)
index 0000000..fd14916
--- /dev/null
@@ -0,0 +1,43 @@
+#ifndef BRIGHTNESS_CONTROL_VIEW_H\r
+#define BRIGHTNESS_CONTROL_VIEW_H\r
+\r
+#include "BaseView.h"\r
+#include "View.h"\r
+\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_slider.h"\r
+#include "components/ui_image_view.h"\r
+namespace OHOS\r
+{\r
+   static const char *BRIGHTNESS_CONTROL_SLIDER = "BCslider";\r
+\r
+    class BrightnessControlPresenter;\r
+    class BrightnessControlView : public View<BrightnessControlPresenter>{ \r
+ \r
+    public:\r
+        BrightnessControlView();                         \r
+        virtual ~BrightnessControlView();                 \r
+        static BrightnessControlView *GetInstance(void);  \r
+ \r
+        void OnStart() override;        \r
+        void OnSetUpView() override;    \r
+        void OnTearDownView() override; \r
+        void OnStop() override;         \r
+    \r
+    private:\r
+        UIView::OnDragListener *draglistener{nullptr}; \r
+        UIView::OnClickListener *sliderClick{nullptr};\r
+        UIView::OnDragListener *sliderDrag{nullptr};\r
+        void InitView(void);\r
+\r
+        UIViewGroup* container_ = nullptr;\r
+        UISlider* BCslider = nullptr;\r
+        UIImageView* BCimageicon = nullptr;\r
+    };\r
+} //namespace OHOS\r
+\r
+\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessModel.h b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessModel.h
new file mode 100644 (file)
index 0000000..f733ec3
--- /dev/null
@@ -0,0 +1,9 @@
+#ifndef _DISPLAY_BRIGHTNESS_MODEL_H_\r
+#define _DISPLAY_BRIGHTNESS_MODEL_H_\r
+\r
+\r
+\r
+\r
+\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessPresenter.h
new file mode 100644 (file)
index 0000000..f75f342
--- /dev/null
@@ -0,0 +1,34 @@
+#ifndef _DISPLAY_BRIGHTNESS_PRESENTER_H\r
+#define _DISPLAY_BRIGHTNESS_PRESENTER_H\r
+\r
+/*显示与亮度*/\r
+#include "Presenter.h"\r
+#include "DisplayBrightnessView.h"\r
+ \r
+namespace OHOS\r
+{\r
+    class DisplayBrightnessView;\r
+       \r
+    class DisplayBrightnessPresenter : public Presenter<DisplayBrightnessView>,\r
+                                 public UIView::OnClickListener,\r
+                                 public UIView::OnDragListener\r
+    {\r
+    public:\r
+        DisplayBrightnessPresenter();\r
+        virtual ~DisplayBrightnessPresenter();\r
+ \r
+        void OnStart() override;  \r
+        void OnPause() override;  \r
+        void OnResume() override; \r
+        void OnStop() override;   \r
+ \r
+        static DisplayBrightnessPresenter *GetInstance();     \r
+ \r
+    private:\r
+        //因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+        bool OnClick(UIView &view, const ClickEvent &event) override; \r
+        bool OnDrag(UIView &view, const DragEvent &event) override;   \r
+    };\r
+} //namespace OHOS\r
+ \r
+#endif  //_DisplayBrightness_PRESENTER_H\r
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessView.h b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/DisplayBrightnessView.h
new file mode 100644 (file)
index 0000000..7ff8c81
--- /dev/null
@@ -0,0 +1,50 @@
+#ifndef _DISPLAY_BRIGHTNESS_VIEW_H\r
+#define _DISPLAY_BRIGHTNESS_VIEW_H\r
+\r
+#include "BaseView.h"\r
+#include "View.h"\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_checkbox.h"\r
+#include "components/ui_toggle_button.h"\r
+#include "DisplayBrightnessPresenter.h"\r
+namespace OHOS\r
+{\r
+    \r
+    class DisplayBrightnessPresenter;\r
+    class DisplayBrightnessView : public View<DisplayBrightnessPresenter>\r
+    {\r
+    public:\r
+        DisplayBrightnessView();\r
+        virtual ~DisplayBrightnessView();\r
+        static DisplayBrightnessView *GetInstance(void);\r
+\r
+        void OnStart() override;\r
+        void OnSetUpView() override;\r
+        void OnTearDownView() override;\r
+        void OnStop() override;\r
+\r
+    private:\r
+        UIView::OnDragListener *draglistener{nullptr};\r
+        void Init(void);\r
+\r
+        UIViewGroup *DisplayBrightness_container = nullptr;\r
+        UIScrollView *DisplayBrightness_scrollView = nullptr;\r
+        UIButton *ScreenDuration_Button = nullptr;\r
+        UIButton *BringhtnessControl_Button = nullptr;\r
+        UILabel *BringhtnessContuol_Label = nullptr;\r
+        UIImageView *BringhtnessContuol_Image = nullptr;\r
+        UIImageView *ScreenDuration_Image = nullptr;\r
+        UIImageView *imag =nullptr;\r
+        UIImageView *imag1 =nullptr;\r
+        UIImageView *RaiseToBrightness_Image = nullptr;\r
+        UICheckBox *RaiseToBrightness_CheckBoxButton = nullptr;\r
+        UILabel *RaiseToBrightness_Label = nullptr;\r
+        UILabel *ScreenDuration_Label = nullptr;\r
+        UILabel *DisplayBrightness_Label = nullptr;\r
+    };\r
+} // namespace OHOS\r
+#endif // DisplayBrightness_PRESENTER_H\r
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/ScreenDurationPresenter.h b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/ScreenDurationPresenter.h
new file mode 100644 (file)
index 0000000..6d028fa
--- /dev/null
@@ -0,0 +1,44 @@
+#ifndef SCREEN_DUATION_PRESENTER_H\r
+#define SCREEN_DUATION_PRESENTER_H\r
+\r
+#include "Presenter.h"\r
+\r
+#include "ScreenDurationView.h"\r
+#include "components/ui_checkbox.h"\r
+#include "components/ui_label.h"\r
+namespace OHOS\r
+{\r
+    class ScreenDurationView;\r
+\r
+    class ScreenDurationPresenter : public Presenter<ScreenDurationView>,\r
+                                    public UIView::OnClickListener,\r
+                                    public UIView::OnDragListener\r
+    {\r
+    public:\r
+        ScreenDurationPresenter();\r
+        virtual ~ScreenDurationPresenter();\r
+\r
+        void OnStart() override;\r
+        void OnPause() override;\r
+        void OnResume() override;\r
+        void OnStop() override;\r
+        static ScreenDurationPresenter *GetInstance();\r
+        void getcheckbox(UICheckBox *checkbox_5,UICheckBox *checkbox_10,UICheckBox *checkbox_15){\r
+            m_checkbox_5 = checkbox_5;\r
+            m_checkbox_10 = checkbox_10;\r
+            m_checkbox_15 = checkbox_15;\r
+        }\r
+        void UpdateCheckBoxState(UICheckBox &checkbox, bool isSelected);\r
+    private:\r
+        // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+        bool OnClick(UIView &view, const ClickEvent &event) override;\r
+        bool OnDrag(UIView &view, const DragEvent &event) override;\r
+\r
+    private:\r
+        UICheckBox *m_checkbox_5 = nullptr;\r
+        UICheckBox *m_checkbox_10 = nullptr;\r
+        UICheckBox *m_checkbox_15 = nullptr;\r
+    };\r
+} // namespace OHOS\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/ScreenDurationView.h b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/include/ScreenDurationView.h
new file mode 100644 (file)
index 0000000..2b99b64
--- /dev/null
@@ -0,0 +1,45 @@
+#ifndef SCREEN_DUATION_VIEW_H\r
+#define SCREEN_DUATION_VIEW_H\r
+//屏幕时长\r
+#include "BaseView.h"\r
+#include "View.h"\r
+#include "components/ui_view_group.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_checkbox.h"\r
+namespace OHOS\r
+{\r
+    static const char *SECOND5_CHECKBOX = "5secCheckbox";   // 5秒\r
+    static const char *SECOND10_CHECKBOX = "10secCheckbox"; // 10秒\r
+    static const char *SECOND15_CHECKBOX = "15secCheckbox"; // 15秒\r
+    class ScreenDurationPresenter;\r
+    class ScreenDurationView : public View<ScreenDurationPresenter>\r
+    {\r
+\r
+    public:\r
+        ScreenDurationView();\r
+        virtual ~ScreenDurationView();\r
+        static ScreenDurationView *GetInstance(void);\r
+\r
+        void OnStart() override;\r
+        void OnSetUpView() override;\r
+        void OnTearDownView() override;\r
+        void OnStop() override;\r
+\r
+    public:\r
+        UICheckBox *second5checkbox = nullptr;\r
+        UICheckBox *second10checkbox = nullptr;\r
+        UICheckBox *second15checkbox = nullptr;\r
+\r
+    private:\r
+        void InitView(void);\r
+\r
+    private:\r
+        UIViewGroup *container_ = nullptr;\r
+        UIScrollView *ScreenDurationScrollView = nullptr;\r
+        UILabel *ScreenDurationLabel = nullptr;\r
+    };\r
+} // namespace OHOS\r
+\r
+#endif
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/BrightnessControlPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/BrightnessControlPresenter.cpp
new file mode 100644 (file)
index 0000000..c9ffc6f
--- /dev/null
@@ -0,0 +1,77 @@
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "string.h"\r
+#include "displaybrightness/include/BrightnessControlPresenter.h"\r
+\r
+namespace OHOS{\r
+ \r
+    //当前Presenter属性实例化的内存指针\r
+    static BrightnessControlPresenter *g_pBrightnessControlPresenter = nullptr; \r
+    \r
+    BrightnessControlPresenter::BrightnessControlPresenter(){\r
+               \r
+        g_pBrightnessControlPresenter = this;\r
+    }\r
+ \r
+    BrightnessControlPresenter::~BrightnessControlPresenter(){\r
+    \r
+        g_pBrightnessControlPresenter = nullptr;\r
+    }\r
+ \r
+    BrightnessControlPresenter *BrightnessControlPresenter::GetInstance(){\r
+    \r
+        return g_pBrightnessControlPresenter;\r
+    }\r
+ \r
+    void BrightnessControlPresenter::OnStart(){\r
+    \r
+        Presenter<BrightnessControlView>::OnStart(); \r
+    }\r
+ \r
+    void BrightnessControlPresenter::OnPause(void){\r
+    \r
+        Presenter<BrightnessControlView>::OnPause();\r
+    }\r
+ \r
+    void BrightnessControlPresenter::OnResume(void){\r
+    \r
+        Presenter<BrightnessControlView>::OnResume();\r
+    }\r
+ \r
+    void BrightnessControlPresenter::OnStop(void){\r
+    \r
+        Presenter<BrightnessControlView>::OnStop(); \r
+    }\r
+ \r
+    bool BrightnessControlPresenter::OnDrag(UIView &view, const DragEvent &event){\r
+    \r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_DISPLAY_BRIGHTNESS);//跳转到显示与亮度view\r
+        }\r
+        if(strcmp(view.GetViewId(), BRIGHTNESS_CONTROL_SLIDER))\r
+        {\r
+            \r
+        }\r
+        return true;\r
+    }\r
+ \r
+    bool BrightnessControlPresenter::OnClick(UIView &view, const ClickEvent &event){\r
+    \r
+        // 根据控件id查找是哪个控件触发了点击回调\r
+        // if (strcmp(view.GetViewId(), 控件ID) == 0)\r
+        if(strcmp(view.GetViewId(), BRIGHTNESS_CONTROL_SLIDER))\r
+        {\r
+            \r
+        }\r
+        return true;\r
+    }\r
+}\r
+\r
+\r
+\r
+\r
+\r
+\r
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/BrightnessControlView.cpp b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/BrightnessControlView.cpp
new file mode 100644 (file)
index 0000000..62af870
--- /dev/null
@@ -0,0 +1,118 @@
+#include "displaybrightness/include/BrightnessControlView.h"\r
+#include "displaybrightness/include/BrightnessControlPresenter.h"\r
+#include "UiConfig.h"\r
+namespace OHOS\r
+{\r
+\r
+    static BrightnessControlView *g_pBrightnessControlView{nullptr};\r
+\r
+    BrightnessControlView::BrightnessControlView()\r
+    {\r
+        g_pBrightnessControlView = this;\r
+    }\r
+\r
+    BrightnessControlView::~BrightnessControlView()\r
+    {\r
+        g_pBrightnessControlView = nullptr;\r
+        if (container_ != nullptr)\r
+        {\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
+        if (BCslider != nullptr)\r
+        {\r
+            delete BCslider;\r
+            BCslider = nullptr;\r
+        }\r
+        if (BCimageicon != nullptr)\r
+        {\r
+            delete BCimageicon;\r
+            BCimageicon = nullptr;\r
+        }\r
+    }\r
+\r
+    BrightnessControlView *BrightnessControlView::GetInstance()\r
+    {\r
+\r
+        return g_pBrightnessControlView;\r
+    }\r
+    void BrightnessControlView::InitView(void)\r
+    {\r
+        if (container_ == nullptr)\r
+        {\r
+            container_ = new UIViewGroup();\r
+            container_->SetPosition(0, 0, 466, 466);\r
+            container_->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+            container_->SetStyle(STYLE_BACKGROUND_COLOR, 0x000000);\r
+        }\r
+        draglistener = static_cast<UIView::OnDragListener *>(BrightnessControlPresenter::GetInstance());\r
+        container_->SetOnDragListener(draglistener);\r
+        container_->SetTouchable(true);\r
+        container_->SetDraggable(true);\r
+        /********************************************************************************************************/\r
+        if (BCslider == nullptr)\r
+        {\r
+            BCslider = new UISlider();\r
+        }\r
+        BCslider->SetPosition(167, 77);\r
+        BCslider->Resize(130, 310);\r
+        BCslider->SetViewId(BRIGHTNESS_CONTROL_SLIDER);\r
+        BCslider->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+        BCslider->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        BCslider->SetStyle(STYLE_BORDER_OPA, 0x19);\r
+        BCslider->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+        BCslider->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);\r
+        BCslider->SetValue(20);\r
+        BCslider->SetSliderColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
+        BCslider->SetKnobStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+        BCslider->SetForegroundStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        BCslider->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);                                // 圆帽式\r
+        BCslider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND);                                // 设置进度条的前景样式。圆帽式\r
+        BCslider->SetStyle(STYLE_BORDER_COLOR, 0xff000000);\r
+        sliderClick = static_cast<UIView::OnClickListener *>(BrightnessControlPresenter::GetInstance()); // 用来处理之后点击slider的点击事件\r
+        BCslider->SetOnClickListener(sliderClick);\r
+        sliderDrag = static_cast<UIView::OnDragListener *>(BrightnessControlPresenter::GetInstance()); // 用来处理之后拖动slider的拖动事件\r
+        BCslider->SetOnDragListener(sliderDrag);\r
+        container_->Add(BCslider);\r
+        BCslider->SetVisible(true);\r
+        /********************************************************************************************************/\r
+        if (BCimageicon == nullptr)\r
+        {\r
+            BCimageicon = new UIImageView();\r
+        }\r
+        BCimageicon->SetPosition(213, 213);    // widget's left position and top position\r
+        BCimageicon->Resize(100, 100);         // widget's width and height\r
+        BCimageicon->SetViewId("BCimageicon"); // Set style\r
+        BCimageicon->SetStyle(STYLE_BORDER_COLOR, 0xffAAAAAA);\r
+        BCimageicon->SetSrc(PNG_BRIGHTNESS_CONTROL_VECTOR);\r
+\r
+        container_->Add(BCimageicon);\r
+        BCimageicon->SetVisible(true);\r
+    }\r
+\r
+    void BrightnessControlView::OnStart()\r
+    {\r
+        View<BrightnessControlPresenter>::OnStart();\r
+        InitView();\r
+        RootView::GetInstance()->Add(container_);\r
+    }\r
+\r
+    void BrightnessControlView::OnSetUpView()\r
+    {\r
+        View<BrightnessControlPresenter>::OnSetUpView();\r
+        Draw();\r
+    }\r
+\r
+    void BrightnessControlView::OnTearDownView()\r
+    {\r
+        View<BrightnessControlPresenter>::OnTearDownView();\r
+        return;\r
+    }\r
+\r
+    void BrightnessControlView::OnStop()\r
+    {\r
+        View<BrightnessControlPresenter>::OnStop();\r
+        RootView::GetInstance()->RemoveAll();\r
+        return;\r
+    }\r
+}\r
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
new file mode 100644 (file)
index 0000000..5a94007
--- /dev/null
@@ -0,0 +1 @@
+#include "displaybrightness/include/DisplayBrightnessModel.h"
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp
new file mode 100644 (file)
index 0000000..e8b18ae
--- /dev/null
@@ -0,0 +1,80 @@
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "string.h"\r
+#include "displaybrightness/include/DisplayBrightnessPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+    // 当前Presenter属性实例化的内存指针\r
+    static DisplayBrightnessPresenter *g_pDisplayBrightnessPresenter = nullptr;\r
+\r
+    DisplayBrightnessPresenter::DisplayBrightnessPresenter()\r
+    {\r
+\r
+        g_pDisplayBrightnessPresenter = this;\r
+    }\r
+\r
+    DisplayBrightnessPresenter::~DisplayBrightnessPresenter()\r
+    {\r
+\r
+        g_pDisplayBrightnessPresenter = nullptr;\r
+    }\r
+\r
+    DisplayBrightnessPresenter *DisplayBrightnessPresenter::GetInstance()\r
+    {\r
+\r
+        return g_pDisplayBrightnessPresenter;\r
+    }\r
+\r
+    void DisplayBrightnessPresenter::OnStart()\r
+    {\r
+\r
+        Presenter<DisplayBrightnessView>::OnStart();\r
+    }\r
+\r
+    void DisplayBrightnessPresenter::OnPause(void)\r
+    {\r
+\r
+        Presenter<DisplayBrightnessView>::OnPause();\r
+    }\r
+\r
+    void DisplayBrightnessPresenter::OnResume(void)\r
+    {\r
+\r
+        Presenter<DisplayBrightnessView>::OnResume();\r
+    }\r
+\r
+    void DisplayBrightnessPresenter::OnStop(void)\r
+    {\r
+        Presenter<DisplayBrightnessView>::OnStop();\r
+    }\r
+\r
+    bool DisplayBrightnessPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+    {\r
+\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+            return true;\r
+        }\r
+        return false;\r
+    }\r
+\r
+    bool DisplayBrightnessPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+    {\r
+        // 根据控件id查找是哪个控件触发了点击回调\r
+        if (strcmp(view.GetViewId(), "BringhtnessControl_Button") == 0)\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_BRIGHTNESS_CONTROL);//亮度调节\r
+            return true;\r
+        }\r
+        if(strcmp(view.GetViewId(), "ScreenDuration_Button") == 0)\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_SCREEN_DURATION);  //亮屏时长\r
+            return true;\r
+        }\r
+        return false;\r
+    }\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessView.cpp b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/DisplayBrightnessView.cpp
new file mode 100644 (file)
index 0000000..79c7387
--- /dev/null
@@ -0,0 +1,284 @@
+#include "displaybrightness/include/DisplayBrightnessView.h"\r
+\r
+#include "common/image_cache_manager.h"\r
+#include "UiConfig.h"\r
+#include "ui_resource_image.h"\r
+\r
+namespace OHOS\r
+{\r
+    static DisplayBrightnessView *g_pDisplayBrightnessView{nullptr};\r
+\r
+    DisplayBrightnessView::DisplayBrightnessView()\r
+    {\r
+\r
+        g_pDisplayBrightnessView = this;\r
+    }\r
+\r
+    DisplayBrightnessView::~DisplayBrightnessView()\r
+    {\r
+        g_pDisplayBrightnessView = nullptr;\r
+    }\r
+\r
+    DisplayBrightnessView *DisplayBrightnessView::GetInstance()\r
+    {\r
+\r
+        return g_pDisplayBrightnessView;\r
+    }\r
+\r
+    void DisplayBrightnessView::Init()\r
+    {\r
+        /***********************************************************************************************************/\r
+        // Add ScrollView to App\r
+        if (DisplayBrightness_scrollView == nullptr)\r
+        {\r
+            DisplayBrightness_scrollView = new UIScrollView();\r
+        }\r
+        DisplayBrightness_scrollView->SetPosition(0, 0);\r
+        DisplayBrightness_scrollView->Resize(466, 466);\r
+        DisplayBrightness_scrollView->SetViewId("DisplayBrightness_scrollView");\r
+        DisplayBrightness_scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        DisplayBrightness_scrollView->SetVisible(true);\r
+        DisplayBrightness_scrollView->SetVerticalScrollState(true); // 设置纵向是否可滚动。\r
+        /***********************************************************************************************************/\r
+        if (imag1 == nullptr)\r
+        {\r
+            imag1 = new UIImageView();\r
+        }\r
+        imag1->SetPosition(158, 0);\r
+        imag1->SetViewId("imag1");\r
+        // Add to scrollView1\r
+        DisplayBrightness_scrollView->Add(imag1);\r
+        // Add Label to App\r
+        if (DisplayBrightness_Label == nullptr)\r
+        {\r
+            DisplayBrightness_Label = new UILabel();\r
+        }\r
+        DisplayBrightness_Label->SetPosition(158, 52);\r
+        DisplayBrightness_Label->Resize(150, 35);\r
+        DisplayBrightness_Label->SetViewId("DisplayBrightness_Label");\r
+        DisplayBrightness_Label->SetStyle(STYLE_TEXT_FONT, 30);\r
+        DisplayBrightness_Label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        // Set additional property\r
+        DisplayBrightness_Label->SetText("显示与亮度");\r
+        DisplayBrightness_Label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        DisplayBrightness_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        DisplayBrightness_Label->SetRollSpeed(6);\r
+        DisplayBrightness_Label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        // Add to rootView\r
+        DisplayBrightness_scrollView->Add(DisplayBrightness_Label);\r
+        DisplayBrightness_Label->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add Button to App\r
+        if (BringhtnessControl_Button == nullptr)\r
+        {\r
+            BringhtnessControl_Button = new UIButton();\r
+        }\r
+        BringhtnessControl_Button->SetPosition(43, 120);\r
+        BringhtnessControl_Button->Resize(380, 100);\r
+        BringhtnessControl_Button->SetViewId("BringhtnessControl_Button"); // 亮度调节按钮\r
+        BringhtnessControl_Button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+        BringhtnessControl_Button->SetImageSrc(PNG_SETTING_BACKGROUND_IMAGE, nullptr);\r
+        BringhtnessControl_Button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+        BringhtnessControl_Button->SetStyleForState(STYLE_BORDER_RADIUS, 50, UIButton::PRESSED);\r
+        UIView::OnClickListener *BCButton = static_cast<UIView::OnClickListener *>(DisplayBrightnessPresenter::GetInstance());\r
+        BringhtnessControl_Button->SetOnClickListener(BCButton);\r
+        // Add to scrollView1\r
+        DisplayBrightness_scrollView->Add(BringhtnessControl_Button);\r
+        BringhtnessControl_Button->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add Label to App\r
+        if (BringhtnessContuol_Label == nullptr)\r
+        {\r
+            BringhtnessContuol_Label = new UILabel();\r
+        }\r
+        BringhtnessContuol_Label->SetPosition(90, 153);\r
+        BringhtnessContuol_Label->Resize(200, 60);\r
+        BringhtnessContuol_Label->SetViewId("BringhtnessContuol_Label");\r
+        BringhtnessContuol_Label->SetStyle(STYLE_TEXT_FONT, 30);\r
+        BringhtnessContuol_Label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        // Set additional property\r
+        BringhtnessContuol_Label->SetText("亮度调节");\r
+        BringhtnessContuol_Label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        BringhtnessContuol_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        BringhtnessContuol_Label->SetRollSpeed(6);\r
+        BringhtnessContuol_Label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        // Add to scrollView1\r
+        DisplayBrightness_scrollView->Add(BringhtnessContuol_Label);\r
+        BringhtnessContuol_Label->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add ImageView to App\r
+        if (BringhtnessContuol_Image == nullptr)\r
+        {\r
+            BringhtnessContuol_Image = new UIImageView();\r
+        }\r
+        BringhtnessContuol_Image->SetPosition(369, 157);\r
+        BringhtnessContuol_Image->Resize(14, 26);\r
+        BringhtnessContuol_Image->SetViewId("BringhtnessContuol_Image");\r
+        BringhtnessContuol_Image->SetSrc(PNG_SETTING_NEXT_IMAGE);\r
+        // Add to scrollView1\r
+        DisplayBrightness_scrollView->Add(BringhtnessContuol_Image);\r
+        BringhtnessContuol_Image->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add Button to App\r
+        if (ScreenDuration_Button == nullptr)\r
+        {\r
+            ScreenDuration_Button = new UIButton();\r
+        }\r
+        ScreenDuration_Button->SetPosition(43, 240);\r
+        ScreenDuration_Button->Resize(380, 100);\r
+        ScreenDuration_Button->SetViewId("ScreenDuration_Button"); // 亮屏时长\r
+        ScreenDuration_Button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);\r
+        ScreenDuration_Button->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+        ScreenDuration_Button->SetImageSrc(PNG_SETTING_BACKGROUND_IMAGE, nullptr);\r
+        ScreenDuration_Button->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
+        ScreenDuration_Button->SetStyleForState(STYLE_BORDER_RADIUS, 50, UIButton::PRESSED);\r
+        UIView::OnClickListener *SDButton = static_cast<UIView::OnClickListener *>(DisplayBrightnessPresenter::GetInstance());\r
+        ScreenDuration_Button->SetOnClickListener(SDButton);\r
+        // Add to scrollView1\r
+        DisplayBrightness_scrollView->Add(ScreenDuration_Button);\r
+        ScreenDuration_Button->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add Label to App\r
+        if (ScreenDuration_Label == nullptr)\r
+        {\r
+            ScreenDuration_Label = new UILabel();\r
+        }\r
+        ScreenDuration_Label->SetPosition(90, 273);              // widget's left position and top position\r
+        ScreenDuration_Label->Resize(200, 60);                   // widget's width and height\r
+        ScreenDuration_Label->SetViewId("ScreenDuration_Label"); // Set style\r
+        ScreenDuration_Label->SetStyle(STYLE_TEXT_FONT, 30);\r
+        ScreenDuration_Label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        // Set additional property\r
+        ScreenDuration_Label->SetText("亮屏时长");\r
+        ScreenDuration_Label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        ScreenDuration_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        ScreenDuration_Label->SetRollSpeed(6);\r
+        ScreenDuration_Label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        // Add to rootView\r
+        DisplayBrightness_scrollView->Add(ScreenDuration_Label);\r
+        ScreenDuration_Label->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add ImageView to App\r
+        if (ScreenDuration_Image == nullptr)\r
+        {\r
+            ScreenDuration_Image = new UIImageView();\r
+        }\r
+        ScreenDuration_Image->SetPosition(369, 277);\r
+        ScreenDuration_Image->Resize(14, 26);\r
+        ScreenDuration_Image->SetViewId("ScreenDuration_Image");\r
+        // Set additional property\r
+        ScreenDuration_Image->SetSrc(PNG_SETTING_NEXT_IMAGE);\r
+        // Add to scrollView1\r
+        DisplayBrightness_scrollView->Add(ScreenDuration_Image);\r
+        ScreenDuration_Image->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add Button to App\r
+        if (RaiseToBrightness_Image == nullptr)\r
+        {\r
+            RaiseToBrightness_Image = new UIImageView();\r
+        }\r
+        RaiseToBrightness_Image->SetPosition(43, 360);\r
+        RaiseToBrightness_Image->Resize(380, 100);\r
+        RaiseToBrightness_Image->SetViewId("RaiseToBrightness_Image"); // 抬腕亮屏\r
+        RaiseToBrightness_Image->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+        RaiseToBrightness_Image->SetStyle(STYLE_BACKGROUND_COLOR, 0xff991199);\r
+        RaiseToBrightness_Image->SetStyle(STYLE_BACKGROUND_OPA, 0x11);\r
+        RaiseToBrightness_Image->SetSrc(PNG_SETTING_BACKGROUND_IMAGE);\r
+        // Add to scrollView\r
+        DisplayBrightness_scrollView->Add(RaiseToBrightness_Image);\r
+        RaiseToBrightness_Image->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add Label to App\r
+        if (RaiseToBrightness_Label == nullptr)\r
+        {\r
+            RaiseToBrightness_Label = new UILabel();\r
+        }\r
+        RaiseToBrightness_Label->SetPosition(90, 393);\r
+        RaiseToBrightness_Label->Resize(200, 60);\r
+        RaiseToBrightness_Label->SetViewId("RaiseToBrightness_Label");\r
+        RaiseToBrightness_Label->SetStyle(STYLE_TEXT_FONT, 30);\r
+        RaiseToBrightness_Label->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        // Set additional property\r
+        RaiseToBrightness_Label->SetText("抬腕亮屏");\r
+        RaiseToBrightness_Label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        RaiseToBrightness_Label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        RaiseToBrightness_Label->SetRollSpeed(6);\r
+        RaiseToBrightness_Label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        // Add to rootView\r
+        DisplayBrightness_scrollView->Add(RaiseToBrightness_Label);\r
+        RaiseToBrightness_Label->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        // Add Button to App\r
+        if (RaiseToBrightness_CheckBoxButton == nullptr)\r
+        {\r
+            RaiseToBrightness_CheckBoxButton = static_cast<UICheckBox *>(new UIToggleButton());\r
+        }\r
+        RaiseToBrightness_CheckBoxButton->SetPosition(298, 385);\r
+        RaiseToBrightness_CheckBoxButton->Resize(100, 50);\r
+        RaiseToBrightness_CheckBoxButton->SetViewId("RaiseToBrightness_CheckBoxButton");\r
+        RaiseToBrightness_CheckBoxButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE,PNG_TOGGLEBUTTON_OFF_IMAGE);\r
+        // Add to rootView\r
+        DisplayBrightness_scrollView->Add(RaiseToBrightness_CheckBoxButton);\r
+        RaiseToBrightness_CheckBoxButton->SetVisible(true);\r
+        /***********************************************************************************************************/\r
+        if (imag == nullptr)\r
+        {\r
+            imag = new UIImageView();\r
+        }\r
+        imag->SetPosition(183, 540);\r
+        imag->SetViewId("imag");\r
+        // Add to scrollView1\r
+        DisplayBrightness_scrollView->Add(imag);\r
+    }\r
+\r
+    void DisplayBrightnessView::OnStart()\r
+    {\r
+        View<DisplayBrightnessPresenter>::OnStart();\r
+        // DisplayBrightness_container容器属性 new\r
+        DisplayBrightness_scrollView = new UIScrollView();\r
+        if (DisplayBrightness_scrollView == nullptr)\r
+        {\r
+            return;\r
+        }\r
+\r
+        // DisplayBrightness_container容器属性 扩展\r
+        DisplayBrightness_scrollView->SetPosition(0, 0);\r
+        DisplayBrightness_scrollView->SetWidth(Screen::GetInstance().GetWidth());\r
+        DisplayBrightness_scrollView->SetHeight(Screen::GetInstance().GetHeight());\r
+\r
+        draglistener = static_cast<UIView::OnDragListener *>(DisplayBrightnessPresenter::GetInstance());\r
+        if (draglistener == nullptr)\r
+        {\r
+            return;\r
+        }\r
+        DisplayBrightness_scrollView->SetOnDragListener(draglistener);\r
+        DisplayBrightness_scrollView->SetTouchable(true);\r
+        DisplayBrightness_scrollView->SetDraggable(true);\r
+\r
+        Init();\r
+\r
+        RootView::GetInstance()->Add(DisplayBrightness_scrollView);\r
+        RootView::GetInstance()->Invalidate();\r
+    }\r
+\r
+    void DisplayBrightnessView::OnSetUpView()\r
+    {\r
+        View<DisplayBrightnessPresenter>::OnSetUpView();\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()->RemoveAll();\r
+        return;\r
+    }\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/ScreenDurationPresenter.cpp b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/ScreenDurationPresenter.cpp
new file mode 100644 (file)
index 0000000..d3442cf
--- /dev/null
@@ -0,0 +1,98 @@
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "string.h"\r
+#include "displaybrightness/include/ScreenDurationPresenter.h"\r
+#include "components/ui_checkbox.h"\r
+namespace OHOS\r
+{\r
+\r
+    // 当前Presenter属性实例化的内存指针\r
+    static ScreenDurationPresenter *g_pScreenDurationPresenter = nullptr;\r
+\r
+    ScreenDurationPresenter::ScreenDurationPresenter()\r
+    {\r
+\r
+        g_pScreenDurationPresenter = this;\r
+    }\r
+\r
+    ScreenDurationPresenter::~ScreenDurationPresenter()\r
+    {\r
+\r
+        g_pScreenDurationPresenter = nullptr;\r
+    }\r
+\r
+    ScreenDurationPresenter *ScreenDurationPresenter::GetInstance()\r
+    {\r
+\r
+        return g_pScreenDurationPresenter;\r
+    }\r
+\r
+    \r
+\r
+    void ScreenDurationPresenter::OnStart()\r
+    {\r
+\r
+        Presenter<ScreenDurationView>::OnStart();\r
+    }\r
+\r
+    void ScreenDurationPresenter::OnPause(void)\r
+    {\r
+\r
+        Presenter<ScreenDurationView>::OnPause();\r
+    }\r
+\r
+    void ScreenDurationPresenter::OnResume(void)\r
+    {\r
+\r
+        Presenter<ScreenDurationView>::OnResume();\r
+    }\r
+\r
+    void ScreenDurationPresenter::OnStop(void)\r
+    {\r
+\r
+        Presenter<ScreenDurationView>::OnStop();\r
+    }\r
+\r
+    bool ScreenDurationPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+    {\r
+\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
+            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_DISPLAY_BRIGHTNESS); // 跳转到显示与亮度view\r
+        }\r
+        return true;\r
+    }\r
+   \r
+   \r
+\r
+    bool ScreenDurationPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+    {\r
+        // 根据控件id查找是哪个控件触发了点击回调\r
+        if (strcmp(view.GetViewId(), SECOND5_CHECKBOX) == 0)\r
+        {\r
+            m_checkbox_5->SetState(UICheckBox::SELECTED);\r
+            UpdateCheckBoxState(*m_checkbox_10, false);\r
+            UpdateCheckBoxState(*m_checkbox_15, false);\r
+            return true;\r
+        }\r
+        else if (strcmp(view.GetViewId(), SECOND10_CHECKBOX) == 0)\r
+        {\r
+            m_checkbox_10->SetState(UICheckBox::SELECTED);\r
+            UpdateCheckBoxState(*m_checkbox_5, false);\r
+            UpdateCheckBoxState(*m_checkbox_15, false);\r
+        }\r
+        else if (strcmp(view.GetViewId(), SECOND15_CHECKBOX) == 0)\r
+        {\r
+            m_checkbox_15->SetState(UICheckBox::SELECTED);\r
+            UpdateCheckBoxState(*m_checkbox_5, false);\r
+            UpdateCheckBoxState(*m_checkbox_10, false);\r
+        }\r
+        return false;\r
+    }\r
+    void ScreenDurationPresenter::UpdateCheckBoxState(UICheckBox &checkbox, bool isSelected)\r
+    {\r
+        checkbox.SetState(isSelected ? UICheckBox::SELECTED : UICheckBox::UNSELECTED);\r
+    }\r
+}
\ No newline at end of file
diff --git a/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/ScreenDurationView.cpp b/code/sdk/application/wearable/nativeapp/nativeui/displaybrightness/src/ScreenDurationView.cpp
new file mode 100644 (file)
index 0000000..dbebfbc
--- /dev/null
@@ -0,0 +1,271 @@
+#include "displaybrightness/include/ScreenDurationView.h"\r
+#include "displaybrightness/include/ScreenDurationPresenter.h"\r
+#include "UiConfig.h"\r
+\r
+namespace OHOS\r
+{\r
+\r
+    static ScreenDurationView *g_pScreenDurationView{nullptr};\r
+\r
+    ScreenDurationView::ScreenDurationView()\r
+    {\r
+\r
+        g_pScreenDurationView = this;\r
+    }\r
+\r
+    ScreenDurationView::~ScreenDurationView()\r
+    {\r
+        container_->RemoveAll();\r
+        delete ScreenDurationScrollView;\r
+        ScreenDurationScrollView = nullptr;\r
+        delete ScreenDurationLabel;\r
+        ScreenDurationLabel = nullptr;\r
+        delete container_;\r
+        container_ = nullptr;\r
+        g_pScreenDurationView = nullptr;\r
+    }\r
+\r
+    ScreenDurationView *ScreenDurationView::GetInstance()\r
+    {\r
+        return g_pScreenDurationView;\r
+    }\r
+\r
+    void ScreenDurationView::InitView(void)\r
+    {\r
+        if (container_ == nullptr)\r
+        {\r
+            container_ = new UIViewGroup();\r
+            container_->SetPosition(0, 0, 466, 466);\r
+            container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
+            UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(ScreenDurationPresenter::GetInstance());\r
+            if (draglistener == nullptr)\r
+            {\r
+                return;\r
+            }\r
+            container_->SetOnDragListener(draglistener);\r
+            container_->SetTouchable(true);\r
+            container_->SetDraggable(true);\r
+        }\r
+\r
+        // Add ScrollView to App\r
+        if (ScreenDurationScrollView == nullptr)\r
+        {\r
+            ScreenDurationScrollView = new UIScrollView();\r
+        }\r
+        ScreenDurationScrollView->SetPosition(0, 0);\r
+        ScreenDurationScrollView->Resize(466, 466);\r
+        ScreenDurationScrollView->SetViewId("ScreenDurationScrollView");\r
+        ScreenDurationScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        container_->Add(ScreenDurationScrollView);\r
+        ScreenDurationScrollView->SetVisible(true);\r
+\r
+        // Add Label to App\r
+        if (ScreenDurationLabel == nullptr)\r
+        {\r
+            ScreenDurationLabel = new UILabel();\r
+        }\r
+        ScreenDurationLabel->SetPosition(173, 52);             // widget's left position and top position\r
+        ScreenDurationLabel->Resize(120, 35);                  // widget's width and height\r
+        ScreenDurationLabel->SetViewId("ScreenDurationLabel"); // Set style\r
+        ScreenDurationLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
+        ScreenDurationLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        // Set additional property\r
+        ScreenDurationLabel->SetText("亮屏时长");\r
+        ScreenDurationLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        ScreenDurationLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        ScreenDurationLabel->SetRollSpeed(0);\r
+        ScreenDurationLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        // Add to scrollView1\r
+        ScreenDurationScrollView->Add(ScreenDurationLabel);\r
+        ScreenDurationLabel->SetVisible(true);\r
+        /********************************************************************************************************/\r
+        // Add ImageView to App\r
+        UIImageView *secImage5 = new UIImageView();\r
+        secImage5->SetPosition(39, 120);\r
+        secImage5->Resize(380, 100);\r
+        secImage5->SetViewId("5secImage");\r
+        secImage5->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+        secImage5->SetSrc(PNG_SETTING_BACKGROUND_IMAGE);\r
+        ScreenDurationScrollView->Add(secImage5);\r
+        secImage5->SetVisible(true);\r
+        // Add Label to App\r
+        UILabel *secLabel5 = new UILabel();\r
+        secLabel5->SetPosition(99, 153);\r
+        secLabel5->Resize(48, 35);\r
+        secLabel5->SetViewId("5secLabel");\r
+        secLabel5->SetStyle(STYLE_TEXT_FONT, 30);\r
+        secLabel5->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        secLabel5->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        secLabel5->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        secLabel5->SetText("5秒");\r
+        secLabel5->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        secLabel5->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        secLabel5->SetRollSpeed(6);\r
+        secLabel5->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        ScreenDurationScrollView->Add(secLabel5);\r
+        secLabel5->SetVisible(true);\r
+\r
+        // Add CheckBox to App\r
+        second5checkbox = new UICheckBox();\r
+        second5checkbox->SetPosition(300, 130);\r
+        second5checkbox->Resize(80, 80);\r
+        second5checkbox->SetViewId(SECOND5_CHECKBOX);\r
+        second5checkbox->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        second5checkbox->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        second5checkbox->SetImages(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+       \r
+        ScreenDurationScrollView->Add(second5checkbox);\r
+        second5checkbox->SetVisible(true);\r
+        /********************************************************************************************************/\r
+        // Add ImageView to App\r
+        UIImageView *secImage10 = new UIImageView();\r
+        secImage10->SetPosition(39, 240);\r
+        secImage10->Resize(380, 100);\r
+        secImage10->SetViewId("10secImage");\r
+        secImage10->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+        secImage10->SetSrc(PNG_SETTING_BACKGROUND_IMAGE);\r
+        ScreenDurationScrollView->Add(secImage10);\r
+        secImage10->SetVisible(true);\r
+\r
+        // Add Label to App\r
+        UILabel *secLabel10 = new UILabel();\r
+        secLabel10->SetPosition(99, 273);\r
+        secLabel10->Resize(65, 35);\r
+        secLabel10->SetViewId("10secLabel");\r
+        secLabel10->SetStyle(STYLE_TEXT_FONT, 30);\r
+        secLabel10->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        secLabel10->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        secLabel10->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        secLabel10->SetText("10秒");\r
+        secLabel10->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        secLabel10->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        secLabel10->SetRollSpeed(6);\r
+        secLabel10->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        ScreenDurationScrollView->Add(secLabel10);\r
+        secLabel10->SetVisible(true);\r
+\r
+        // Add CheckBox to App\r
+        second10checkbox = new UICheckBox();\r
+        second10checkbox->SetPosition(300, 250);\r
+        second10checkbox->Resize(80, 80);\r
+        second10checkbox->SetViewId(SECOND10_CHECKBOX);\r
+        second10checkbox->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        second10checkbox->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        second10checkbox->SetImages(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+       \r
+        ScreenDurationScrollView->Add(second10checkbox);\r
+        second10checkbox->SetVisible(true);\r
+        /********************************************************************************************************/\r
+        // Add ImageView to App\r
+        UIImageView *secImage15 = new UIImageView();\r
+        secImage15->SetPosition(39, 360);\r
+        secImage15->Resize(380, 100);\r
+        secImage15->SetViewId("15secImage");\r
+        secImage15->SetStyle(STYLE_BORDER_RADIUS, 50);\r
+        secImage15->SetSrc(PNG_SETTING_BACKGROUND_IMAGE);\r
+        ScreenDurationScrollView->Add(secImage15);\r
+        secImage15->SetVisible(true);\r
+\r
+        // Add Label to App\r
+        UILabel *secLabel15 = new UILabel();\r
+        secLabel15->SetPosition(99, 393);\r
+        secLabel15->Resize(65, 35);\r
+        secLabel15->SetViewId("15secLabel");\r
+        secLabel15->SetStyle(STYLE_TEXT_FONT, 30);\r
+        secLabel15->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        secLabel15->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        secLabel15->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+\r
+        secLabel15->SetText("15秒");\r
+        secLabel15->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
+        secLabel15->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+        secLabel15->SetRollSpeed(6);\r
+        secLabel15->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+\r
+        ScreenDurationScrollView->Add(secLabel15);\r
+        secLabel15->SetVisible(true);\r
+\r
+        // Add CheckBox to App\r
+        second15checkbox = new UICheckBox();\r
+        second15checkbox->SetPosition(300, 370);\r
+        second15checkbox->Resize(80, 80);\r
+        second15checkbox->SetViewId(SECOND15_CHECKBOX);\r
+        second15checkbox->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        second15checkbox->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+        second15checkbox->SetImages(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+       \r
+        ScreenDurationScrollView->Add(second15checkbox);\r
+        second15checkbox->SetVisible(true);\r
+        /********************************************************************************************************/\r
+        // AddLabelImageViewCheckbox(ScreenDurationScrollView, 99, 153, 48, 35, "5秒", "5secLabel",\r
+        //                           39, 120, 380, 100, "5secImage", PNG_SETTING_BACKGROUND_IMAGE,\r
+        //                           second5checkbox, 300, 130, 80, 80, SECOND5_CHECKBOX, PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+        /*\r
+        AddLabelImageViewCheckbox(ScreenDurationScrollView, 99, 273, 65, 35, "10秒", "10secLabel",\r
+                                  39, 240, 380, 100, "10secImage", PNG_SETTING_BACKGROUND_IMAGE,\r
+                                  second10checkbox, 300, 250, 80, 80, SECOND10_CHECKBOX, PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+       \r
+        AddLabelImageViewCheckbox(ScreenDurationScrollView, 99, 393, 65, 35, "15秒", "15secLabel",\r
+                                  39, 360, 380, 100, "15secImage", PNG_SETTING_BACKGROUND_IMAGE,\r
+                                  second15checkbox, 300, 370, 80, 80, SECOND15_CHECKBOX, PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);\r
+        */\r
+        \r
+        /********************************************************************************************************/\r
+        UIImageView *image1_ = new UIImageView();\r
+\r
+        image1_->SetPosition(183, 440);\r
+        image1_->Resize(100, 100);\r
+        image1_->SetViewId("image1");\r
+        ScreenDurationScrollView->Add(image1_);\r
+        image1_->SetVisible(true);\r
+        /********************************************************************************************************/\r
+\r
+        UIImageView *image2_ = new UIImageView();\r
+\r
+        image2_->SetPosition(183, 19);\r
+        image2_->Resize(100, 100);\r
+        image2_->SetViewId("image2");\r
+        ScreenDurationScrollView->Add(image2_);\r
+        image2_->SetVisible(true);\r
+\r
+        ScreenDurationPresenter::GetInstance()->getcheckbox(second5checkbox,second10checkbox,second15checkbox);\r
+        UIView::OnClickListener *checkboxClick = static_cast<UIView::OnClickListener *>(ScreenDurationPresenter::GetInstance());\r
+        second5checkbox->SetOnClickListener(checkboxClick);\r
+        second10checkbox->SetOnClickListener(checkboxClick);\r
+        second15checkbox->SetOnClickListener(checkboxClick);\r
+    }\r
+\r
+    void ScreenDurationView::OnStart()\r
+    {\r
+        View<ScreenDurationPresenter>::OnStart();\r
+        InitView();\r
+        RootView::GetInstance()->Add(container_);\r
+    }\r
+\r
+    void ScreenDurationView::OnSetUpView()\r
+    {\r
+        View<ScreenDurationPresenter>::OnSetUpView();\r
+        Draw();\r
+    }\r
+\r
+    void ScreenDurationView::OnTearDownView()\r
+    {\r
+\r
+        View<ScreenDurationPresenter>::OnTearDownView();\r
+        return;\r
+    }\r
+\r
+    void ScreenDurationView::OnStop()\r
+    {\r
+\r
+        View<ScreenDurationPresenter>::OnStop();\r
+        RootView::GetInstance()->RemoveAll();\r
+        return;\r
+    }\r
+}
\ No newline at end of file
index d9164da..93a5ff5 100755 (executable)
@@ -28,7 +28,7 @@ namespace OHOS
         settings[3] = {SETTING_ITEM_THREE, PNG_SETTINGS_SECONDARY_FUNCTION, "辅助功能", true};
         settings[4] = {SETTING_ITEM_FOUR, PNG_SETTINGS_SYSTEM, "系统", true};
         settings[5] = {SETTING_ITEM_FIVE, PNG_SETTINGS_SETTINGS_POWER_CONTROL, "关机和重启", true};
-        settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ZERO, VIEW_SHUTDOWN_OR_REBOOT));
+        settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ZERO, VIEW_DISPLAY_BRIGHTNESS));
         settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ONE, VIEW_BLUETOOTH_EARPHONE));
         settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_TWO, VIEW_SOUND_VIBRATION));
         settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_THREE, VIEW_SYSTEM));
diff --git a/code/sdk/build/config/target_config/brandy/mk_fs_image/fs/user/res/BringhtnessContuolVector.bin b/code/sdk/build/config/target_config/brandy/mk_fs_image/fs/user/res/BringhtnessContuolVector.bin
new file mode 100644 (file)
index 0000000..21d2058
Binary files /dev/null and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fs/user/res/BringhtnessContuolVector.bin differ