声音与震动slice优化
authorluozheng <1732036298@qq.com>
Wed, 19 Jun 2024 11:06:16 +0000 (19:06 +0800)
committerluozheng <1732036298@qq.com>
Wed, 19 Jun 2024 11:06:16 +0000 (19:06 +0800)
33 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp
code/sdk/application/wearable/fd230app/nativeui/findphone/src/FindPhoneView.cpp
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/input_list_zh.txt
code/sdk/application/wearable/fd230app/nativeui/language/Language_xml/language_zh.xml
code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang
code/sdk/application/wearable/fd230app/nativeui/language/font/ui_resource_string.h
code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang
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/SoundAndVibrationModel.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationView.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/include/VibrationModeView.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/SoundAndVibrationModel.cpp
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/SoundAndVibrationVolumeSettingView.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumeView.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/VibrationModeView.cpp
code/sdk/application/wearable/fd230app/nativeui/uiservice/include/ui_service.h
code/sdk/application/wearable/fd230app/nativeui/uiservice/src/ui_service.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ui_resource_string.h
code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang

index 637ca8c..faff5e5 100644 (file)
@@ -271,6 +271,7 @@ namespace OHOS
     static constexpr const char *PNG_APPLIST_BLUETOOTH_IMAGE = APP_LIST_PATH "/Bluetooth.bin";      // 蓝牙
     static constexpr const char *PNG_APPLIST_BREATHE_IMAGE = APP_LIST_PATH "/breathe.bin";          // 呼吸训练
     static constexpr const char *PNG_APPLIST_GOAL_IMAGE = APP_LIST_PATH "/sport.bin";               // 每日目标
+    static constexpr const char *PNG_APPLIST_VOICE_IMAGE = APP_LIST_PATH "/voice.bin";              // 声音
 
     /* ---------------------------------- 快速训练 ---------------------------------- */
     static constexpr const char *PNG_TRAING_BOUTTONMORE_IMAGE = APP_RES_PATH "/Training/More.bin";
@@ -322,6 +323,7 @@ namespace OHOS
     static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin";            // togglebuttton未选中图片
     static constexpr const char *PNG_TOGGLEBUTTON_ON_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_ON.bin";              // togglebuttton选中图片
     static constexpr const char *PNG_ATTENTION_IMAGE = APP_RES_PATH "/Attention.bin";                          // 注意
+    static constexpr const char *PNG_BUTTON_466x100_IMAGE = APP_RES_PATH "/466x100button.bin";                     
 
     static constexpr const char *PNG_SUCC_IMAGE = APP_RES_PATH "/OK.bin"; // 成功
 
index 25105cb..e2bdc19 100644 (file)
@@ -17,8 +17,8 @@
 #include "AppViewIDs.h"
 #include "components/ui_label_ext.h"
 #include "language/font/ui_resource_string.h"
-#include "ApplistModel.h"
-#include "ApplistPresenter.h"
+#include "applist/include/ApplistModel.h"
+#include "applist/include/ApplistPresenter.h"
 #include "SetDesktopModel.h"
 #include "themestyle/include/ThemeStyleModel.h"
 
@@ -44,6 +44,7 @@ namespace OHOS
         {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, "显示方式", STR_DISPLAY_MODE, nullptr},
         {VIEW_SET_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, "卡片管理", STR_CARD_MANAGEMENT, nullptr},
         {VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, "更换表盘", STR_WATCH_FACE, nullptr},
+        {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, "声音", STR_WATCH_FACE, nullptr},
         {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, "蓝牙", STR_BLUETOOTH, nullptr},
         {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, "勿扰模式", STR_DO_NOT_DISTURB, nullptr},
         {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, "手电筒", STR_FLASHLIGHT, nullptr},
index a263088..f2a8333 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-27 10:47:46
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-07 18:33:39
+ * @LastEditTime: 2024-06-19 15:36:22
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/findphone/src/FindPhoneView.cpp
  */
 #include "findphone/include/FindPhoneView.h"
@@ -173,8 +173,7 @@ namespace OHOS
             }
             FindPhoneLabelButton->SetPosition(0, 366, 466, 100);
             FindPhoneLabelButton->SetViewId(FINDPHONE_LABELBUTTON);
-            const char *ImgSrc = "/user/res/466x100button.bin";
-            FindPhoneLabelButton->SetImageSrc(ImgSrc, ImgSrc);
+            FindPhoneLabelButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);
             //FindPhoneLabelButton->SetText("关闭");
             FindPhoneLabelButton->SetTextId(STR_CLOSE);
             FindPhoneLabelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
@@ -272,8 +271,7 @@ namespace OHOS
             }
             FindPhoneLabelButton->SetPosition(0, 366, 466, 100);
             FindPhoneLabelButton->SetViewId(FINDPHONE_LABELBUTTON);
-            const char *ImgSrc = "/user/res/466x100button.bin";
-            FindPhoneLabelButton->SetImageSrc(ImgSrc, ImgSrc);
+            FindPhoneLabelButton->SetImageSrc(PNG_466x100BUTTON_IMAGE, PNG_466x100BUTTON_IMAGE);
             //FindPhoneLabelButton->SetText("停止");
             FindPhoneLabelButton->SetTextId(STR_STOP);
             FindPhoneLabelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
index 4a46198..e080bb3 100644 (file)
@@ -458,4 +458,5 @@ STR_TABULAR_DISPLAY$列表显示
 STR_GRID_DISPLAY$网格显示\r
 STR_CELLULAR_DISPLAY$蜂窝显示\r
 STR_RECORDING_LIST$录音列表\r
-STR_CRLEMPTY$当前录音列表为空
\ No newline at end of file
+STR_CRLEMPTY$当前录音列表为空\r
+STR_CALL_VOLUME$通话音量
\ No newline at end of file
index d30f515..503010b 100644 (file)
        <lanstr id="STR_CELLULAR_DISPLAY" value="蜂窝显示"/>
        <lanstr id="STR_RECORDING_LIST" value="录音列表"/>
        <lanstr id="STR_CRLEMPTY" value="当前录音列表为空"/>
+       <lanstr id="STR_CALL_VOLUME" value="通话音量"/>
 </language>
index 7dc97fa..8b36d0d 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/en.lang differ
index 29e8216..527f904 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/ja.lang differ
index 0769074..eb9eee3 100644 (file)
@@ -482,7 +482,8 @@ enum UIResourceTextId : uint16_t {
     STR_SUN = 469,\r
     STR_RECORDING_LIST = 470,\r
     STR_CRLEMPTY = 471,\r
-    STR_MAX_ID = 472,\r
+    STR_CALL_VOLUME = 472,\r
+    STR_MAX_ID = 473,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index 22553ae..7ed341f 100644 (file)
Binary files a/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang and b/code/sdk/application/wearable/fd230app/nativeui/language/font/zh.lang differ
index 918a9e9..e330b9e 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 16:24:23\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:17:28\r
+ * @LastEditTime: 2024-06-19 18:58:47\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumePresenter.h\r
  */\r
 #ifndef CALL_VOLUME_PRESENTER_H\r
@@ -65,6 +65,7 @@ namespace OHOS
         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
+        bool X_DRAG_FLAG{false};\r
     };\r
 } // namespace OHOS\r
 \r
index 14562a9..ad72166 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 15:37:44\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:11:50\r
+ * @LastEditTime: 2024-06-19 18:49:04\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumeView.h\r
  */\r
 #ifndef CALL_VOLUME_VIEW_H\r
@@ -24,19 +24,18 @@ namespace OHOS
         CallVolumeView();\r
         virtual ~CallVolumeView();\r
         static CallVolumeView *GetInstance(void);\r
+        bool UpdateCallVolumeSliderValue(void);\r
 \r
         void OnStart() override;\r
         void OnSetUpView() override;\r
         void OnTearDownView() override;\r
         void OnStop() override;\r
 \r
-        UIScrollView *CallVolumeViewInit(void);\r
-        void ClearAll();\r
-\r
     private:\r
+        void ClearAll();\r
+        UIScrollView *CallVolumeViewInit(void);\r
         UIScrollView *CallVolumeScrollView{nullptr};\r
         SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView{nullptr};\r
-        UIView::OnDragListener *volumeDragListener{nullptr};\r
         bool initViewStatus{false};\r
     };\r
 } // namespace OHOS\r
index 162e633..0e69852 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-02-23 09:17:12
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 17:39:22
+ * @LastEditTime: 2024-06-19 17:40:28
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationModel.h
  */
 #ifndef SOUND_AND_VIBRATION_MODEL_H
@@ -14,7 +14,10 @@ namespace OHOS
     {
     public:
         static SoundAndVibrationModel *GetInstance(void);
-
+        bool UpdateSystemVolume(void);
+        bool UpdateCallVolume(void);
+        bool UpdateVibrationModePickerSelectIndex(void);
+        bool UpdateSilentModeSwitch(void);
         void SetVibrationReminderToggleButtonStaus(int value);
         int GetVibrationReminderToggleButtonStaus();
         void SetSilentModeToggleButtonStatus(bool value);
index d3cbfa6..19c6c8a 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-19 10:39:08\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-22 16:09:04\r
+ * @LastEditTime: 2024-06-19 14:37:36\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h\r
  */\r
 #ifndef SOUND_AND_VIBRATION_PRESENTER_H\r
@@ -44,6 +44,7 @@ namespace OHOS
         bool OnChange(UICheckBox::UICheckBoxState state) override;\r
         bool OnRotate(UIView& view, const RotateEvent& event);\r
         bool OnRotateEnd(UIView& view, const RotateEvent& event);\r
+        bool X_DRAG_FLAG{false};\r
     };\r
 } // namespace OHOS\r
 \r
index 7ce0244..b8c021b 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-04-19 21:03:26\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 15:13:58\r
+ * @LastEditTime: 2024-06-19 17:44:40\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationView.h\r
  */\r
 #ifndef SOUND_AND_VIBRATION_VIEW_H\r
@@ -43,7 +43,7 @@ namespace OHOS
             int16_t w;\r
             int16_t h;\r
             const char *ViewId;\r
-            //std::string Text;\r
+            // std::string Text;\r
             int16_t TextId;\r
         };\r
         SoundAndVibrationView();\r
@@ -53,7 +53,8 @@ namespace OHOS
         bool ChangeVibrationModeView(int16_t thisView);\r
         bool ClickFunc(int16_t interface);\r
         void ChangeView(int16_t hideView, int16_t showView);\r
-        VibrationModeView*GetVibrationModeView(void);\r
+        VibrationModeView *GetVibrationModeView(void);\r
+        bool UpdateSilentModeSwitchStatus(void);\r
 \r
         void OnStart() override;\r
         void OnSetUpView() override;\r
@@ -64,7 +65,7 @@ namespace OHOS
         VibrationModeView *vibrationModeView{nullptr};\r
 \r
     private:\r
-        void InitView(void);\r
+        void CreateSoundAndVibrationView(void);\r
         void ClearAll(void);\r
         UILabelButtonExt *SetUpButton_Ext(ButtonConfig &buttonconfig, bool nextImgVisible);\r
         bool InitSoundAndVibrationScrollView(void);\r
index a2fedbf..40cda08 100644 (file)
@@ -2,7 +2,7 @@
  * @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
+ * @LastEditTime: 2024-06-19 17:04:30\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumePresenter.h\r
  */\r
 #ifndef SYSTEM_VOLUME_PRESENTER_H\r
@@ -38,6 +38,7 @@ namespace OHOS
         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
+        bool X_DRAG_FLAG{false};\r
     };\r
 } // namespace OHOS\r
 \r
index b8b70da..0d0c9ad 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-01-29 15:37:44\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:11:54\r
+ * @LastEditTime: 2024-06-19 17:25:37\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumeView.h\r
  */\r
 #ifndef SYSTEM_VOLUME_VIEW_H\r
@@ -24,16 +24,16 @@ namespace OHOS
         SystemVolumeView();\r
         virtual ~SystemVolumeView();\r
         static SystemVolumeView *GetInstance(void);\r
+        bool UpdateSystemVolumeSliderValue(void);\r
 \r
         void OnStart() override;\r
         void OnSetUpView() override;\r
         void OnTearDownView() override;\r
         void OnStop() override;\r
 \r
-        UIScrollView *SystemVolumeViewInit(void);\r
-        void ClearAll();\r
-\r
     private:\r
+        void ClearAll();\r
+        UIScrollView *SystemVolumeViewInit(void);\r
         UIScrollView *SystemVolumeScrollView{nullptr};\r
         SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView{nullptr};\r
         bool initViewStatus{false};\r
index c3ea861..d92b773 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-22 14:35:10
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 16:59:48
+ * @LastEditTime: 2024-06-19 15:18:07
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/VibrationModeView.h
  */
 #ifndef VIBRATION_MODE_H
@@ -15,6 +15,7 @@
 
 namespace OHOS
 {
+    static constexpr const char *VIBRATION_MODE_VIEWID = "VibrationModeViewId";
     class VibrationModeView
     {
     public:
@@ -25,6 +26,7 @@ namespace OHOS
         UIScrollView *GetVibrationModeScrollView(void);
         UILabelButtonExt *GetVibrationModeLabelButton(void);
         UIPicker *GetVibrationModePicker(void);
+        bool UpdatePickerSelectIndex(void);
 
     private:
         void ClearAll();
index 04b3606..5301aa0 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:17:16\r
+ * @LastEditTime: 2024-06-19 18:58:32\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/CallVolumePresenter.cpp\r
  */\r
 #include "AppViewIDs.h"\r
@@ -14,6 +14,7 @@
 #include "common/key_code.h"\r
 #include "custom_utils.h"\r
 #include <ohos_types.h>\r
+#include <UiConfig.h>\r
 \r
 // 系统音量\r
 namespace OHOS\r
@@ -67,11 +68,10 @@ namespace OHOS
     bool CallVolumePresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
         UNUSED(view);\r
-        UNUSED(event);\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
-            (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumePresenter::OnDrag");\r
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
         {\r
-            NativeAbility::GetInstance().Back();\r
+            CallVolumePresenter::X_DRAG_FLAG = true;\r
         }\r
         return true;\r
     }\r
@@ -79,10 +79,11 @@ namespace OHOS
     bool CallVolumePresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
         UNUSED(view);\r
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::OnDragEnd");\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumePresenter::OnDragEnd");\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && CallVolumePresenter::X_DRAG_FLAG)\r
         {\r
             NativeAbility::GetInstance().Back();\r
+            CallVolumePresenter::X_DRAG_FLAG = false;\r
         }\r
         return true;\r
     }\r
index 7c657dd..bc93bc8 100644 (file)
@@ -19,7 +19,6 @@ namespace OHOS
     CallVolumeView::~CallVolumeView()\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::~CallVolumeView");\r
-        ClearAll();\r
         g_pCallVolumeView = nullptr;\r
     }\r
 \r
@@ -32,6 +31,13 @@ namespace OHOS
     {\r
         if (initViewStatus == true)\r
         {\r
+            if (container_ != nullptr)\r
+            {\r
+                container_->RemoveAll();\r
+                delete container_;\r
+                container_ = nullptr;\r
+            }\r
+\r
             delete p_SoundAndVibrationVolumeSettingView;\r
             p_SoundAndVibrationVolumeSettingView = nullptr;\r
         }\r
@@ -39,6 +45,7 @@ namespace OHOS
 \r
     UIScrollView *CallVolumeView::CallVolumeViewInit(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::CallVolumeViewInit");\r
         p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(CALL_VOLUME);\r
         if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
         {\r
@@ -52,60 +59,68 @@ namespace OHOS
             return nullptr;\r
         }\r
 \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(PhoneAudioGetVolume());\r
-        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", PhoneAudioGetVolume());\r
-        // p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(GetCallCurrVolume());\r
-        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", GetCallCurrVolume());\r
-        \r
-        int callVolume = ConfigModel::GetInstance()->GetCallVolume();\r
-        p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(callVolume);\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", callVolume);\r
-\r
-        initViewStatus = true;\r
         return CallVolumeScrollView;\r
     }\r
 \r
     void CallVolumeView::OnStart()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnStart");\r
         View<CallVolumePresenter>::OnStart();\r
+        SetContainerView(new UIViewGroup());\r
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        container_->SetTouchable(true);\r
+        container_->SetDraggable(true);\r
+        container_->SetOnDragListener(presenter_);\r
 \r
-        CallVolumeViewInit();\r
+        if (!initViewStatus)\r
+        {\r
+            CallVolumeViewInit();\r
+            initViewStatus = true;\r
+        }\r
+        UpdateCallVolumeSliderValue();\r
 \r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::CallVolumePresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+        return;\r
     }\r
 \r
     void CallVolumeView::OnSetUpView()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnSetUpView");\r
         View<CallVolumePresenter>::OnSetUpView();\r
-        RootView::GetInstance()->Add(CallVolumeScrollView);\r
+        container_->Add(CallVolumeScrollView);\r
         Draw();\r
+        return;\r
     }\r
 \r
     void CallVolumeView::OnTearDownView()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnTearDownView");\r
         View<CallVolumePresenter>::OnTearDownView();\r
         return;\r
     }\r
 \r
     void CallVolumeView::OnStop()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnStop");\r
         View<CallVolumePresenter>::OnStop();\r
         RootView::GetInstance()->ClearOnKeyActListener();\r
-        RootView::GetInstance()->RemoveAll();\r
+        ClearAll();\r
         return;\r
     }\r
+\r
+    // 更新通话音量条的值\r
+    bool CallVolumeView::UpdateCallVolumeSliderValue(void)\r
+    {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::UpdateCallVolumeSliderValue");\r
+        if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
+            return false;\r
+        }\r
+        int callVolume = ConfigModel::GetInstance()->GetCallVolume();\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", callVolume);\r
+        p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(callVolume);\r
+\r
+        return true;\r
+    }\r
 }\r
index 3d0cbb2..8d00b8e 100644 (file)
@@ -2,11 +2,14 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-02-23 09:17:00
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 17:43:36
+ * @LastEditTime: 2024-06-19 17:47:54
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp
  */
 #include "soundandvibration/include/SoundAndVibrationModel.h"
 #include "soundandvibration/include/SoundAndVibrationPresenter.h"
+#include "soundandvibration/include/VibrationModeView.h"
+#include "soundandvibration/include/SystemVolumeView.h"
+#include "soundandvibration/include/CallVolumeView.h"
 #include "wearable_log.h"
 #include "ConfigModel.h"
 namespace OHOS
@@ -22,6 +25,65 @@ namespace OHOS
         return &instance;
     }
 
+    // 更新系统音量条的值
+    bool SoundAndVibrationModel::UpdateSystemVolume(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateSystemVolume");
+        SystemVolumeView *p_SystemVolumeView = SystemVolumeView::GetInstance();
+        if (p_SystemVolumeView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::GetInstance fail!!");
+            return false;
+        }
+        p_SystemVolumeView->UpdateSystemVolumeSliderValue();
+
+        return true;
+    }
+
+    // 更新通话音量条的值
+    bool SoundAndVibrationModel::UpdateCallVolume(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateCallVolume");
+        CallVolumeView *p_CallVolumeView = CallVolumeView::GetInstance();
+        if (p_CallVolumeView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::GetInstance fail!!");
+            return false;
+        }
+        p_CallVolumeView->UpdateCallVolumeSliderValue();
+
+        return true;
+    }
+
+    // 更新震动模式选择器的选定项的索引
+    bool SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex");
+        VibrationModeView *p_VibrationModeView = VibrationModeView::GetInstance();
+        if (p_VibrationModeView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::GetInstance fail!!");
+            return false;
+        }
+        p_VibrationModeView->UpdatePickerSelectIndex();
+
+        return true;
+    }
+
+    // 更新静音模式开关状态
+    bool SoundAndVibrationModel::UpdateSilentModeSwitch(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateSilentModeSwitch");
+        SoundAndVibrationView *p_SoundAndVibrationView = SoundAndVibrationView::GetInstance();
+        if (p_SoundAndVibrationView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::GetInstance fail!!");
+            return false;
+        }
+        p_SoundAndVibrationView->UpdateSilentModeSwitchStatus();
+        return true;
+    }
+
     /// @brief 设置“震动模式”强度
     /// @param value
     void SoundAndVibrationModel::SetVibrationReminderToggleButtonStaus(int value)
@@ -29,7 +91,7 @@ namespace OHOS
         ConfigModel::GetInstance()->SetVibrationReminder(value);
     }
 
-    //获取震动强度
+    // 获取震动强度
     int SoundAndVibrationModel::GetVibrationReminderToggleButtonStaus()
     {
         return ConfigModel::GetInstance()->GetVibrationReminder();
index d238381..9d3c380 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-22 18:05:00\r
+ * @LastEditTime: 2024-06-19 15:40:58\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp\r
  */\r
 \r
@@ -18,6 +18,7 @@
 #include "ConfigModel.h"\r
 #include <ohos_types.h>\r
 #include "soundandvibration/include/SoundAndVibrationVolumeSettingC.h"\r
+#include "UiConfig.h"\r
 \r
 namespace OHOS\r
 {\r
@@ -27,73 +28,71 @@ namespace OHOS
 \r
     SoundAndVibrationPresenter::SoundAndVibrationPresenter()\r
     {\r
-\r
         g_pSoundAndVibrationPresenter = this;\r
     }\r
 \r
     SoundAndVibrationPresenter::~SoundAndVibrationPresenter()\r
     {\r
-\r
         g_pSoundAndVibrationPresenter = nullptr;\r
     }\r
 \r
     SoundAndVibrationPresenter *SoundAndVibrationPresenter::GetInstance()\r
     {\r
-\r
         return g_pSoundAndVibrationPresenter;\r
     }\r
 \r
     void SoundAndVibrationPresenter::OnStart()\r
     {\r
-\r
         Presenter<SoundAndVibrationView>::OnStart();\r
     }\r
 \r
     void SoundAndVibrationPresenter::OnPause(void)\r
     {\r
-\r
         Presenter<SoundAndVibrationView>::OnPause();\r
     }\r
 \r
     void SoundAndVibrationPresenter::OnResume(void)\r
     {\r
-\r
         Presenter<SoundAndVibrationView>::OnResume();\r
+        if (view_ == nullptr)\r
+        {\r
+            return;\r
+        }\r
     }\r
 \r
     void SoundAndVibrationPresenter::OnStop(void)\r
     {\r
-\r
         Presenter<SoundAndVibrationView>::OnStop();\r
     }\r
 \r
     bool SoundAndVibrationPresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
         UNUSED(view);\r
-        UNUSED(event);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnDrag");\r
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+        {\r
+            SoundAndVibrationPresenter::X_DRAG_FLAG = true;\r
+        }\r
         return true;\r
     }\r
 \r
     bool SoundAndVibrationPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
     {\r
+        UNUSED(view);\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::OnDragEnd");\r
-        SoundAndVibrationView *p_SoundAndVibrationView = SoundAndVibrationView::GetInstance();\r
-        if (p_SoundAndVibrationView == nullptr)\r
+        std::string viewId = view.GetViewId();\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SoundAndVibrationPresenter::X_DRAG_FLAG)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::GetInstance() fail!!");\r
-            return false;\r
-        }\r
-\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
-        {\r
-            if (&view == p_SoundAndVibrationView->GetVibrationModeView()->GetVibrationModeScrollView())\r
+            if (viewId == VIBRATION_MODE_VIEWID) // 如果在震动提醒子视图\r
             {\r
+                view_->GetVibrationModeView()->UpdatePickerSelectIndex();\r
                 SoundAndVibrationView::GetInstance()->ChangeView(VIBRATIONMODEVIEW, SOUNDANDVIBRATIONVIEW);\r
             }\r
             else\r
             {\r
-                NativeAbility::GetInstance().Back();\r
+                NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
             }\r
+            SoundAndVibrationPresenter::X_DRAG_FLAG = false;\r
         }\r
 \r
         return true;\r
@@ -108,7 +107,7 @@ namespace OHOS
         // 如果是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
+            NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
         }\r
         return true;\r
     }\r
@@ -116,9 +115,9 @@ namespace OHOS
     bool SoundAndVibrationPresenter::OnClick(UIView &view, const ClickEvent &event)\r
     {\r
         UNUSED(event);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::OnKeyAct");\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
@@ -127,15 +126,15 @@ namespace OHOS
         }\r
         else if (strcmp(view.GetViewId(), VIBRATION_REMINDER_BUTTON) == 0)\r
         {\r
-            SoundAndVibrationView::GetInstance()->ChangeView(SOUNDANDVIBRATIONVIEW, VIBRATIONMODEVIEW);\r
+            view_->ChangeView(SOUNDANDVIBRATIONVIEW, VIBRATIONMODEVIEW);\r
         }\r
-        else if (&view == SoundAndVibrationView::GetInstance()->GetVibrationModeView()->GetVibrationModeLabelButton())\r
+        else if ((view_->GetVibrationModeView() != nullptr) && (&view == view_->GetVibrationModeView()->GetVibrationModeLabelButton()))\r
         {\r
-            int VibrationMode = SoundAndVibrationView::GetInstance()->GetVibrationModeView()->GetVibrationModePicker()->GetSelected();\r
+            int VibrationMode = view_->GetVibrationModeView()->GetVibrationModePicker()->GetSelected();\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationMode = %d", VibrationMode);\r
             VibationModeSet(VibrationMode);\r
             SoundAndVibrationModel::GetInstance()->SetVibrationReminderToggleButtonStaus(VibrationMode);\r
-            SoundAndVibrationView::GetInstance()->ChangeView(VIBRATIONMODEVIEW, SOUNDANDVIBRATIONVIEW);\r
+            view_->ChangeView(VIBRATIONMODEVIEW, SOUNDANDVIBRATIONVIEW);\r
         }\r
         return true;\r
     }\r
index 3d5bd14..9f0427e 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-02-19 10:39:14\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 15:19:39\r
+ * @LastEditTime: 2024-06-19 17:46:53\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp\r
  */\r
 #include "soundandvibration/include/SoundAndVibrationView.h"\r
@@ -10,6 +10,7 @@
 #include "soundandvibration/include/SoundAndVibrationModel.h"\r
 #include "wearable_log.h"\r
 #include "language/font/ui_resource_string.h"\r
+#include <UiConfig.h>\r
 /*\r
 按优先级分为\r
 1.系统音量\r
@@ -38,7 +39,6 @@ namespace OHOS
     SoundAndVibrationView::~SoundAndVibrationView()\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::~SoundAndVibrationView");\r
-        ClearAll();\r
         g_pSoundAndVibrationView = nullptr;\r
     }\r
 \r
@@ -49,6 +49,13 @@ namespace OHOS
 \r
     void SoundAndVibrationView::ClearAll()\r
     {\r
+        if (container_ != nullptr)\r
+        {\r
+            container_->RemoveAll();\r
+            delete container_;\r
+            container_ = nullptr;\r
+        }\r
+\r
         if (SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] != nullptr)\r
         {\r
             SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->RemoveAll();\r
@@ -90,22 +97,19 @@ namespace OHOS
         SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] = new UIScrollView();\r
         if (SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::new  SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] fail!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::new SoundAndVibrationScrollView[%d] fail!", SOUNDANDVIBRATIONVIEW);\r
             return false;\r
         }\r
         SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
         SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetScrollBlankSize(35);\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetReboundSize(50);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetScrollBlankSize(75);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetReboundSize(35);\r
         SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDirection(1);\r
-        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SoundAndVibrationPresenter::GetInstance());\r
-        if (draglistener == nullptr)\r
-        {\r
-            return false;\r
-        }\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetOnDragListener(draglistener);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetMaxScrollDistance(1000);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetThrowDrag(true);\r
         SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetTouchable(true);\r
         SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDraggable(true);\r
+        container_->Add(SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]);\r
 \r
         return true;\r
     }\r
@@ -121,15 +125,14 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::Title new fail!");\r
             return false;\r
         }\r
-        Title->SetPosition(93, 52, 280, 40);\r
+        Title->SetPosition(83, 52, 300, 35);\r
         Title->SetStyle(STYLE_TEXT_FONT, 30);\r
         Title->SetStyle(STYLE_LINE_HEIGHT, 35);\r
-        //Title->SetText("声音与震动");\r
-        Title->SetTextId(STR_SOUND_AND_VIBRATION);\r
+        Title->SetTextId(STR_SOUND_AND_VIBRATION); // 声音与震动\r
         Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
         Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
-        //Title->SetRollSpeed(40);\r
         Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(Title);\r
 \r
         return true;\r
     }\r
@@ -146,23 +149,21 @@ namespace OHOS
         }\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->SetOnClickListener(presenter_);\r
         labelButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
         if (nextImgVisible)\r
         {\r
-            const char *NextImgSrc = "/user/res/SETTING_NEXT.bin";\r
-            labelButton->SetImageSrc(NextImgSrc, NextImgSrc);\r
+            labelButton->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
             labelButton->SetImagePosition(326, 37);\r
         }\r
-        //labelButton->SetText(buttonconfig.Text.c_str());\r
         labelButton->SetTextId(buttonconfig.TextId);\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
+        labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, nextImgVisible ? 0xff000000 : 0xff191919, UIButton::PRESSED);\r
+\r
         return labelButton;\r
     }\r
     /// @brief 声音与震动视图"按钮"初始化\r
@@ -174,18 +175,17 @@ namespace OHOS
         {\r
             int y;\r
             const char *viewId;\r
-            //const char *text;\r
-            const  int16_t textId;\r
+            const int16_t textId;\r
             bool clickEffect;\r
         };\r
 \r
         ButtonSetup buttonSetups[] = {\r
             {120, SYSTEM_VOLUME_BUTTON, STR_SYSTEM_VOLUME, true},\r
-            {240, CALL_VOLUME_BUTTON, STR_MEDIA_VOLUME, true},\r
+            {240, CALL_VOLUME_BUTTON, STR_CALL_VOLUME, true},\r
             {360, VIBRATION_REMINDER_BUTTON, STR_VIBRATION_MODE, true},\r
             {480, SILENT_MODE_BUTTON, STR_SILENT_MODE, false}};\r
 \r
-        UILabelButtonExt **buttonPointers[] = {&SystemVolumeButton, &CallVolumeButton, &VibrationReminderButton, &SilentModeButton};\r
+        UILabelButtonExt *buttonPointers[] = {SystemVolumeButton, CallVolumeButton, VibrationReminderButton, SilentModeButton};\r
 \r
         for (int i = 0; i < sizeof(buttonSetups) / sizeof(buttonSetups[0]); ++i)\r
         {\r
@@ -195,15 +195,14 @@ namespace OHOS
                 .w = 380,\r
                 .h = 100,\r
                 .ViewId = buttonSetups[i].viewId,\r
-                //.Text = buttonSetups[i].text};\r
                 .TextId = buttonSetups[i].textId};\r
-            *buttonPointers[i] = SetUpButton_Ext(buttonconfig, buttonSetups[i].clickEffect);\r
-            if (*buttonPointers[i] == nullptr)\r
+            buttonPointers[i] = SetUpButton_Ext(buttonconfig, buttonSetups[i].clickEffect);\r
+            if (buttonPointers[i] == nullptr)\r
             {\r
-                //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::%s Button new fail!", buttonSetups[i].text);\r
                 WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::Button[%d] new fail!", i);\r
                 return false;\r
             }\r
+            SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(buttonPointers[i]);\r
         }\r
 \r
         return true;\r
@@ -211,7 +210,7 @@ namespace OHOS
 \r
     bool SoundAndVibrationView::InitSoundAndVibrationToggleButton(void)\r
     {\r
-        /* ------------------------- SilentModeToggleButton ------------------------- */\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::InitSoundAndVibrationToggleButton");\r
         SilentModeToggleButton = new UIToggleButton();\r
         if (SilentModeToggleButton == nullptr)\r
         {\r
@@ -222,80 +221,70 @@ namespace OHOS
         SilentModeToggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
         SilentModeToggleButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
         SilentModeToggleButton->SetState(SoundAndVibrationModel::GetInstance()->GetSilentModeToggleButtonStatus());\r
-        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
-        SilentModeToggleButton->SetOnChangeListener(SilentModeToggleButtonChangeListener);\r
+        SilentModeToggleButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);\r
+        SilentModeToggleButton->SetOnChangeListener(presenter_);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SilentModeToggleButton);\r
+\r
         return true;\r
     }\r
 \r
-    void SoundAndVibrationView::InitView(void)\r
+    void SoundAndVibrationView::CreateSoundAndVibrationView(void)\r
     {\r
-        if (InitSoundAndVibrationScrollView() == false)\r
-        {\r
-            return;\r
-        }\r
-        if (InitSoundAndVibrationViewTitleLabel() == false)\r
-        {\r
-            return;\r
-        }\r
-        if (InitSoundAndVibrationButtonView() == false)\r
-        {\r
-            return;\r
-        }\r
-        if (InitSoundAndVibrationToggleButton() == false)\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::CreateSoundAndVibrationView");\r
+        if (!InitSoundAndVibrationScrollView() || !InitSoundAndVibrationViewTitleLabel() ||\r
+            !InitSoundAndVibrationButtonView() || !InitSoundAndVibrationToggleButton())\r
         {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::CreateSoundAndVibrationView fail!!");\r
             return;\r
         }\r
     }\r
 \r
     void SoundAndVibrationView::OnStart()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnStart");\r
         View<SoundAndVibrationPresenter>::OnStart();\r
-        InitView();\r
+        SetContainerView(new UIViewGroup());\r
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        container_->SetOnDragListener(presenter_);\r
+        container_->SetTouchable(true);\r
+        container_->SetDraggable(true);\r
+\r
+        CreateSoundAndVibrationView();\r
+\r
         RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SoundAndVibrationPresenter::GetInstance();\r
         RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
     }\r
 \r
     void SoundAndVibrationView::OnSetUpView()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnSetUpView");\r
         View<SoundAndVibrationPresenter>::OnSetUpView();\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(Title);\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SystemVolumeButton);\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(CallVolumeButton);\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(VibrationReminderButton);\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SilentModeButton);\r
-        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SilentModeToggleButton);\r
-        RootView::GetInstance()->Add(SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]);\r
         Draw();\r
     }\r
 \r
     void SoundAndVibrationView::OnTearDownView()\r
     {\r
-\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnTearDownView");\r
         View<SoundAndVibrationPresenter>::OnTearDownView();\r
         return;\r
     }\r
 \r
     void SoundAndVibrationView::OnStop()\r
     {\r
-\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnStop");\r
         View<SoundAndVibrationPresenter>::OnStop();\r
         RootView::GetInstance()->ClearOnKeyActListener();\r
-        RootView::GetInstance()->ClearFocus();\r
-        RootView::GetInstance()->RemoveAll();\r
+        ClearAll();\r
         return;\r
     }\r
 \r
-    /* -------------------------------------------------------------------------- */\r
     // 声音与震动界面\r
     bool SoundAndVibrationView::ChangeSoundAndVibrationView(int16_t thisView)\r
     {\r
         if (SoundAndVibrationScrollView[thisView] == nullptr)\r
         {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::ChangeSoundAndVibrationView");\r
-            RootView::GetInstance()->Add(SoundAndVibrationScrollView[thisView]);\r
+            container_->Add(SoundAndVibrationScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
@@ -313,7 +302,7 @@ namespace OHOS
                 return false;\r
             }\r
             SoundAndVibrationScrollView[thisView] = vibrationModeView->VibrationModeViewInit();\r
-            RootView::GetInstance()->Add(SoundAndVibrationScrollView[thisView]);\r
+            container_->Add(SoundAndVibrationScrollView[thisView]);\r
         }\r
         return true;\r
     }\r
@@ -351,7 +340,7 @@ namespace OHOS
     {\r
         if (hideView > MAX_SOUNDANDVIBRATIONVIEWID)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: SystemViewId Overstep ones bounds");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " Overstep ones bounds");\r
             return;\r
         }\r
         SoundAndVibrationScrollView[hideView]->SetVisible(false);\r
@@ -363,10 +352,21 @@ namespace OHOS
 \r
     VibrationModeView *SoundAndVibrationView::GetVibrationModeView(void)\r
     {\r
-        if (vibrationModeView != nullptr)\r
+        return vibrationModeView;\r
+    }\r
+\r
+    //更新静音模式开关状态\r
+    bool SoundAndVibrationView::UpdateSilentModeSwitchStatus(void)\r
+    {\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::UpdateSilentModeSwitchStatus");\r
+        if (SilentModeToggleButton == nullptr)\r
         {\r
-            return vibrationModeView;\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::SilentModeToggleButton is nullptr!!");\r
+            return false;\r
         }\r
-        return nullptr;\r
+        SilentModeToggleButton->SetState(SoundAndVibrationModel::GetInstance()->GetSilentModeToggleButtonStatus());\r
+        SilentModeToggleButton->Invalidate();\r
+\r
+        return true;\r
     }\r
 }\r
index bc6f1e0..eea2125 100644 (file)
@@ -2,7 +2,6 @@
 #include "soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h"
 #include "wearable_log.h"
 #include "ConfigModel.h"
-#include "common/image_cache_manager.h"
 
 namespace OHOS
 {
@@ -38,7 +37,6 @@ namespace OHOS
             delete VolumeProcess;
             VolumeProcess = nullptr;
 
-            ImageCacheManager::GetInstance().UnloadSingleRes(VOLUMECONTROLVECTORIMAGEPATH);
             delete VolumeVetor;
             VolumeVetor = nullptr;
 
@@ -69,6 +67,7 @@ namespace OHOS
 
     UIScrollView *SoundAndVibrationVolumeSettingView::SetUpVolumeProcess(void)
     {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationVolumeSettingView::SetUpVolumeProcess");
         ScrollView = new UIScrollView();
         if (ScrollView == nullptr)
         {
@@ -105,13 +104,7 @@ namespace OHOS
             return nullptr;
         }
         VolumeVetor->SetPosition(213, 213, 40, 40);
-        ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadSingleRes(VOLUMECONTROLVECTORIMAGEPATH);
-        if (imgInfo == nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Load image failed!");
-            return nullptr;
-        }
-        VolumeVetor->SetSrc(imgInfo);
+        VolumeVetor->SetSrc(VOLUMECONTROLVECTORIMAGEPATH);
 
         if (listener == nullptr)
         {
@@ -130,6 +123,7 @@ namespace OHOS
         ScrollView->Add(VolumeProcess);
         ScrollView->Add(VolumeVetor);
         initViewStatus = true;
+        
         return ScrollView;
     }
 
index fd14056..434b292 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com\r
  * @Date: 2024-03-30 09:14:38\r
  * @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 14:53:24\r
+ * @LastEditTime: 2024-06-19 18:58:05\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
@@ -17,6 +17,7 @@
 #include "common/key_code.h"\r
 #include "custom_utils.h"\r
 #include <ohos_types.h>\r
+#include <UiConfig.h>\r
 \r
 // 系统音量\r
 namespace OHOS\r
@@ -70,7 +71,11 @@ namespace OHOS
     bool SystemVolumePresenter::OnDrag(UIView &view, const DragEvent &event)\r
     {\r
         UNUSED(view);\r
-        UNUSED(event);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumePresenter::OnDrag");\r
+        if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+        {\r
+            SystemVolumePresenter::X_DRAG_FLAG = true;\r
+        }\r
         return true;\r
     }\r
 \r
@@ -78,9 +83,10 @@ namespace OHOS
     {\r
         UNUSED(view);\r
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumePresenter::OnDragEnd");\r
-        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SystemVolumePresenter::X_DRAG_FLAG)\r
         {\r
             NativeAbility::GetInstance().Back();\r
+            SystemVolumePresenter::X_DRAG_FLAG = false;\r
         }\r
         return true;\r
     }\r
index f34c875..8b4a567 100644 (file)
@@ -1,3 +1,10 @@
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-06-12 11:44:04\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-06-19 18:21:36\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumeView.cpp\r
+ */\r
 #include "soundandvibration/include/SystemVolumeView.h"\r
 #include "soundandvibration/include/SystemVolumePresenter.h"\r
 #include "wearable_log.h"\r
@@ -22,7 +29,6 @@ namespace OHOS
     SystemVolumeView::~SystemVolumeView()\r
     {\r
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::~SystemVolumeView");\r
-        ClearAll();\r
         g_pSystemVolumeView = nullptr;\r
     }\r
 \r
@@ -35,6 +41,13 @@ namespace OHOS
     {\r
         if (initViewStatus == true)\r
         {\r
+            if (container_ != nullptr)\r
+            {\r
+                container_->RemoveAll();\r
+                delete container_;\r
+                container_ = nullptr;\r
+            }\r
+\r
             delete p_SoundAndVibrationVolumeSettingView;\r
             p_SoundAndVibrationVolumeSettingView = nullptr;\r
         }\r
@@ -42,6 +55,7 @@ namespace OHOS
 \r
     UIScrollView *SystemVolumeView::SystemVolumeViewInit(void)\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::SystemVolumeViewInit");\r
         p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(SYSTEM_VOLUME);\r
         if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
         {\r
@@ -55,56 +69,67 @@ namespace OHOS
             return nullptr;\r
         }\r
 \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
-            return nullptr;\r
-        }\r
-        SystemVolumeScrollView->SetOnDragListener(volumeDragListener);\r
-        if (SystemVolumeScrollView == 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, "SystemVolume = %d", Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));\r
-\r
-        int systemVolume = ConfigModel::GetInstance()->GetSystemVolume();\r
-        p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(systemVolume);\r
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolume = %d", systemVolume);\r
-\r
-        initViewStatus = true;\r
         return SystemVolumeScrollView;\r
     }\r
 \r
     void SystemVolumeView::OnStart()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnStart");\r
         View<SystemVolumePresenter>::OnStart();\r
-        SystemVolumeViewInit();\r
-        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SystemVolumePresenter::GetInstance();\r
-        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+        SetContainerView(new UIViewGroup());\r
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+        container_->SetTouchable(true);\r
+        container_->SetDraggable(true);\r
+        container_->SetOnDragListener(presenter_);\r
+\r
+        if (!initViewStatus)\r
+        {\r
+            SystemVolumeViewInit();\r
+            initViewStatus = true;\r
+        }\r
+        UpdateSystemVolumeSliderValue();\r
+\r
+        RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+        return;\r
     }\r
 \r
     void SystemVolumeView::OnSetUpView()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnSetUpView");\r
         View<SystemVolumePresenter>::OnSetUpView();\r
-        RootView::GetInstance()->Add(SystemVolumeScrollView);\r
+        container_->Add(SystemVolumeScrollView);\r
         Draw();\r
+        return;\r
     }\r
 \r
     void SystemVolumeView::OnTearDownView()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnTearDownView");\r
         View<SystemVolumePresenter>::OnTearDownView();\r
         return;\r
     }\r
 \r
     void SystemVolumeView::OnStop()\r
     {\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnStop");\r
         View<SystemVolumePresenter>::OnStop();\r
         RootView::GetInstance()->ClearOnKeyActListener();\r
-        RootView::GetInstance()->RemoveAll();\r
+        ClearAll();\r
         return;\r
     }\r
+\r
+    // 更新系统音量条的值\r
+    bool SystemVolumeView::UpdateSystemVolumeSliderValue(void)\r
+    {\r
+        if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
+            return false;\r
+        }\r
+        int systemVolume = ConfigModel::GetInstance()->GetSystemVolume();\r
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolume = %d", systemVolume);\r
+        p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(systemVolume);\r
+\r
+        return true;\r
+    }\r
 }\r
index 107a5c7..a78fb82 100644 (file)
@@ -2,17 +2,20 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-22 14:35:22
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-30 18:08:26
+ * @LastEditTime: 2024-06-19 15:31:31
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/VibrationModeView.cpp
  */
 #include "soundandvibration/include/VibrationModeView.h"
 #include "soundandvibration/include/SoundAndVibrationPresenter.h"
 #include "wearable_log.h"
 #include "ConfigModel.h"
-
+#include "language/font/ui_resource_string.h"
+#include <UiConfig.h>
 namespace OHOS
 {
 
+    static constexpr uint8_t ROTATEFACTOR = 2;
+
     static VibrationModeView *g_pVibrationModeView{nullptr};
 
     VibrationModeView::VibrationModeView()
@@ -47,6 +50,7 @@ namespace OHOS
 
             if (VibrationModePicker != nullptr)
             {
+                VibrationModePicker->ClearFocus();
                 delete VibrationModePicker;
                 VibrationModePicker = nullptr;
             }
@@ -66,6 +70,7 @@ namespace OHOS
     {
         if (scrollView == nullptr)
         {
+            WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VibrationModeView::VibrationModeViewInit");
             scrollView = new UIScrollView();
             if (scrollView == nullptr)
             {
@@ -74,6 +79,7 @@ namespace OHOS
             }
             scrollView->SetPosition(0, 0, 466, 466);
             scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0);
+            scrollView->SetViewId(VIBRATION_MODE_VIEWID);
             UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(SoundAndVibrationPresenter::GetInstance());
             if (dragListener == nullptr)
             {
@@ -91,10 +97,9 @@ namespace OHOS
             Title->SetPosition(93, 52, 280, 40);
             Title->SetStyle(STYLE_TEXT_FONT, 30);
             Title->SetStyle(STYLE_LINE_HEIGHT, 35);
-            Title->SetText("震动模式");
+            Title->SetTextId(STR_VIBRATION_MODE); // 震动模式
             Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
             Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
-            Title->SetRollSpeed(40);
             Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             scrollView->Add(Title);
             /* -------------------------------------------------------------------------- */
@@ -116,7 +121,7 @@ namespace OHOS
             UIView::OnRotateListener *RotateListener = static_cast<UIView::OnRotateListener *>(SoundAndVibrationPresenter::GetInstance());
             VibrationModePicker->SetOnRotateListener(RotateListener);
             // 增加表冠控制
-            VibrationModePicker->SetRotateFactor(2);
+            VibrationModePicker->SetRotateFactor(ROTATEFACTOR);
             VibrationModePicker->RequestFocus();
             /* -------------------------------------------------------------------------- */
             const char *translations[][4] = {
@@ -163,10 +168,8 @@ namespace OHOS
                 return nullptr;
             }
             VibrationModeLabelButton->SetPosition(0, 366, 466, 100);
-            VibrationModeLabelButton->SetViewId("labelButton1");
-            const char *ImgSrc = "/user/res/466x100button.bin";
-            VibrationModeLabelButton->SetImageSrc(ImgSrc, ImgSrc);
-            VibrationModeLabelButton->SetText("确定");
+            VibrationModeLabelButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);
+            VibrationModeLabelButton->SetTextId(STR_OK); // 确定
             VibrationModeLabelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
             VibrationModeLabelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
             VibrationModeLabelButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
@@ -180,28 +183,31 @@ namespace OHOS
 
     UIScrollView *VibrationModeView::GetVibrationModeScrollView(void)
     {
-        if (scrollView != nullptr)
-        {
-            return scrollView;
-        }
-        return nullptr;
+        return scrollView;
     }
 
     UILabelButtonExt *VibrationModeView::GetVibrationModeLabelButton(void)
     {
-        if (VibrationModeLabelButton != nullptr)
-        {
-            return VibrationModeLabelButton;
-        }
-        return nullptr;
+        return VibrationModeLabelButton;
     }
 
     UIPicker *VibrationModeView::GetVibrationModePicker(void)
     {
-        if (VibrationModePicker != nullptr)
+        return VibrationModePicker;
+    }
+
+    // 更新震动模式选择器的选定项的索引
+    bool VibrationModeView::UpdatePickerSelectIndex(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VibrationModeView::UpdatePickerSelectIndex");
+        if (VibrationModePicker == nullptr)
         {
-            return VibrationModePicker;
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::VibrationModePicker is nullptr!");
+            return false;
         }
-        return nullptr;
+        VibrationModePicker->SetSelected(ConfigModel::GetInstance()->GetVibrationReminder());
+        VibrationModePicker->Invalidate();
+
+        return true;
     }
 }
\ No newline at end of file
index aa90494..a923a9f 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-06-12 11:44:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-19 10:36:53
+ * @LastEditTime: 2024-06-19 17:49:51
  * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
  */
 /*
@@ -63,6 +63,10 @@ typedef enum {
     UI_UPDATE_SCREEN_DURATION,  //更新亮屏时长
     UI_UPDATE_RAISETOBRIGHTNESS,//更新抬腕亮屏
     UI_UPDATE_BRIGHTNESS_VALUE, //更新亮度值
+    UI_UPDATE_SYSTEM_VOLUME,    //更新系统音量 
+    UI_UPDATE_CALL_VOLUME,      //更新通话音量 
+    UI_UPDATE_VIBRATION_MODE,   //更新震动模式  
+    UI_UPDATE_SILENT_MODE,      //更新静音模式  
 
     UI_UPDATE_WEATHER_DATA,     //天气数据更新
     MAX_NUM_HANDLER, 
index 79402f3..9684070 100644 (file)
@@ -17,6 +17,7 @@
 #include <functional>
 #include <iostream>
 #include "displaybrightness/include/DisplayBrightnessModel.h"
+#include "soundandvibration/include/SoundAndVibrationModel.h"
 #include "weather/include/WeatherModel.h"
 #include "uiservice/include/ui_service.h"
 #include "wearable_log.h"
@@ -96,6 +97,10 @@ static void HandleUpdateScreenDuration(Request *request);
 static void HandleUpdateRaiseToBrightness(Request *request);
 static void HandleUpdateBrightnessValue(Request *request);
 static void HandleUpdateWeatherData(Request *request);
+static void HandleUpdateSystemVolume(Request *request);
+static void HandleUpdateCallVolume(Request *request);
+static void HandleUpdateVibrationMode(Request *request);
+static void HandleUpdateSilentMode(Request *request);
 
 // 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
 MsgHandlerEntry msgHandlers[] = {
@@ -116,6 +121,10 @@ MsgHandlerEntry msgHandlers[] = {
     {UI_UPDATE_RAISETOBRIGHTNESS, HandleUpdateRaiseToBrightness},
     {UI_UPDATE_BRIGHTNESS_VALUE, HandleUpdateBrightnessValue},
     {UI_UPDATE_WEATHER_DATA, HandleUpdateWeatherData},
+    {UI_UPDATE_SYSTEM_VOLUME, HandleUpdateSystemVolume},
+    {UI_UPDATE_CALL_VOLUME, HandleUpdateCallVolume},
+    {UI_UPDATE_VIBRATION_MODE, HandleUpdateVibrationMode},
+    {UI_UPDATE_SILENT_MODE, HandleUpdateSilentMode},
     };
 /* -------------------------------------------------------------------------- */
 static void ScreenTurnOn(Request *request)
@@ -456,6 +465,38 @@ static void HandleUpdateWeatherData(Request *request)
     GraphicService::GetInstance()->PostGraphicEvent(
         std::bind(&OHOS::WeatherModel::UpdateMainWeatherData, &OHOS::WeatherModel::GetInstance()));
 }
+
+//处理更新系统音量
+void HandleUpdateSystemVolume(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSystemVolume");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SoundAndVibrationModel::UpdateSystemVolume, OHOS::SoundAndVibrationModel::GetInstance()));
+}
+
+//处理更新通话音量
+void HandleUpdateCallVolume(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateCallVolume");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SoundAndVibrationModel::UpdateCallVolume, OHOS::SoundAndVibrationModel::GetInstance()));
+}
+
+//处理更新震动模式
+void HandleUpdateVibrationMode(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateVibrationMode");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex, OHOS::SoundAndVibrationModel::GetInstance()));
+}
+
+//处理更新静音模式
+void HandleUpdateSilentMode(Request *request)
+{
+    WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSilentMode");
+    GraphicService::GetInstance()->PostGraphicEvent(
+        std::bind(&OHOS::SoundAndVibrationModel::UpdateSilentModeSwitch, OHOS::SoundAndVibrationModel::GetInstance()));
+}
 /* -------------------------------------------------------------------------- */
 #ifdef __cplusplus
 }
index 42d46dc..f4f20be 100644 (file)
@@ -703,17 +703,19 @@ int get_goal_standupcount(void)
     return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES);
 }
 
-void set_vibrationremiander(uint8_t falg)
+void set_vibrationremiander(uint8_t falg)//设置震动模式
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetVibrationReminder(falg);
+    SendMsgToUIService(UI_UPDATE_VIBRATION_MODE,0,nullptr,0);
     return ;
 }
 
-void set_SilentMode(uint8_t falg)
+void set_SilentMode(uint8_t falg)//设置静音模式
 {
     OHOS::ConfigModel *p_ConfigModel  =   OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetSilentMode(falg);
+    SendMsgToUIService(UI_UPDATE_SILENT_MODE,0,nullptr,0);
     return;
 }
 /*设置自动获取实时数据开关*/
@@ -802,6 +804,7 @@ void Set_SystemVolume(int value) //设置系统音量
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetSystemVolume(value);
+    SendMsgToUIService(UI_UPDATE_SYSTEM_VOLUME,0,nullptr,0);
     return;
 }
 
@@ -811,14 +814,15 @@ int Get_SystemVolume(void) //获取系统音量
     
     return p_ConfigModel->GetSystemVolume();
 }
-void Set_CallVolume(int value) //设置é\93\83声å\92\8cåª\92ä½\93音量
+void Set_CallVolume(int value) //设置é\80\9aè¯\9d音量
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     p_ConfigModel->SetCallVolume(value);
+    SendMsgToUIService(UI_UPDATE_CALL_VOLUME,0,nullptr,0);
     return;
 }
 
-int Get_CallVolume(void) //è\8e·å\8f\96é\93\83声å\92\8cåª\92ä½\93音量
+int Get_CallVolume(void) //è\8e·å\8f\96é\80\9aè¯\9d音量
 {
     OHOS::ConfigModel *p_ConfigModel  =  OHOS::ConfigModel::GetInstance();
     
index 7dc97fa..8b36d0d 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/en.lang differ
index 29e8216..527f904 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/ja.lang differ
index 0769074..eb9eee3 100644 (file)
@@ -482,7 +482,8 @@ enum UIResourceTextId : uint16_t {
     STR_SUN = 469,\r
     STR_RECORDING_LIST = 470,\r
     STR_CRLEMPTY = 471,\r
-    STR_MAX_ID = 472,\r
+    STR_CALL_VOLUME = 472,\r
+    STR_MAX_ID = 473,\r
 }; // UIResourceTextId\r
 
 enum FontLanguageId : uint8_t {
index 22553ae..7ed341f 100644 (file)
Binary files a/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang and b/code/sdk/build/config/target_config/brandy/mk_fs_image/fd230/fs/user/res/font/zh.lang differ