优化声音与设置视图
authorluozheng <1732036298@qq.com>
Fri, 19 Apr 2024 07:06:03 +0000 (15:06 +0800)
committerluozheng <1732036298@qq.com>
Fri, 19 Apr 2024 07:06:03 +0000 (15:06 +0800)
23 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingVolumeSettingView.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumePresenter.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumeView.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/MediaVolumePresenter.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/MediaVolumeView.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationView.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingView.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumePresenter.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumeView.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/CallVolumePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/CallVolumeView.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/MediaVolumePresenter.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/MediaVolumeView.cpp [deleted file]
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingView.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumeView.cpp

index bdad07b..9c504b9 100644 (file)
@@ -355,12 +355,11 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingView.cpp      
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingPresenter.cpp      
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SystemVolumePresenter.cpp           
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SystemVolumeView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/CallVolumePresenter.cpp           
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/CallVolumeView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumePresenter.cpp          
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumeView.cpp            
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/CallVolumeView.cpp          
 
     #显示与亮度
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
index 40775ed..0219c80 100644 (file)
@@ -47,7 +47,6 @@ typedef enum : uint16_t
     VIEW_SOUND_VIBRATION,         // 声音与震动
     VIEW_SYSTEM_VOLUME,           // 系统音量
     VIEW_CALL_VOLUME,             // 通话音量
-    VIEW_MEDIA_VOLUME,            // 媒体音量
     VIEW_DISPLAY_BRIGHTNESS,      // 屏幕与亮度
     VIEW_SECONDARY_FUNCTION,      // 辅助功能
     VIEW_FAST_TRAINING,           // 快速训练
index 8abf4e2..7d4794d 100644 (file)
@@ -690,6 +690,7 @@ namespace OHOS
         SliceProxy *SoundAndVibration = new AbilitySliceProxy<SoundAndVibrationView, SoundAndVibrationPresenter>;
         if (SoundAndVibration == nullptr)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibration");
             return;
         }
         NativeAbility::GetInstance().AddSliceProxy(VIEW_SOUND_VIBRATION, SoundAndVibration);
@@ -700,6 +701,7 @@ namespace OHOS
         SliceProxy *systemvolume = new AbilitySliceProxy<SystemVolumeView, SystemVolumePresenter>;
         if (systemvolume == nullptr)
         {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "systemvolume");
             return;
         }
         NativeAbility::GetInstance().AddSliceProxy(VIEW_SYSTEM_VOLUME, systemvolume);
index 5c08bd8..83c9b4b 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-13 17:38:18
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-19 15:02:48
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/record/src/RecordingVolumeSettingView.cpp
+ */
 #include "record/include/RecordingVolumeSettingView.h"
 #include "record/include/RecordingPresenter.h"
 
@@ -39,7 +46,7 @@ namespace OHOS
     UIScrollView *RecordingVolumeSettingView::RecordingVolumeSettingViewInit(void)
     {
 
-        p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView();
+        p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(SYSTEM_VOLUME);
         if (p_SoundAndVibrationVolumeSettingView == nullptr)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_SoundAndVibrationVolumeSettingView nullptr err");
index a53ad44..e009bcc 100644 (file)
@@ -1,3 +1,10 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-01-29 16:24:23\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-19 09:48:42\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumePresenter.h\r
+ */\r
 #ifndef CALL_VOLUME_PRESENTER_H\r
 #define CALL_VOLUME_PRESENTER_H\r
 \r
 \r
 namespace OHOS\r
 {\r
-    class CallVolumeView;\r
+    typedef enum : uint8_t\r
+    {\r
+        VOLUMEREDUCE = 0, // 声音降低\r
+        VOLUMEADD = 1,    // 声音增加\r
+        OTHER = 2,        // 其他\r
+    } VolumeStatusChange;\r
 \r
+    /*\r
+     * @brief 声音进度条的事件监听类\r
+     */\r
+    class VoumeProcessSliderEventListener : public UISlider::UISliderEventListener,\r
+                                            public UIView::OnClickListener,\r
+                                            public UIView::OnDragListener\r
+    {\r
+    public:\r
+        VoumeProcessSliderEventListener();\r
+        ~VoumeProcessSliderEventListener();\r
+        static VoumeProcessSliderEventListener *GetInstance(void);\r
+        void ChangeVolumeValue(uint8_t status, uint8_t value);\r
+        void LocalVolumeSet(int16_t sounding);\r
+        void OnChange(int32_t value) override;\r
+        void OnRelease(int32_t value) override;\r
+        bool OnClick(UIView &view, const ClickEvent &event) override;\r
+        bool OnDrag(UIView &view, const DragEvent &event) override;\r
+\r
+    private:\r
+        int32_t VolumeValue; // 声音值\r
+    };\r
+\r
+    class CallVolumeView;\r
     class CallVolumePresenter : public Presenter<CallVolumeView>,\r
-                                       public UIView::OnClickListener,\r
-                                       public UIView::OnDragListener\r
+                                  public UIView::OnClickListener,\r
+                                  public RootView::OnKeyActListener,\r
+                                  public UIView::OnDragListener\r
     {\r
     public:\r
         CallVolumePresenter();\r
@@ -27,6 +63,7 @@ namespace OHOS
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
         bool OnDrag(UIView &view, const DragEvent &event) override;\r
+        bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
     };\r
 } // namespace OHOS\r
 \r
index 501bac0..ab271c7 100644 (file)
@@ -1,16 +1,22 @@
-#ifndef CALL_VOLUME_VIEW_H\r
-#define CALL_VOLUME_VIEW_H\r
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-01-29 15:37:44\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-19 09:41:56\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumeView.h\r
+ */\r
+#ifndef SYSTEM_VOLUME_VIEW_H\r
+#define SYSTEM_VOLUME_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
+#include "components/ui_scroll_view.h"\r
+#include "soundandvibration/include/SoundAndVibrationVolumeSettingView.h"\r
 namespace OHOS\r
 {\r
-    static const char *CALL_VOLUME_SLIDER = "CallVolumeSlider";\r
+    static const char *SYSTEM_VOLUME_SLIDER = "CallVolumeSlider";\r
 \r
+    class SoundAndVibrationVolumeSettingView;\r
     class CallVolumePresenter;\r
     class CallVolumeView : public View<CallVolumePresenter>\r
     {\r
@@ -25,15 +31,14 @@ namespace OHOS
         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
+        UIScrollView *CallVolumeViewInit(void);\r
+        void ClearAll();\r
 \r
-        UIViewGroup *container_ = nullptr;\r
-        UISlider *CallVolumeslider = nullptr;\r
-        UIImageView *CallVolumeimageicon = nullptr;\r
+    private:\r
+        UIScrollView *CallVolumeScrollView{nullptr};\r
+        SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView{nullptr};\r
+        UIView::OnDragListener *volumeDragListener{nullptr};\r
+        bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
 \r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/MediaVolumePresenter.h b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/MediaVolumePresenter.h
deleted file mode 100644 (file)
index fb7f059..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-#ifndef MEDIA_VOLUME_PRESENTER_H\r
-#define MEDIA_VOLUME_PRESENTER_H\r
-\r
-#include "Presenter.h"\r
-#include "MediaVolumeView.h"\r
-\r
-namespace OHOS\r
-{\r
-    class MediaVolumeView;\r
-\r
-    class MediaVolumePresenter : public Presenter<MediaVolumeView>,\r
-                                       public UIView::OnClickListener,\r
-                                       public UIView::OnDragListener\r
-    {\r
-    public:\r
-        MediaVolumePresenter();\r
-        virtual ~MediaVolumePresenter();\r
-\r
-        void OnStart() override;\r
-        void OnPause() override;\r
-        void OnResume() override;\r
-        void OnStop() override;\r
-\r
-        static MediaVolumePresenter *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
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/MediaVolumeView.h b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/MediaVolumeView.h
deleted file mode 100644 (file)
index 210b93d..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-#ifndef MEDIA_VOLUME_VIEW_H\r
-#define MEDIA_VOLUME_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 *MEDIA_VOLUME_SLIDER = "MediaVolumeSlider";\r
-\r
-    class MediaVolumePresenter;\r
-    class MediaVolumeView : public View<MediaVolumePresenter>\r
-    {\r
-\r
-    public:\r
-        MediaVolumeView();\r
-        virtual ~MediaVolumeView();\r
-        static MediaVolumeView *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 *MediaVolumeslider = nullptr;\r
-        UIImageView *MediaVolumeimageicon = nullptr;\r
-    };\r
-} // namespace OHOS\r
-\r
-#endif
\ No newline at end of file
index ad40dc3..5bdef0a 100644 (file)
@@ -4,54 +4,30 @@
 #include "BaseView.h"\r
 #include "View.h"\r
 #include "components/ui_scroll_view.h"\r
-#include "components/ui_label.h"\r
 #include "components/ui_label_ext.h"\r
-#include "components/ui_button.h"\r
-#include "components/ui_image_view.h"\r
+#include "components/ui_label_button_ext.h"\r
 #include "components/ui_toggle_button.h"\r
 #include "iostream"\r
 namespace OHOS\r
 {\r
-    /* ----------------------------------- 图片 ----------------------------------- */\r
-    static constexpr const char *PNG_SYSTEM_VOLUME_IMAGE = "/user/res/SoundAndVibration/SYSTEM_VOLUME.bin"; // 系统音量图片\r
-    static constexpr const char *PNG_CALL_VOLUME_IMAGE = "/user/res/SoundAndVibration/CALL_VOLUME.bin";     // 通话音量图片\r
-    static constexpr const char *PNG_MEDIA_VOLUME_IMAGE = "/user/res/SoundAndVibration/MEDIA_VOLUME.bin";   // 媒体音量图片\r
     /* ---------------------------------- 组件ID ---------------------------------- */\r
-    static const char *SYSTEM_VOLUME_BUTTON = "SystemVolumeButton";           // 系统音量按钮ID\r
-    static const char *CALL_VOLUME_BUTTON = "CallVolumeButton";               // 通话音量按钮ID\r
-    static const char *VIBRATION_REMINDER_BUTTON = "VibrationReminderButton"; // 震动模式按钮ID\r
+    static constexpr const char *SYSTEM_VOLUME_BUTTON = "SystemVolumeButton";           // 系统音量按钮ID\r
+    static constexpr const char *CALL_VOLUME_BUTTON = "CallVolumeButton";               // 通话音量按钮ID\r
+    static constexpr const char *VIBRATION_REMINDER_BUTTON = "VibrationReminderButton"; // 震动模式按钮ID\r
+    static constexpr const char *SILENT_MODE_BUTTON = "SilentModeButton";               // 静音模式按钮ID\r
     class SoundAndVibrationPresenter;\r
     class SoundAndVibrationView : public View<SoundAndVibrationPresenter>\r
     {\r
 \r
     public:\r
-        struct ImageConfig\r
-        {\r
-            int16_t x;\r
-            int16_t y;\r
-            int16_t w;\r
-            int16_t h;\r
-            const char *ImageSrc;\r
-        };\r
-        struct LabelConfig\r
-        {\r
-            int16_t left;\r
-            int16_t top;\r
-            int16_t width;\r
-            int16_t height;\r
-            int16_t fontSize;      // 字体大小\r
-            int16_t lineHeigh;     // 行高\r
-            std::string text;      // 文本\r
-            uint8_t lineBreakMode; // 断行模式。\r
-        };\r
         struct ButtonConfig\r
         {\r
             int16_t x;\r
             int16_t y;\r
             int16_t w;\r
             int16_t h;\r
-            const char *ViewId;\r
-            int64_t BackgroundColorValue;          // 按钮背景颜色值\r
+            const char * ViewId;\r
+            std::string Text;\r
         };\r
         SoundAndVibrationView();\r
         virtual ~SoundAndVibrationView();\r
@@ -69,33 +45,20 @@ namespace OHOS
     private:\r
         void InitView(void);\r
         void ClearAll(void);\r
-        UIButton *SetUpButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener);\r
-        UIImageView *SetUpImageVIew(ImageConfig &imageconfig);\r
-        UILabelExt *SetUpLabel(LabelConfig &labelConfig);\r
+        UILabelButtonExt *SetUpButton_Ext(ButtonConfig &buttonconfig, bool nextImgVisible);\r
         bool InitSoundAndVibrationScrollView(void);\r
         bool InitSoundAndVibrationViewTitleLabel(void);\r
         bool InitSoundAndVibrationButtonView(void);\r
-        bool SetUpButtonAndCheck(const char *viewId, int x, int y, UIButton *&button, UIView::OnClickListener *listener);\r
-        bool InitSoundAndVibrationImageView(void);\r
-        bool InitSoundAndVibrationLabel(void);\r
         bool InitSoundAndVibrationToggleButton(void);\r
 \r
     private:\r
         UIScrollView *SoundAndVibrationScrollView{nullptr};\r
-        UILabelExt *Title{nullptr};                       // 标题:“声音与震动”\r
-        UIButton *SystemVolumeButton{nullptr};            // 系统音量按钮\r
-        UIButton *CallVolumeButton{nullptr};              // 通话音量按钮\r
-        UIButton *VibrationReminderButton{nullptr};       // 震动提醒按钮\r
-        UILabelExt *SystemVolumeLabel{nullptr};           // 系统音量标签\r
-        UILabelExt *CallVolumeLabel{nullptr};             // 通话音量标签\r
-        UILabelExt *VibrationReminderLabel{nullptr};      // 震动提醒标签\r
-        UILabelExt *SilentModeLabel{nullptr};             // 静音模式标签\r
-        // UILabelExt *reminder[4]{nullptr};                 // 提示标签\r
-        UIImageView *nextImageView[3]{nullptr};           // 箭头图片\r
-        UIImageView *VibrationReminderImageView{nullptr}; //\r
-        UIImageView *SilentModeImageView{nullptr};        //\r
+        UILabelExt *Title{nullptr};                         // 标题:“声音与震动”\r
+        UILabelButtonExt *SystemVolumeButton{nullptr};      // 系统音量按钮\r
+        UILabelButtonExt *CallVolumeButton{nullptr};        // 通话音量按钮\r
+        UILabelButtonExt *VibrationReminderButton{nullptr}; // 震动提醒按钮\r
+        UILabelButtonExt *SilentModeButton{nullptr};        // 静音模式按钮\r
         UIToggleButton *SilentModeToggleButton{nullptr}; // 静音模式切换按钮\r
-        bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
 \r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h
new file mode 100644 (file)
index 0000000..aad267d
--- /dev/null
@@ -0,0 +1,45 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-19 10:08:21
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-19 10:22:53
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h
+ */
+#ifndef SOUND_AND_VIBRATION_VOLUME_SETTING_PRESENTER_H
+#define SOUND_AND_VIBRATION_VOLUME_SETTING_PRESENTER_H
+#include <cstdint>
+#include "components/ui_slider.h"
+namespace OHOS
+{
+    typedef enum : uint8_t
+    {
+        VOLUMEREDUCE = 0, // 声音降低
+        VOLUMEADD = 1,    // 声音增加
+        OTHER = 2,        // 其他
+    } VolumeStatusChange;
+
+    /*
+     * @brief 声音进度条的事件监听类
+     */
+    class VoumeProcessSliderEventListener : public UISlider::UISliderEventListener,
+                                            public UIView::OnClickListener,
+                                            public UIView::OnDragListener
+    {
+    public:
+        VoumeProcessSliderEventListener();
+        ~VoumeProcessSliderEventListener();
+        static VoumeProcessSliderEventListener *GetInstance(void);
+        void ChangeVolumeValue(uint8_t status, uint8_t value);
+        void LocalVolumeSet(int16_t sounding);
+        void OnChange(int32_t value) override;
+        void OnRelease(int32_t value) override;
+        bool OnClick(UIView &view, const ClickEvent &event) override;
+        bool OnDrag(UIView &view, const DragEvent &event) override;
+
+    private:
+        int32_t VolumeValue; // 声音值
+        uint8_t m_VolumeType;
+    };
+}
+
+#endif
\ No newline at end of file
index 0dbc176..bd17b2e 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-01-29 15:41:49
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-19 10:40:30
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingView.h
+ */
 #ifndef SOUND_AND_VIBRATION_VOLUME_SETTING_H
 #define SOUND_AND_VIBRATION_VOLUME_SETTING_H
 
@@ -6,7 +13,6 @@
 #include "components/ui_scroll_view.h"
 #include "components/ui_slider.h"
 #include "components/ui_image_view.h"
-#include "soundandvibration/include/SystemVolumePresenter.h"
 
 /*
     声音与震动的声音设置视图
@@ -18,22 +24,27 @@ namespace OHOS
 #define VOLUME_MAX 100
 #define VOLUME_PROGRESS "progress"
 
+#define SYSTEM_VOLUME 0
+#define CALL_VOLUME 1
+
     class VoumeProcessSliderEventListener;
     class SoundAndVibrationVolumeSettingView
     {
     public:
-        SoundAndVibrationVolumeSettingView();
+        SoundAndVibrationVolumeSettingView(uint8_t VolumeType);
         ~SoundAndVibrationVolumeSettingView();
         static SoundAndVibrationVolumeSettingView *GetInstance(void);
         UIScrollView *SetUpVolumeProcess(void);
         void ClearAll(void);
         UISlider *GetVolumeProcess(void);
         int CurrentVolumeValue{0};
+
     private:
         UIScrollView *ScrollView{nullptr};
         UISlider *VolumeProcess{nullptr};
         UIImageView *VolumeVetor{nullptr};
         VoumeProcessSliderEventListener *listener = nullptr;
+        uint8_t m_VolumeType;
         bool initViewStatus{false};
     };
 
index 42e23dd..a2fedbf 100644 (file)
@@ -1,40 +1,20 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-01-29 16:24:30\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-19 14:53:45\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumePresenter.h\r
+ */\r
 #ifndef SYSTEM_VOLUME_PRESENTER_H\r
 #define SYSTEM_VOLUME_PRESENTER_H\r
 \r
 #include "Presenter.h"\r
+#include "View.h"\r
 #include "SystemVolumeView.h"\r
 #include "wearable_log.h"\r
-#include "KeyInputListener.h"\r
 namespace OHOS\r
 {\r
-    typedef enum : uint8_t\r
-    {\r
-        VOLUMEREDUCE = 0, // 声音降低\r
-        VOLUMEADD = 1,    // 声音增加\r
-        OTHER = 2,        // 其他\r
-    } VolumeStatusChange;\r
-\r
-    /*\r
-     * @brief 声音进度条的事件监听类\r
-     */\r
-    class VoumeProcessSliderEventListener : public UISlider::UISliderEventListener,\r
-                                            public UIView::OnClickListener,\r
-                                            public UIView::OnDragListener\r
-    {\r
-    public:\r
-        VoumeProcessSliderEventListener();\r
-        ~VoumeProcessSliderEventListener();\r
-        static VoumeProcessSliderEventListener *GetInstance(void);\r
-        void ChangeVolumeValue(uint8_t status, uint8_t value);\r
-        void LocalVolumeSet(int16_t sounding);\r
-        void OnChange(int32_t value) override;\r
-        void OnRelease(int32_t value) override;\r
-        bool OnClick(UIView &view, const ClickEvent &event) override;\r
-        bool OnDrag(UIView &view, const DragEvent &event) override;\r
-\r
-    private:\r
-        int32_t VolumeValue; // 声音值\r
-    };\r
+    \r
 \r
     class SystemVolumeView;\r
     class SystemVolumePresenter : public Presenter<SystemVolumeView>,\r
@@ -54,9 +34,9 @@ namespace OHOS
         static SystemVolumePresenter *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
+        bool OnDragEnd(UIView &view, const DragEvent &event);\r
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
     };\r
 } // namespace OHOS\r
index b057643..9e802cc 100644 (file)
@@ -1,3 +1,10 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-01-29 15:37:44\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-19 10:17:28\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumeView.h\r
+ */\r
 #ifndef SYSTEM_VOLUME_VIEW_H\r
 #define SYSTEM_VOLUME_VIEW_H\r
 \r
@@ -30,7 +37,6 @@ namespace OHOS
     private:\r
         UIScrollView *SystemVolumeScrollView{nullptr};\r
         SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView{nullptr};\r
-        UIView::OnDragListener *volumeDragListener{nullptr};\r
         bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
index 69e7f0f..748e8ad 100644 (file)
@@ -1,77 +1,99 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-19 10:24:13\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/CallVolumePresenter.cpp\r
+ */\r
 #include "AppViewIDs.h"\r
 #include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
+#include "language/font/ui_resource_string.h"\r
 #include "NativeAbility.h"\r
 #include "graphic_math.h"\r
-#include "string.h"\r
 #include "soundandvibration/include/CallVolumePresenter.h"\r
-//系统音量\r
-namespace OHOS{\r
- \r
-    //当前Presenter属性实例化的内存指针\r
-    static CallVolumePresenter *g_pCallVolumePresenter = nullptr; \r
-    \r
-    CallVolumePresenter::CallVolumePresenter(){\r
-               \r
+#include "common/key_code.h"\r
+#include "custom_utils.h"\r
+#include <ohos_types.h>\r
+\r
+// 系统音量\r
+namespace OHOS\r
+{\r
+\r
+    // 当前Presenter属性实例化的内存指针\r
+    static CallVolumePresenter *g_pCallVolumePresenter = nullptr;\r
+\r
+    CallVolumePresenter::CallVolumePresenter()\r
+    {\r
+\r
         g_pCallVolumePresenter = this;\r
     }\r
- \r
-    CallVolumePresenter::~CallVolumePresenter(){\r
-    \r
+\r
+    CallVolumePresenter::~CallVolumePresenter()\r
+    {\r
+\r
         g_pCallVolumePresenter = nullptr;\r
     }\r
- \r
-    CallVolumePresenter *CallVolumePresenter::GetInstance(){\r
-    \r
+\r
+    CallVolumePresenter *CallVolumePresenter::GetInstance()\r
+    {\r
+\r
         return g_pCallVolumePresenter;\r
     }\r
- \r
-    void CallVolumePresenter::OnStart(){\r
-    \r
-        Presenter<CallVolumeView>::OnStart(); \r
+\r
+    void CallVolumePresenter::OnStart()\r
+    {\r
+\r
+        Presenter<CallVolumeView>::OnStart();\r
     }\r
- \r
-    void CallVolumePresenter::OnPause(void){\r
-    \r
+\r
+    void CallVolumePresenter::OnPause(void)\r
+    {\r
+\r
         Presenter<CallVolumeView>::OnPause();\r
     }\r
- \r
-    void CallVolumePresenter::OnResume(void){\r
-    \r
+\r
+    void CallVolumePresenter::OnResume(void)\r
+    {\r
+\r
         Presenter<CallVolumeView>::OnResume();\r
     }\r
- \r
-    void CallVolumePresenter::OnStop(void){\r
-    \r
-        Presenter<CallVolumeView>::OnStop(); \r
+\r
+    void CallVolumePresenter::OnStop(void)\r
+    {\r
+\r
+        Presenter<CallVolumeView>::OnStop();\r
     }\r
- \r
-    bool CallVolumePresenter::OnDrag(UIView &view, const DragEvent &event){\r
-    \r
+\r
+    bool CallVolumePresenter::OnDrag(UIView &view, const DragEvent &event)\r
+    {\r
+        UNUSED(view);\r
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
-            (event.GetDeltaX() > 30) && (event.GetDeltaX() > (3 * MATH_ABS(event.GetDeltaY()))))\r
+            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
         {\r
-            //NativeAbility::GetInstance().ChangeSlice(VIEW_SOUND_VIBRATION);\r
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+            NativeAbility::GetInstance().Back();\r
         }\r
         return true;\r
     }\r
- \r
-    bool CallVolumePresenter::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
+\r
+    bool CallVolumePresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+    {\r
+        UNUSED(view);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumePresenter::OnKeyAct");\r
+        uint16 keyID = event.GetKeyId();\r
+        uint16 keyState = event.GetState();\r
+        // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        {\r
+            NativeAbility::GetInstance().Back();\r
+        }\r
         return true;\r
     }\r
-}\r
-\r
-\r
-\r
-\r
 \r
+    bool CallVolumePresenter::OnClick(UIView &view, const ClickEvent &event)\r
+    {\r
+        UNUSED(view);\r
+        UNUSED(event);\r
+        return true;\r
+    }\r
 \r
+}\r
index 19cd72c..fb34437 100644 (file)
@@ -1,11 +1,7 @@
 #include "soundandvibration/include/CallVolumeView.h"\r
 #include "soundandvibration/include/CallVolumePresenter.h"\r
-#include "UiConfig.h"\r
-\r
-/*\r
-通话音量:\r
-闹钟,计时器,秒表的音量\r
-*/\r
+#include "wearable_log.h"\r
+#include <audio_manager.h>\r
 \r
 namespace OHOS\r
 {\r
@@ -14,99 +10,80 @@ namespace OHOS
 \r
     CallVolumeView::CallVolumeView()\r
     {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::CallVolumeView");\r
         g_pCallVolumeView = this;\r
     }\r
 \r
     CallVolumeView::~CallVolumeView()\r
     {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::~CallVolumeView");\r
+        ClearAll();\r
         g_pCallVolumeView = nullptr;\r
-        if (container_ != nullptr)\r
-        {\r
-            delete container_;\r
-            container_ = nullptr;\r
-        }\r
-        if (CallVolumeslider != nullptr)\r
-        {\r
-            delete CallVolumeslider;\r
-            CallVolumeslider = nullptr;\r
-        }\r
-        if (CallVolumeimageicon != nullptr)\r
-        {\r
-            delete CallVolumeimageicon;\r
-            CallVolumeimageicon = nullptr;\r
-        }\r
     }\r
 \r
     CallVolumeView *CallVolumeView::GetInstance()\r
     {\r
-\r
         return g_pCallVolumeView;\r
     }\r
-    void CallVolumeView::InitView(void)\r
+\r
+    void CallVolumeView::ClearAll()\r
     {\r
-        if (container_ == nullptr)\r
+        if (initViewStatus == true)\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
+            delete p_SoundAndVibrationVolumeSettingView;\r
+            p_SoundAndVibrationVolumeSettingView = nullptr;\r
         }\r
-        draglistener = static_cast<UIView::OnDragListener *>(CallVolumePresenter::GetInstance());\r
-        container_->SetOnDragListener(draglistener);\r
-        container_->SetTouchable(true);\r
-        container_->SetDraggable(true);\r
-        /********************************************************************************************************/\r
-        if (CallVolumeslider == nullptr)\r
+    }\r
+\r
+    UIScrollView *CallVolumeView::CallVolumeViewInit(void)\r
+    {\r
+        p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(CALL_VOLUME);\r
+        if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
         {\r
-            CallVolumeslider = new UISlider();\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
+            return nullptr;\r
         }\r
-        CallVolumeslider->SetPosition(167, 77);\r
-        CallVolumeslider->Resize(130, 310);\r
-        CallVolumeslider->SetViewId(CALL_VOLUME_SLIDER);\r
-        CallVolumeslider->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        CallVolumeslider->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        CallVolumeslider->SetStyle(STYLE_BORDER_OPA, 0x19);\r
-        CallVolumeslider->SetStyle(STYLE_BORDER_RADIUS, 100);\r
-        CallVolumeslider->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);\r
-        CallVolumeslider->SetValue(50);\r
-        CallVolumeslider->SetSliderColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
-        CallVolumeslider->SetKnobStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        CallVolumeslider->SetForegroundStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        CallVolumeslider->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); // 圆帽式\r
-        CallVolumeslider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); // 设置进度条的前景样式。圆帽式\r
-        CallVolumeslider->SetStyle(STYLE_BORDER_COLOR, Color::Black().full);\r
-        CallVolumeslider->SetStyle(STYLE_BORDER_WIDTH,2);\r
-        sliderClick = static_cast<UIView::OnClickListener *>(CallVolumePresenter::GetInstance()); // 用来处理之后点击slider的点击事件\r
-        CallVolumeslider->SetOnClickListener(sliderClick);\r
-        sliderDrag = static_cast<UIView::OnDragListener *>(CallVolumePresenter::GetInstance()); // 用来处理之后拖动slider的拖动事件\r
-        CallVolumeslider->SetOnDragListener(sliderDrag);\r
-        container_->Add(CallVolumeslider);\r
-        CallVolumeslider->SetVisible(true);\r
-        /********************************************************************************************************/\r
-        if (CallVolumeimageicon == nullptr)\r
+        CallVolumeScrollView = p_SoundAndVibrationVolumeSettingView->SetUpVolumeProcess();\r
+        if (CallVolumeScrollView == nullptr)\r
         {\r
-            CallVolumeimageicon = new UIImageView();\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::CallVolumeScrollView is nullptr!");\r
+            return nullptr;\r
         }\r
-        CallVolumeimageicon->SetPosition(213, 213);              // widget's left position and top position\r
-        CallVolumeimageicon->Resize(100, 100);                   // widget's width and height\r
-        CallVolumeimageicon->SetViewId("CallVolumeimageicon"); // Set style\r
-        CallVolumeimageicon->SetStyle(STYLE_BORDER_COLOR, 0xffAAAAAA);\r
-        CallVolumeimageicon->SetSrc(PNG_VOLUME_CONTROL_VECTOR);\r
 \r
-        container_->Add(CallVolumeimageicon);\r
-        CallVolumeimageicon->SetVisible(true);\r
+        UIView::OnDragListener *volumeDragListener = static_cast<UIView::OnDragListener *>(CallVolumePresenter::GetInstance());\r
+        if (volumeDragListener == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPresenter GetInstance fail");\r
+            return nullptr;\r
+        }\r
+        CallVolumeScrollView->SetOnDragListener(volumeDragListener);\r
+        if (CallVolumeScrollView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_SoundAndVibrationVolumeSettingView->SetUpVolumeProcess fail!!");\r
+            return nullptr;\r
+        }\r
+\r
+        p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC) = %d",Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));\r
+\r
+        initViewStatus = true;\r
+        return CallVolumeScrollView;\r
     }\r
 \r
     void CallVolumeView::OnStart()\r
     {\r
         View<CallVolumePresenter>::OnStart();\r
-        InitView();\r
-        RootView::GetInstance()->Add(container_);\r
+        \r
+        CallVolumeViewInit();\r
+\r
+        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::CallVolumePresenter::GetInstance();\r
+        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
     }\r
 \r
     void CallVolumeView::OnSetUpView()\r
     {\r
         View<CallVolumePresenter>::OnSetUpView();\r
+        RootView::GetInstance()->Add(CallVolumeScrollView);\r
         Draw();\r
     }\r
 \r
@@ -119,6 +96,7 @@ namespace OHOS
     void CallVolumeView::OnStop()\r
     {\r
         View<CallVolumePresenter>::OnStop();\r
+        RootView::GetInstance()->ClearOnKeyActListener();\r
         RootView::GetInstance()->RemoveAll();\r
         return;\r
     }\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/MediaVolumePresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/MediaVolumePresenter.cpp
deleted file mode 100644 (file)
index 84bde07..0000000
+++ /dev/null
@@ -1,77 +0,0 @@
-#include "AppViewIDs.h"\r
-#include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
-#include "NativeAbility.h"\r
-#include "graphic_math.h"\r
-#include "string.h"\r
-#include "soundandvibration/include/MediaVolumePresenter.h"\r
-//系统音量\r
-namespace OHOS{\r
- \r
-    //当前Presenter属性实例化的内存指针\r
-    static MediaVolumePresenter *g_pMediaVolumePresenter = nullptr; \r
-    \r
-    MediaVolumePresenter::MediaVolumePresenter(){\r
-               \r
-        g_pMediaVolumePresenter = this;\r
-    }\r
- \r
-    MediaVolumePresenter::~MediaVolumePresenter(){\r
-    \r
-        g_pMediaVolumePresenter = nullptr;\r
-    }\r
- \r
-    MediaVolumePresenter *MediaVolumePresenter::GetInstance(){\r
-    \r
-        return g_pMediaVolumePresenter;\r
-    }\r
- \r
-    void MediaVolumePresenter::OnStart(){\r
-    \r
-        Presenter<MediaVolumeView>::OnStart(); \r
-    }\r
- \r
-    void MediaVolumePresenter::OnPause(void){\r
-    \r
-        Presenter<MediaVolumeView>::OnPause();\r
-    }\r
- \r
-    void MediaVolumePresenter::OnResume(void){\r
-    \r
-        Presenter<MediaVolumeView>::OnResume();\r
-    }\r
- \r
-    void MediaVolumePresenter::OnStop(void){\r
-    \r
-        Presenter<MediaVolumeView>::OnStop(); \r
-    }\r
- \r
-    bool MediaVolumePresenter::OnDrag(UIView &view, const DragEvent &event){\r
-    \r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
-            (event.GetDeltaX() > 30) && (event.GetDeltaX() > (3 * MATH_ABS(event.GetDeltaY()))))\r
-        {\r
-            //NativeAbility::GetInstance().ChangeSlice(VIEW_SOUND_VIBRATION);\r
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
-        }\r
-        return true;\r
-    }\r
- \r
-    bool MediaVolumePresenter::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/fd230app/nativeui/soundandvibration/src/MediaVolumeView.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/MediaVolumeView.cpp
deleted file mode 100644 (file)
index e3b94b2..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-#include "soundandvibration/include/MediaVolumeView.h"\r
-#include "soundandvibration/include/MediaVolumePresenter.h"\r
-#include "UiConfig.h"\r
-\r
-/*\r
-媒体音量:\r
-音量,录音,训练的音量\r
-*/\r
-\r
-namespace OHOS\r
-{\r
-\r
-    static MediaVolumeView *g_pMediaVolumeView{nullptr};\r
-\r
-    MediaVolumeView::MediaVolumeView()\r
-    {\r
-        g_pMediaVolumeView = this;\r
-    }\r
-\r
-    MediaVolumeView::~MediaVolumeView()\r
-    {\r
-        g_pMediaVolumeView = nullptr;\r
-        if (container_ != nullptr)\r
-        {\r
-            delete container_;\r
-            container_ = nullptr;\r
-        }\r
-        if (MediaVolumeslider != nullptr)\r
-        {\r
-            delete MediaVolumeslider;\r
-            MediaVolumeslider = nullptr;\r
-        }\r
-        if (MediaVolumeimageicon != nullptr)\r
-        {\r
-            delete MediaVolumeimageicon;\r
-            MediaVolumeimageicon = nullptr;\r
-        }\r
-    }\r
-\r
-    MediaVolumeView *MediaVolumeView::GetInstance()\r
-    {\r
-\r
-        return g_pMediaVolumeView;\r
-    }\r
-    void MediaVolumeView::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 *>(MediaVolumePresenter::GetInstance());\r
-        container_->SetOnDragListener(draglistener);\r
-        container_->SetTouchable(true);\r
-        container_->SetDraggable(true);\r
-        /********************************************************************************************************/\r
-        if (MediaVolumeslider == nullptr)\r
-        {\r
-            MediaVolumeslider = new UISlider();\r
-        }\r
-        MediaVolumeslider->SetPosition(167, 77);\r
-        MediaVolumeslider->Resize(130, 310);\r
-        MediaVolumeslider->SetViewId(MEDIA_VOLUME_SLIDER);\r
-        MediaVolumeslider->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        MediaVolumeslider->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        MediaVolumeslider->SetStyle(STYLE_BORDER_OPA, 0x19);\r
-        MediaVolumeslider->SetStyle(STYLE_BORDER_RADIUS, 100);\r
-        MediaVolumeslider->SetDirection(UISlider::Direction::DIR_BOTTOM_TO_TOP);\r
-        MediaVolumeslider->SetValue(50);\r
-        MediaVolumeslider->SetSliderColor(Color::GetColorFromRGBA(0x19, 0x19, 0x19, 0xff), Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0xff));\r
-        MediaVolumeslider->SetKnobStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
-        MediaVolumeslider->SetForegroundStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        MediaVolumeslider->SetBackgroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); // 圆帽式\r
-        MediaVolumeslider->SetForegroundStyle(STYLE_LINE_CAP, CapType::CAP_ROUND); // 设置进度条的前景样式。圆帽式\r
-        MediaVolumeslider->SetStyle(STYLE_BORDER_COLOR, Color::Black().full);\r
-        MediaVolumeslider->SetStyle(STYLE_BORDER_WIDTH,2);\r
-        sliderClick = static_cast<UIView::OnClickListener *>(MediaVolumePresenter::GetInstance()); // 用来处理之后点击slider的点击事件\r
-        MediaVolumeslider->SetOnClickListener(sliderClick);\r
-        sliderDrag = static_cast<UIView::OnDragListener *>(MediaVolumePresenter::GetInstance()); // 用来处理之后拖动slider的拖动事件\r
-        MediaVolumeslider->SetOnDragListener(sliderDrag);\r
-        container_->Add(MediaVolumeslider);\r
-        MediaVolumeslider->SetVisible(true);\r
-        /********************************************************************************************************/\r
-        if (MediaVolumeimageicon == nullptr)\r
-        {\r
-            MediaVolumeimageicon = new UIImageView();\r
-        }\r
-        MediaVolumeimageicon->SetPosition(213, 213);              // widget's left position and top position\r
-        MediaVolumeimageicon->Resize(100, 100);                   // widget's width and height\r
-        MediaVolumeimageicon->SetViewId("MediaVolumeimageicon"); // Set style\r
-        MediaVolumeimageicon->SetStyle(STYLE_BORDER_COLOR, 0xffAAAAAA);\r
-        MediaVolumeimageicon->SetSrc(PNG_VOLUME_CONTROL_VECTOR);\r
-\r
-        container_->Add(MediaVolumeimageicon);\r
-        MediaVolumeimageicon->SetVisible(true);\r
-    }\r
-\r
-    void MediaVolumeView::OnStart()\r
-    {\r
-        View<MediaVolumePresenter>::OnStart();\r
-        InitView();\r
-        RootView::GetInstance()->Add(container_);\r
-    }\r
-\r
-    void MediaVolumeView::OnSetUpView()\r
-    {\r
-        View<MediaVolumePresenter>::OnSetUpView();\r
-        Draw();\r
-    }\r
-\r
-    void MediaVolumeView::OnTearDownView()\r
-    {\r
-        View<MediaVolumePresenter>::OnTearDownView();\r
-        return;\r
-    }\r
-\r
-    void MediaVolumeView::OnStop()\r
-    {\r
-        View<MediaVolumePresenter>::OnStop();\r
-        RootView::GetInstance()->RemoveAll();\r
-        return;\r
-    }\r
-}\r
index 0207918..8e5caf0 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-19 10:39:11\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-18 18:08:44\r
+ * @LastEditTime: 2024-04-19 14:53:16\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp\r
  */\r
 \r
@@ -84,6 +84,8 @@ namespace OHOS
 \r
     bool SoundAndVibrationPresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
+        UNUSED(view);\r
+        UNUSED(event);\r
         return true;\r
     }\r
 \r
@@ -117,6 +119,7 @@ namespace OHOS
         UNUSED(event);\r
         if (strcmp(view.GetViewId(), SYSTEM_VOLUME_BUTTON) == 0)\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SYSTEM_VOLUME_BUTTON");\r
             NativeAbility::GetInstance().EnterSlice(VIEW_SYSTEM_VOLUME);\r
         }\r
         else if (strcmp(view.GetViewId(), CALL_VOLUME_BUTTON) == 0)\r
index d9df73e..fb491dc 100644 (file)
@@ -1,3 +1,10 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-02-19 10:39:14\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-19 14:58:25\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp\r
+ */\r
 #include "soundandvibration/include/SoundAndVibrationView.h"\r
 #include "soundandvibration/include/SoundAndVibrationPresenter.h"\r
 #include "soundandvibration/include/SoundAndVibrationModel.h"\r
@@ -41,7 +48,7 @@ namespace OHOS
 \r
     void SoundAndVibrationView::ClearAll()\r
     {\r
-        if (initViewStatus == true)\r
+        if (SoundAndVibrationScrollView != nullptr)\r
         {\r
             SoundAndVibrationScrollView->RemoveAll();\r
 \r
@@ -57,35 +64,8 @@ namespace OHOS
             delete VibrationReminderButton;\r
             VibrationReminderButton = nullptr;\r
 \r
-            delete SystemVolumeLabel;\r
-            SystemVolumeLabel = nullptr;\r
-\r
-            delete CallVolumeLabel;\r
-            CallVolumeLabel = nullptr;\r
-\r
-            delete VibrationReminderLabel;\r
-            VibrationReminderLabel = nullptr;\r
-\r
-            delete SilentModeLabel;\r
-            SilentModeLabel = nullptr;\r
-\r
-            // for (int i = 0; i < 4; i++)\r
-            // {\r
-            //     delete reminder[i];\r
-            //     reminder[i] = nullptr;\r
-            // }\r
-\r
-            for (int i = 0; i < 3; i++)\r
-            {\r
-                delete nextImageView[i];\r
-                nextImageView[i] = nullptr;\r
-            }\r
-\r
-            delete VibrationReminderImageView;\r
-            VibrationReminderImageView = nullptr;\r
-\r
-            delete SilentModeImageView;\r
-            SilentModeImageView = nullptr;\r
+            delete SilentModeButton;\r
+            SilentModeButton = nullptr;\r
 \r
             delete SilentModeToggleButton;\r
             SilentModeToggleButton = nullptr;\r
@@ -95,57 +75,6 @@ namespace OHOS
         }\r
     }\r
 \r
-    /// @brief 设置按钮\r
-    /// @param button\r
-    /// @return true 设置成功,false 失败\r
-    UIButton *SoundAndVibrationView::SetUpButton(ButtonConfig &buttonconfig, UIView::OnClickListener *clickListener)\r
-    {\r
-        UIButton *button = new UIButton();\r
-        if (button == nullptr)\r
-        {\r
-            return nullptr;\r
-        }\r
-        button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
-        button->SetViewId(buttonconfig.ViewId);\r
-        button->SetStyle(STYLE_BACKGROUND_COLOR, buttonconfig.BackgroundColorValue);\r
-        button->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);\r
-        button->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);\r
-        button->SetOnClickListener(clickListener);\r
-        return button;\r
-    }\r
-\r
-    // 设置图片\r
-    UIImageView *SoundAndVibrationView::SetUpImageVIew(ImageConfig &imageconfig)\r
-    {\r
-        UIImageView *Image = new UIImageView();\r
-        if (Image == nullptr)\r
-        {\r
-            return nullptr;\r
-        }\r
-        Image->SetPosition(imageconfig.x, imageconfig.y, imageconfig.w, imageconfig.h);\r
-        Image->SetSrc(imageconfig.ImageSrc);\r
-        return Image;\r
-    }\r
-\r
-    // 设置标签\r
-    UILabelExt *SoundAndVibrationView::SetUpLabel(LabelConfig &labelConfig)\r
-    {\r
-        UILabelExt *label = new UILabelExt();\r
-        if (label == nullptr)\r
-        {\r
-            return nullptr;\r
-        }\r
-        label->SetPosition(labelConfig.left, labelConfig.top, labelConfig.width, labelConfig.height); // 位置大小\r
-        label->SetStyle(STYLE_TEXT_FONT, labelConfig.fontSize);                                       // 字体大小\r
-        label->SetStyle(STYLE_LINE_HEIGHT, labelConfig.lineHeigh);                                    // 字体行高\r
-        label->SetText(labelConfig.text.c_str());                                                     // 内容\r
-        label->SetLineBreakMode(labelConfig.lineBreakMode);                                           // 断行模式。\r
-        //label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        label->SetRollSpeed(40);\r
-        label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelConfig.fontSize);\r
-        return label;\r
-    }\r
-\r
     /// @brief 声音与震动视图"scrollView"视图初始化\r
     /// @param void\r
     /// @return true 初始化成功 false 初始化失败\r
@@ -197,99 +126,70 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    /// @brief 声音与震动视图"按钮"初始化\r
-    /// @param  void\r
-    /// @return true 初始化成功 false 初始化失败\r
-    bool SoundAndVibrationView::InitSoundAndVibrationButtonView(void)\r
+    /// @brief 设置按钮\r
+    /// @param button\r
+    /// @return true 设置成功,false 失败\r
+    UILabelButtonExt *SoundAndVibrationView::SetUpButton_Ext(ButtonConfig &buttonconfig, bool nextImgVisible)\r
     {\r
-        UIView::OnClickListener *ButtonClick = static_cast<UIView::OnClickListener *>(SoundAndVibrationPresenter::GetInstance());\r
-        if (ButtonClick == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SoundAndVibrationPresenter::GetInstance() fail!");\r
-            return false;\r
-        }\r
-        /* --------------------------- SystemVolumeButton --------------------------- */\r
-        if (!SetUpButtonAndCheck(SYSTEM_VOLUME_BUTTON, 43, 120, SystemVolumeButton, ButtonClick))\r
+        UILabelButtonExt *labelButton = new UILabelButtonExt();\r
+        if (labelButton == nullptr)\r
         {\r
-            return false;\r
+            return nullptr;\r
         }\r
-\r
-        /* ---------------------------- CallVolumeButton ---------------------------- */\r
-        if (!SetUpButtonAndCheck(CALL_VOLUME_BUTTON, 43, 240, CallVolumeButton, ButtonClick))\r
+        labelButton->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
+        labelButton->SetViewId(buttonconfig.ViewId);\r
+        labelButton->SetOnClickListener(static_cast<UIView::OnClickListener *>(SoundAndVibrationPresenter::GetInstance()));\r
+        labelButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+        if (nextImgVisible)\r
         {\r
-            return false;\r
+            const char *NextImgSrc = "/user/res/SETTING_NEXT.bin";\r
+            labelButton->SetImageSrc(NextImgSrc, NextImgSrc);\r
+            labelButton->SetImagePosition(326, 37);\r
         }\r
-\r
-        /* ---------------------------- VibrationReminderButton --------------------------- */\r
-        if (!SetUpButtonAndCheck(VIBRATION_REMINDER_BUTTON, 43, 360, VibrationReminderButton, ButtonClick))\r
-        {\r
-            return false;\r
-        }\r
-\r
-        return true;\r
+        labelButton->SetText(buttonconfig.Text.c_str());\r
+        labelButton->SetAlign(TEXT_ALIGNMENT_LEFT);\r
+        labelButton->SetLabelPosition(47, 0);\r
+        labelButton->SetStyle(STYLE_TEXT_FONT, 30);\r
+        labelButton->SetStyle(STYLE_LINE_HEIGHT, 35);\r
+        labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
+        labelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff191919, UIButton::PRESSED);\r
+        return labelButton;\r
     }\r
-\r
-    /// @brief 为指定的按钮设置属性并进行错误检查\r
-    bool SoundAndVibrationView::SetUpButtonAndCheck(const char *viewId, int x, int y, UIButton *&button, UIView::OnClickListener *listener)\r
+    /// @brief 声音与震动视图"按钮"初始化\r
+    /// @param  void\r
+    /// @return true 初始化成功 false 初始化失败\r
+    bool SoundAndVibrationView::InitSoundAndVibrationButtonView(void)\r
     {\r
-        ButtonConfig buttonconfig = {\r
-            .x = x,\r
-            .y = y,\r
-            .w = 380,\r
-            .h = 100,\r
-            .ViewId = viewId,\r
-            .BackgroundColorValue = 0xff191919,\r
-        };\r
-\r
-        button = SetUpButton(buttonconfig, listener);\r
-        if (button == nullptr)\r
+        struct ButtonSetup\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SoundAndVibrationView::SetUpButtonAndCheck: Button is nullptr!");\r
-            return false;\r
-        }\r
-        return true;\r
-    }\r
-\r
-    /*初始化声音与震动视图图片*/\r
-    bool SoundAndVibrationView::InitSoundAndVibrationImageView()\r
-    {\r
-        ImageConfig imageconfig = {\r
-            .x = 43,\r
-            .y = 360,\r
-            .w = 380,\r
-            .h = 100,\r
-            .ImageSrc = "/user/res/SETTING_BACKGROUND.bin",\r
+            int y;\r
+            const char * viewId;\r
+            const char *text;\r
+            bool clickEffect;\r
         };\r
 \r
-        VibrationReminderImageView = SetUpImageVIew(imageconfig);\r
-        if (VibrationReminderImageView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::VibrationReminderImageView is nullptr!");\r
-            return false;\r
-        }\r
+        ButtonSetup buttonSetups[] = {\r
+            {120, SYSTEM_VOLUME_BUTTON, "系统音量", true},\r
+            {240, CALL_VOLUME_BUTTON, "通话音量", true},\r
+            {360, VIBRATION_REMINDER_BUTTON, "震动模式", true},\r
+            {480, SILENT_MODE_BUTTON, "静音模式", false}};\r
 \r
-        imageconfig.y = 480;\r
-        SilentModeImageView = SetUpImageVIew(imageconfig);\r
-        if (SilentModeImageView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::SilentModeImageView is nullptr!");\r
-            return false;\r
-        }\r
+        UILabelButtonExt **buttonPointers[] = {&SystemVolumeButton, &CallVolumeButton, &VibrationReminderButton, &SilentModeButton};\r
 \r
-        imageconfig = {\r
-            .x = 369,\r
-            .w = 14,\r
-            .h = 26,\r
-            .ImageSrc = "/user/res/SETTING_NEXT.bin",\r
-        };\r
-\r
-        for (int i = 0; i < 3; i++)\r
+        for (int i = 0; i < sizeof(buttonSetups) / sizeof(buttonSetups[0]); ++i)\r
         {\r
-            imageconfig.y = 157 + 120 * i;\r
-            nextImageView[i] = SetUpImageVIew(imageconfig);\r
-            if (nextImageView[i] == nullptr)\r
+            ButtonConfig buttonconfig = {\r
+                .x = 43,\r
+                .y = buttonSetups[i].y,\r
+                .w = 380,\r
+                .h = 100,\r
+                .ViewId = buttonSetups[i].viewId,\r
+                .Text = buttonSetups[i].text};\r
+            *buttonPointers[i] = SetUpButton_Ext(buttonconfig, buttonSetups[i].clickEffect);\r
+            if (*buttonPointers[i] == nullptr)\r
             {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView:: nextImageView[%d] is nullptr!", i);\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::%s Button new fail!", buttonSetups[i].text);\r
                 return false;\r
             }\r
         }\r
@@ -297,93 +197,6 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    /*初始化声音与震动视图标签*/\r
-    bool SoundAndVibrationView::InitSoundAndVibrationLabel(void)\r
-    {\r
-        LabelConfig labelConfig = {\r
-            .left = 90,\r
-            .top = 152,\r
-            .width = 250,\r
-            .height = 40,\r
-            .fontSize = 30,\r
-            .lineHeigh = 35,\r
-            .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
-        };\r
-        /* ---------------------------- SystemVolumeLabel --------------------------- */\r
-        labelConfig.text = "系统音量";\r
-        SystemVolumeLabel = SetUpLabel(labelConfig);\r
-        if (SystemVolumeLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::SystemVolumeLabel is nullptr!");\r
-            return false;\r
-        }\r
-        /* ----------------------------- CallVolumeLabel ---------------------------- */\r
-        labelConfig.top = 272;\r
-        labelConfig.text = "通话音量";\r
-        CallVolumeLabel = SetUpLabel(labelConfig);\r
-        if (CallVolumeLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::CallVolumeLabel is nullptr!");\r
-            return false;\r
-        }\r
-        /* ---------------------------- VibrationReminderLabel ---------------------------- */\r
-        labelConfig.top = 392;\r
-        labelConfig.text = "震动模式";\r
-        VibrationReminderLabel = SetUpLabel(labelConfig);\r
-        if (VibrationReminderLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::VibrationReminderLabel is nullptr!");\r
-            return false;\r
-        }\r
-        /* ----------------------------- SilentModeLabel ---------------------------- */\r
-        labelConfig.top = 512;\r
-        labelConfig.text = "静音模式";\r
-        SilentModeLabel = SetUpLabel(labelConfig);\r
-        if (SilentModeLabel == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::SilentModeLabel is nullptr!");\r
-            return false;\r
-        }\r
-        /* -------------------------------------------------------------------------- */\r
-        // typedef struct\r
-        // {\r
-        //     int top;\r
-        //     char text[100];\r
-        // } LabelInfo;\r
-\r
-        // LabelInfo labelInfo[] = {\r
-        //     {177, "闹钟、提醒、查找手表"},\r
-        //     {297, "手表通话"},\r
-        //     {417, "音乐、录音、训练"},\r
-        //     {657, "系统音量不受影响"},\r
-        // };\r
-        // for (int i = 0; i < (int)(sizeof(labelInfo) / sizeof(labelInfo[0])); i++)\r
-        // {\r
-        //     LabelConfig labelConfig = {\r
-        //         .left = 90,\r
-        //         .top = labelInfo[i].top,\r
-        //         .width = 300,\r
-        //         .height = 35,\r
-        //         .fontSize = 20,\r
-        //         .lineHeigh = 23,\r
-        //         .text = labelInfo[i].text,\r
-        //         .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
-        //     };\r
-\r
-        //     reminder[i] = SetUpLabel(labelConfig);\r
-        //     if (reminder[i] == nullptr)\r
-        //     {\r
-        //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::reminder[%d] is nullptr!", i);\r
-        //         return false;\r
-        //     }\r
-\r
-        //     reminder[i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
-        //     reminder[i]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        //     reminder[i]->SetTextColor(Color::GetColorFromRGBA(0xfd, 0xfd, 0xfd, 0x7f));\r
-        // }\r
-        return true;\r
-    }\r
-\r
     bool SoundAndVibrationView::InitSoundAndVibrationToggleButton(void)\r
     {\r
         /* ------------------------- SilentModeToggleButton ------------------------- */\r
@@ -399,12 +212,11 @@ namespace OHOS
         const char *ToggleButtonSelect = "/user/res/TOGGLEBUTTON_ON.bin";\r
         const char *ToggleButtonUnSelect = "/user/res/TOGGLEBUTTON_OFF.bin";\r
         SilentModeToggleButton->SetImages(ToggleButtonSelect, ToggleButtonUnSelect);\r
-        UICheckBox::OnChangeListener * SilentModeToggleButtonChangeListener = static_cast<UICheckBox::OnChangeListener *>(SoundAndVibrationPresenter::GetInstance());\r
+        UICheckBox::OnChangeListener *SilentModeToggleButtonChangeListener = static_cast<UICheckBox::OnChangeListener *>(SoundAndVibrationPresenter::GetInstance());\r
         SilentModeToggleButton->SetOnChangeListener(SilentModeToggleButtonChangeListener);\r
         return true;\r
     }\r
 \r
-\r
     /// @brief 获取"静音模式"按钮开,关状态\r
     /// @param  void\r
     /// @return true 开 false 关\r
@@ -413,7 +225,6 @@ namespace OHOS
         return SilentModeToggleButton->GetState();\r
     }\r
 \r
-\r
     /// @brief 设置"静音模式"按钮开,关状态\r
     /// @param  value\r
     void SoundAndVibrationView::SetSilentModeToggleButtonState(bool value)\r
@@ -421,7 +232,6 @@ namespace OHOS
         SilentModeToggleButton->SetState(value);\r
     }\r
 \r
-\r
     /// @brief 获取"静音模式"切换按钮\r
     UIToggleButton *SoundAndVibrationView::GetSilentModeToggleButton(void)\r
     {\r
@@ -442,23 +252,14 @@ namespace OHOS
         {\r
             return;\r
         }\r
-        if (InitSoundAndVibrationImageView() == false)\r
-        {\r
-            return;\r
-        }\r
         if (InitSoundAndVibrationToggleButton() == false)\r
         {\r
             return;\r
         }\r
-        if (InitSoundAndVibrationLabel() == false)\r
-        {\r
-            return;\r
-        }\r
-        if (SoundAndVibrationModel::GetInstance()->SilentModeToggleButtonStatusInit() == false)\r
-        {\r
-            return;\r
-        }\r
-        initViewStatus = true;\r
+        // if (SoundAndVibrationModel::GetInstance()->SilentModeToggleButtonStatusInit() == false)\r
+        // {\r
+        //     return;\r
+        // }\r
     }\r
 \r
     void SoundAndVibrationView::OnStart()\r
@@ -476,20 +277,7 @@ namespace OHOS
         SoundAndVibrationScrollView->Add(SystemVolumeButton);\r
         SoundAndVibrationScrollView->Add(CallVolumeButton);\r
         SoundAndVibrationScrollView->Add(VibrationReminderButton);\r
-        SoundAndVibrationScrollView->Add(VibrationReminderImageView);\r
-        SoundAndVibrationScrollView->Add(SilentModeImageView);\r
-        SoundAndVibrationScrollView->Add(SystemVolumeLabel);\r
-        SoundAndVibrationScrollView->Add(CallVolumeLabel);\r
-        SoundAndVibrationScrollView->Add(VibrationReminderLabel);\r
-        SoundAndVibrationScrollView->Add(VibrationReminderLabel);\r
-        SoundAndVibrationScrollView->Add(SilentModeLabel);\r
-        // SoundAndVibrationScrollView->Add(reminder[0]);\r
-        // SoundAndVibrationScrollView->Add(reminder[1]);\r
-        // SoundAndVibrationScrollView->Add(reminder[2]);\r
-        // SoundAndVibrationScrollView->Add(reminder[3]);\r
-        SoundAndVibrationScrollView->Add(nextImageView[0]);\r
-        SoundAndVibrationScrollView->Add(nextImageView[1]);\r
-        SoundAndVibrationScrollView->Add(nextImageView[2]);\r
+        SoundAndVibrationScrollView->Add(SilentModeButton);\r
         SoundAndVibrationScrollView->Add(SilentModeToggleButton);\r
         RootView::GetInstance()->Add(SoundAndVibrationScrollView);\r
         Draw();\r
diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingPresenter.cpp
new file mode 100644 (file)
index 0000000..094bca6
--- /dev/null
@@ -0,0 +1,125 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-19 10:08:31
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-19 10:14:03
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingPresenter.cpp
+ */
+#include "soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h"
+#include "soundandvibration/include/SoundAndVibrationVolumeSettingView.h"
+#include "wearable_log.h"
+#include <audio_manager.h>
+namespace OHOS
+{
+
+    /* --------------------- VoumeProcessSliderEventListener -------------------- */
+    constexpr int16_t VOLUMEVALUE_CHANGE = 10;
+
+    static VoumeProcessSliderEventListener *g_pVoumeProcessSliderEventListener{nullptr};
+    VoumeProcessSliderEventListener::VoumeProcessSliderEventListener()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VoumeProcessSliderEventListener::VoumeProcessSliderEventListener");
+        g_pVoumeProcessSliderEventListener = this;
+    }
+
+    VoumeProcessSliderEventListener::~VoumeProcessSliderEventListener()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VoumeProcessSliderEventListener::~VoumeProcessSliderEventListener");
+        g_pVoumeProcessSliderEventListener = nullptr;
+    }
+
+    VoumeProcessSliderEventListener *VoumeProcessSliderEventListener::GetInstance(void)
+    {
+        return g_pVoumeProcessSliderEventListener;
+    }
+
+    void VoumeProcessSliderEventListener::ChangeVolumeValue(uint8_t status, uint8_t value)
+    {
+
+        SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView = SoundAndVibrationVolumeSettingView::GetInstance();
+        if (p_SoundAndVibrationVolumeSettingView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationVolumeSettingView GetInstance fail!!");
+            return;
+        }
+        UISlider *progress = p_SoundAndVibrationVolumeSettingView->GetVolumeProcess();
+        if (progress == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_SoundAndVibrationVolumeSettingView->GetVolumeProcess() fail");
+            return;
+        }
+
+        VolumeValue = p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue;
+
+        switch (status)
+        {
+        case VOLUMEREDUCE:
+            /* code */
+            p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = progress->GetValue() - VOLUMEVALUE_CHANGE;
+            if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue < VOLUME_MIN)
+            {
+                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MIN;
+            }
+            break;
+        case VOLUMEADD:
+            p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = progress->GetValue() + VOLUMEVALUE_CHANGE;
+            if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue > VOLUME_MAX)
+            {
+                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MAX;
+            }
+            break;
+        case OTHER:
+            p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = value;
+            if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue < VOLUME_MIN)
+            {
+                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MIN;
+            }
+            else if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue > VOLUME_MAX)
+            {
+                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MAX;
+            }
+            break;
+        default:
+            break;
+        }
+
+        progress->SetValue(p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue);
+        LocalVolumeSet(p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue);
+    }
+
+    /*
+     * @brief 本地音量设置
+     */
+    void VoumeProcessSliderEventListener::LocalVolumeSet(int16_t sounding)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LocalVolumeSet %d", sounding);
+        Audio::AudioManager::GetInstance().SetVolume(AUDIO_STREAM_MUSIC, sounding); // 本地音量设置
+    }
+
+    void VoumeProcessSliderEventListener::OnChange(int32_t value)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnChange %d", value);
+        ChangeVolumeValue(OTHER, value);
+    }
+
+    void VoumeProcessSliderEventListener::OnRelease(int32_t value)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnRelease %d", value);
+        ChangeVolumeValue(OTHER, value);
+    }
+
+    bool VoumeProcessSliderEventListener::OnClick(UIView &view, const ClickEvent &event)
+    {
+        UNUSED(event);
+        UNUSED(view);
+        return true;
+    }
+
+    bool VoumeProcessSliderEventListener::OnDrag(UIView &view, const DragEvent &event)
+    {
+        UNUSED(event);
+        UNUSED(view);
+        return true;
+    }
+
+}
\ No newline at end of file
index 65c436a..b2c1106 100644 (file)
@@ -1,15 +1,15 @@
 #include "soundandvibration/include/SoundAndVibrationVolumeSettingView.h"
-#include "soundandvibration/include/SoundAndVibrationPresenter.h"
+#include "soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h"
 #include "wearable_log.h"
 
 namespace OHOS
 {
     static SoundAndVibrationVolumeSettingView *g_pSoundAndVibrationVolumeSettingView{nullptr};
 
-    SoundAndVibrationVolumeSettingView::SoundAndVibrationVolumeSettingView()
+    SoundAndVibrationVolumeSettingView::SoundAndVibrationVolumeSettingView(uint8_t VolumeType)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationVolumeSettingView::SoundAndVibrationVolumeSettingView");
-
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationVolumeSettingView::SoundAndVibrationVolumeSettingView,VolumeType = %d",VolumeType);
+        m_VolumeType = VolumeType;
         g_pSoundAndVibrationVolumeSettingView = this;
     }
 
index 86590a3..fd14056 100644 (file)
@@ -1,13 +1,22 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-03-30 09:14:38\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-04-19 14:53:24\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp\r
+ * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
+ */\r
 #include "AppViewIDs.h"\r
 #include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
+#include "language/font/ui_resource_string.h"\r
 #include "NativeAbility.h"\r
 #include "graphic_math.h"\r
 #include "string.h"\r
 #include "soundandvibration/include/SystemVolumePresenter.h"\r
-#include <audio_manager.h>\r
+\r
 #include "common/key_code.h"\r
 #include "custom_utils.h"\r
+#include <ohos_types.h>\r
 \r
 // 系统音量\r
 namespace OHOS\r
@@ -61,12 +70,17 @@ namespace OHOS
     bool SystemVolumePresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
         UNUSED(view);\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
-            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+        UNUSED(event);\r
+        return true;\r
+    }\r
+\r
+    bool SystemVolumePresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
+    {\r
+        UNUSED(view);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumePresenter::OnDragEnd");\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
         {\r
-            // NativeAbility::GetInstance().ChangeSlice(VIEW_SOUND_VIBRATION);\r
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+            NativeAbility::GetInstance().Back();\r
         }\r
         return true;\r
     }\r
@@ -80,8 +94,7 @@ namespace OHOS
         // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
         {\r
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-            NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+            NativeAbility::GetInstance().Back();\r
         }\r
         return true;\r
     }\r
@@ -92,115 +105,4 @@ namespace OHOS
         UNUSED(event);\r
         return true;\r
     }\r
-\r
-    /* --------------------- VoumeProcessSliderEventListener -------------------- */\r
-\r
-    constexpr int16_t VOLUMEVALUE_CHANGE = 10;\r
-\r
-    static VoumeProcessSliderEventListener *g_pVoumeProcessSliderEventListener{nullptr};\r
-    VoumeProcessSliderEventListener::VoumeProcessSliderEventListener()\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VoumeProcessSliderEventListener::VoumeProcessSliderEventListener");\r
-        g_pVoumeProcessSliderEventListener = this;\r
-    }\r
-\r
-    VoumeProcessSliderEventListener::~VoumeProcessSliderEventListener()\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VoumeProcessSliderEventListener::~VoumeProcessSliderEventListener");\r
-        g_pVoumeProcessSliderEventListener = nullptr;\r
-    }\r
-\r
-    VoumeProcessSliderEventListener *VoumeProcessSliderEventListener::GetInstance(void)\r
-    {\r
-        return g_pVoumeProcessSliderEventListener;\r
-    }\r
-\r
-    void VoumeProcessSliderEventListener::ChangeVolumeValue(uint8_t status, uint8_t value)\r
-    {\r
-\r
-        SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView = SoundAndVibrationVolumeSettingView::GetInstance();\r
-        if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationVolumeSettingView GetInstance fail!!");\r
-            return;\r
-        }\r
-        UISlider *progress = p_SoundAndVibrationVolumeSettingView->GetVolumeProcess();\r
-        if (progress == nullptr)\r
-        {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_SoundAndVibrationVolumeSettingView->GetVolumeProcess() fail");\r
-            return;\r
-        }\r
-\r
-        VolumeValue = p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue;\r
-\r
-        switch (status)\r
-        {\r
-        case VOLUMEREDUCE:\r
-            /* code */\r
-            p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = progress->GetValue() - VOLUMEVALUE_CHANGE;\r
-            if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue < VOLUME_MIN)\r
-            {\r
-                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MIN;\r
-            }\r
-            break;\r
-        case VOLUMEADD:\r
-            p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = progress->GetValue() + VOLUMEVALUE_CHANGE;\r
-            if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue > VOLUME_MAX)\r
-            {\r
-                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MAX;\r
-            }\r
-            break;\r
-        case OTHER:\r
-            p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = value;\r
-            if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue < VOLUME_MIN)\r
-            {\r
-                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MIN;\r
-            }\r
-            else if (p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue > VOLUME_MAX)\r
-            {\r
-                p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue = VOLUME_MAX;\r
-            }\r
-            break;\r
-        default:\r
-            break;\r
-        }\r
-\r
-        progress->SetValue(p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue);\r
-        LocalVolumeSet(p_SoundAndVibrationVolumeSettingView->CurrentVolumeValue);\r
-    }\r
-\r
-    /*\r
-     * @brief 本地音量设置\r
-     */\r
-    void VoumeProcessSliderEventListener::LocalVolumeSet(int16_t sounding)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LocalVolumeSet %d", sounding);\r
-        Audio::AudioManager::GetInstance().SetVolume(AUDIO_STREAM_MUSIC, sounding); // 本地音量设置\r
-    }\r
-\r
-    void VoumeProcessSliderEventListener::OnChange(int32_t value)\r
-    {\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "OnChange %d", value);\r
-        ChangeVolumeValue(OTHER, value);\r
-    }\r
-\r
-    void VoumeProcessSliderEventListener::OnRelease(int32_t value)\r
-    {\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnRelease %d", value);\r
-        ChangeVolumeValue(OTHER, value);\r
-    }\r
-\r
-    bool VoumeProcessSliderEventListener::OnClick(UIView &view, const ClickEvent &event)\r
-    {\r
-        UNUSED(event);\r
-        UNUSED(view);\r
-        return true;\r
-    }\r
-\r
-    bool VoumeProcessSliderEventListener::OnDrag(UIView &view, const DragEvent &event)\r
-    {\r
-        UNUSED(event);\r
-        UNUSED(view);\r
-        return true;\r
-    }\r
 }\r
index 47e7cc9..c5fab20 100644 (file)
@@ -34,9 +34,6 @@ namespace OHOS
     {\r
         if (initViewStatus == true)\r
         {\r
-            delete volumeDragListener;\r
-            volumeDragListener = nullptr;\r
-\r
             delete p_SoundAndVibrationVolumeSettingView;\r
             p_SoundAndVibrationVolumeSettingView = nullptr;\r
         }\r
@@ -44,7 +41,7 @@ namespace OHOS
 \r
     UIScrollView *SystemVolumeView::SystemVolumeViewInit(void)\r
     {\r
-        p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView();\r
+        p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(SYSTEM_VOLUME);\r
         if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
@@ -57,7 +54,7 @@ namespace OHOS
             return nullptr;\r
         }\r
 \r
-        volumeDragListener = static_cast<UIView::OnDragListener *>(SystemVolumePresenter::GetInstance());\r
+        UIView::OnDragListener *volumeDragListener = static_cast<UIView::OnDragListener *>(SystemVolumePresenter::GetInstance());\r
         if (volumeDragListener == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPresenter GetInstance fail");\r
@@ -71,7 +68,8 @@ namespace OHOS
         }\r
 \r
         p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));\r
-\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC) = %d", Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC)); \r
+        \r
         initViewStatus = true;\r
         return SystemVolumeScrollView;\r
     }\r