Merge #67 into xts_origin from refs/changes/67/head
author罗正 <1732036298@qq.com>
Mon, 22 Apr 2024 13:08:01 +0000 (13:08 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Mon, 22 Apr 2024 13:08:01 +0000 (13:08 +0000)
Code review from 罗正

* refs/changes/67/head: (2 commits squashed)

  - 增加震动提醒功能

  - Merge branch &#39;xts_origin&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into xts_origin

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/67
17 files changed:
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModelC.h
code/sdk/application/wearable/fd230app/nativeui/config/src/ConfigModel.cpp
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/SoundAndVibrationVolumeSettingC.h
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/VibrationModeView.h [new file with mode: 0644]
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/SoundAndVibrationVolumeSettingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/VibrationModeView.cpp [new file with mode: 0644]
code/sdk/drivers/peripheral/utils/custom_utils.c
code/sdk/drivers/peripheral/utils/custom_utils.h
code/sdk/drivers/peripheral/vibrator/service/vibrator_service.cpp

index 7dbc8cb..499db92 100644 (file)
@@ -360,6 +360,7 @@ set(SOURCES
     ${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/VibrationModeView.cpp          
 
     #显示与亮度
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp
index e1bedb4..2f7777c 100644 (file)
@@ -43,7 +43,7 @@ namespace OHOS
             CONFIGMODEL_ITEM_LANGUAGE_ID,                       //语言ID    int id
             CONFIGMODEL_ITEM_LANGUAGE_CODE,                       //语言Code string "zh","en"
             CONFIGMODEL_ITEM_SILENT_MODE,                       //静音模式模式
-            CONFIGMODEL_ITEM_VIBRATOR_SWITCH,                   // 马达 开关, 0 关, 1 弱, 2 中,3 强
+            CONFIGMODEL_ITEM_VIBRATOR_SWITCH,                   // 马达 开关,0 强,1 中,2 弱,3 关
             // CONFIGMODEL_ITEM_HRS_QUICKACCESS,
             // CONFIGMODEL_ITEM_SPO2_QUICKACCESS,
             CONFIGMODEL_ITEM_RAISE_TO_WAKE,                 //抬腕亮屏开关
@@ -123,8 +123,7 @@ namespace OHOS
         void SetpyVer(char *str);
         void SetmoderVer(char *str);
      
-        void SetVibrationReminder(int state);
-        int GetVibrationReminder(void);
+        
         
         void SetCat1_4Gability(bool state);
         bool GetCat1_4Gability();
@@ -149,6 +148,8 @@ namespace OHOS
         void SetCallVolume(int value);
         int GetCallVolume(void);
 
+        void SetVibrationReminder(int state);
+        int GetVibrationReminder(void);
 
         void SetSilentMode(bool state);
         bool GetSilentMode(void);
@@ -168,7 +169,7 @@ namespace OHOS
             {ConfigDataType::DATATYPE_INT,      "LanguageID",               "-1"    },//CONFIGMODEL_ITEM_LANGUAGE_ID, //默认没有选择语言
             {ConfigDataType::DATATYPE_STRING,   "LanguageCode",             "zh"    },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
             {ConfigDataType::DATATYPE_BOOL,     "SlientMode",               "false" },//CONFIGMODEL_ITEM_SILENT_MODE,
-            {ConfigDataType::DATATYPE_INT,      "VibratorSwitch",           "1"     },//CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关, 0 关, 1 弱, 2 中,3 强
+            {ConfigDataType::DATATYPE_INT,      "VibratorSwitch",           "1"     },//CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关,0 强,1 中,2 弱,3 关
             // {ConfigDataType::DATATYPE_BOOL,     "HRS_QuickAccess",     "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
             // {ConfigDataType::DATATYPE_BOOL,     "SPO2_QuickAccess",     "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
             {ConfigDataType::DATATYPE_BOOL,     "Rase2Wake",                "true"  },//CONFIGMODEL_ITEM_RAISE_TO_WAKE,
index 6916184..be5d797 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-17 09:32:03
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 10:54:51
+ * @LastEditTime: 2024-04-22 18:06:14
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModelC.h
  */
 #ifndef _CONFIG_MODEL_C_H_
@@ -51,6 +51,10 @@ void initializeRaiseToWake(void);
  */
 void initializeVolume(void);
 
+/*
+ * @brief 初始化震动模式 
+ */
+void initializeVibrationModel(void);
 /*
  * @brief 初始化静音模式 
  */
index d36ff19..ceab7a7 100644 (file)
@@ -576,11 +576,11 @@ namespace OHOS
 
     /*
      * @brief 设置震动模式强度
-     * @param 马达 开关, 0 关, 1 弱, 2 中,3 强
+     * @param 马达 开关,0 强,1 中,2 弱,3 关
      */
     void ConfigModel::SetVibrationReminder(int state)
     {
-        set_condigData_Bool(CONFIGMODEL_ITEM_VIBRATOR_SWITCH,state);
+        set_condigData_Int(CONFIGMODEL_ITEM_VIBRATOR_SWITCH,state);
     }
 
     /*获取震动模式强度*/
@@ -814,9 +814,16 @@ void initializeVolume(void)
     uapi_callVolumeSet(callVolume);
 }
 
+void initializeVibrationModel(void)
+{
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeVibrationModel");
+    int value = OHOS::ConfigModel::GetInstance()->GetVibrationReminder();
+    uapi_vibrationModeSet(value);
+}
+
 void initializeSilentModel(void)
 {
-    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeVolume");
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "initializeSilentModel");
     bool isopen = OHOS::ConfigModel::GetInstance()->GetSilentMode();
     uapi_setSilentMode(isopen);
 }
index b22c34f..162e633 100644 (file)
@@ -1,3 +1,10 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-02-23 09:17:12
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-22 17:39:22
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationModel.h
+ */
 #ifndef SOUND_AND_VIBRATION_MODEL_H
 #define SOUND_AND_VIBRATION_MODEL_H
 
@@ -8,7 +15,8 @@ namespace OHOS
     public:
         static SoundAndVibrationModel *GetInstance(void);
 
-        void SetVibrationReminderToggleButtonStaus(bool value);
+        void SetVibrationReminderToggleButtonStaus(int value);
+        int GetVibrationReminderToggleButtonStaus();
         void SetSilentModeToggleButtonStatus(bool value);
         bool GetSilentModeToggleButtonStatus(void);
 
@@ -17,10 +25,6 @@ namespace OHOS
         SoundAndVibrationModel(const SoundAndVibrationModel &);
         SoundAndVibrationModel &operator=(const SoundAndVibrationModel &);
         virtual ~SoundAndVibrationModel();
-
-    private:
-        bool VibrationReminderToggleButtonState{false}; // “震动提醒”切换按钮状态
-        bool SilentModeToggleButtonState{false};        // “静音模式”切换按钮状态
     };
 }
 
index eca2e78..d3cbfa6 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-18 18:05:12\r
+ * @LastEditTime: 2024-04-22 16:09:04\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h\r
  */\r
 #ifndef SOUND_AND_VIBRATION_PRESENTER_H\r
@@ -21,6 +21,7 @@ namespace OHOS
                                        public UIView::OnClickListener,\r
                                        public RootView::OnKeyActListener,\r
                                        public UICheckBox::OnChangeListener,\r
+                                       public UIView::OnRotateListener,\r
                                        public UIView::OnDragListener\r
     {\r
     public:\r
@@ -41,6 +42,8 @@ namespace OHOS
         bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
         bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
         bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+        bool OnRotate(UIView& view, const RotateEvent& event);\r
+        bool OnRotateEnd(UIView& view, const RotateEvent& event);\r
     };\r
 } // namespace OHOS\r
 \r
index 5bdef0a..df21fdb 100644 (file)
@@ -8,6 +8,8 @@
 #include "components/ui_label_button_ext.h"\r
 #include "components/ui_toggle_button.h"\r
 #include "iostream"\r
+#include "soundandvibration/include/VibrationModeView.h"\r
+\r
 namespace OHOS\r
 {\r
     /* ---------------------------------- 组件ID ---------------------------------- */\r
@@ -15,6 +17,13 @@ namespace OHOS
     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
+    typedef enum\r
+    {\r
+        SOUNDANDVIBRATIONVIEW = 0, // 声音与震动\r
+        VIBRATIONMODEVIEW,         // 震动模式\r
+        MAX_SOUNDANDVIBRATIONVIEWID,\r
+    } SOUNDANDVIBRATIONVIEWID;\r
+\r
     class SoundAndVibrationPresenter;\r
     class SoundAndVibrationView : public View<SoundAndVibrationPresenter>\r
     {\r
@@ -26,22 +35,26 @@ namespace OHOS
             int16_t y;\r
             int16_t w;\r
             int16_t h;\r
-            const char * ViewId;\r
+            const char *ViewId;\r
             std::string Text;\r
         };\r
         SoundAndVibrationView();\r
         virtual ~SoundAndVibrationView();\r
         static SoundAndVibrationView *GetInstance(void);\r
-\r
-        void SetSilentModeToggleButtonState(bool value);\r
-        bool GetSilentModeToggleButtonState(void);\r
-        UIToggleButton *GetSilentModeToggleButton();\r
+        bool ChangeSoundAndVibrationView(int16_t thisView);\r
+        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
 \r
         void OnStart() override;\r
         void OnSetUpView() override;\r
         void OnTearDownView() override;\r
         void OnStop() override;\r
 \r
+    private:\r
+        VibrationModeView *vibrationModeView{nullptr};\r
+\r
     private:\r
         void InitView(void);\r
         void ClearAll(void);\r
@@ -52,13 +65,13 @@ namespace OHOS
         bool InitSoundAndVibrationToggleButton(void);\r
 \r
     private:\r
-        UIScrollView *SoundAndVibrationScrollView{nullptr};\r
+        UIScrollView *SoundAndVibrationScrollView[MAX_SOUNDANDVIBRATIONVIEWID]{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
+        UIToggleButton *SilentModeToggleButton{nullptr};    // 静音模式切换按钮\r
     };\r
 } // namespace OHOS\r
 \r
index 03ce63c..e0c3a97 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-19 18:59:49
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 11:26:38
+ * @LastEditTime: 2024-04-22 18:35:35
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationVolumeSettingC.h
  */
 #ifndef SOUND_AND_VIBRATION_VOLUME_SETTINGC_H
@@ -19,7 +19,8 @@ extern "C"
 
     void SystemVolumeSet(int16_t sounding);
     void CallVolumeSet(int16_t sounding);
-    bool SilentModelSet(bool isopen);
+    void VibationModeSet(int value);
+    void SilentModelSet(bool isopen);
 #ifdef __cplusplus
 #if __cplusplus
 }
diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/VibrationModeView.h b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/VibrationModeView.h
new file mode 100644 (file)
index 0000000..c3ea861
--- /dev/null
@@ -0,0 +1,39 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-22 14:35:10
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-22 16:59:48
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/VibrationModeView.h
+ */
+#ifndef VIBRATION_MODE_H
+#define VIBRATION_MODE_H
+
+#include "components/ui_scroll_view.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_picker.h"
+#include "components/ui_label_button_ext.h"
+
+namespace OHOS
+{
+    class VibrationModeView
+    {
+    public:
+        VibrationModeView();
+        ~VibrationModeView();
+        static VibrationModeView *GetInstance();
+        UIScrollView *VibrationModeViewInit(void);
+        UIScrollView *GetVibrationModeScrollView(void);
+        UILabelButtonExt *GetVibrationModeLabelButton(void);
+        UIPicker *GetVibrationModePicker(void);
+
+    private:
+        void ClearAll();
+        UIScrollView *scrollView{nullptr};
+        UILabelExt *Title = nullptr;
+        UIPicker *VibrationModePicker = nullptr;
+        UILabelButtonExt *VibrationModeLabelButton = nullptr;
+    };
+
+}
+
+#endif
\ No newline at end of file
index 42213cb..05ee085 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-02-23 09:17:00
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 10:30:00
+ * @LastEditTime: 2024-04-22 17:43:36
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp
  */
 #include "soundandvibration/include/SoundAndVibrationModel.h"
 namespace OHOS
 {
 
-    SoundAndVibrationModel::SoundAndVibrationModel()
-    {
-        ConfigModel *p_ConfigModel = ConfigModel::GetInstance();
-        VibrationReminderToggleButtonState = p_ConfigModel->GetVibrationReminder();
-        SilentModeToggleButtonState = p_ConfigModel->GetSilentMode();
-    }
+    SoundAndVibrationModel::SoundAndVibrationModel() {}
 
     SoundAndVibrationModel::~SoundAndVibrationModel() {}
 
@@ -27,11 +22,17 @@ namespace OHOS
         return &instance;
     }
 
-    /// @brief è®¾ç½®â\80\9cé\9c\87å\8a¨æ\8f\90é\86\92â\80\9dæ\98¯å\90¦å¼\80å\90¯
+    /// @brief è®¾ç½®â\80\9cé\9c\87å\8a¨æ¨¡å¼\8fâ\80\9d强度
     /// @param value
-    void SoundAndVibrationModel::SetVibrationReminderToggleButtonStaus(bool value)
+    void SoundAndVibrationModel::SetVibrationReminderToggleButtonStaus(int value)
+    {
+        ConfigModel::GetInstance()->SetVibrationReminder(value);
+    }
+
+    //获取震动强度
+    int SoundAndVibrationModel::GetVibrationReminderToggleButtonStaus()
     {
-        VibrationReminderToggleButtonState = value;
+        ConfigModel::GetInstance()->GetVibrationReminder();
     }
 
     /// @brief 设置“静音模式”是否开启
index d7f11eb..d2a3eab 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 11:27:48\r
+ * @LastEditTime: 2024-04-22 18:05:00\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp\r
  */\r
 \r
@@ -76,12 +76,26 @@ namespace OHOS
 \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
+        {\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
-            NativeAbility::GetInstance().Back();\r
+            if (&view == p_SoundAndVibrationView->GetVibrationModeView()->GetVibrationModeScrollView())\r
+            {\r
+                SoundAndVibrationView::GetInstance()->ChangeView(VIBRATIONMODEVIEW, SOUNDANDVIBRATIONVIEW);\r
+            }\r
+            else\r
+            {\r
+                NativeAbility::GetInstance().Back();\r
+            }\r
         }\r
+\r
         return true;\r
     }\r
 \r
@@ -113,7 +127,15 @@ namespace OHOS
         }\r
         else if (strcmp(view.GetViewId(), VIBRATION_REMINDER_BUTTON) == 0)\r
         {\r
-            NativeAbility::GetInstance().EnterSlice(VIEW_SYSTEM_VOLUME);\r
+            SoundAndVibrationView::GetInstance()->ChangeView(SOUNDANDVIBRATIONVIEW, VIBRATIONMODEVIEW);\r
+        }\r
+        else if (&view == SoundAndVibrationView::GetInstance()->GetVibrationModeView()->GetVibrationModeLabelButton())\r
+        {\r
+            int VibrationMode = SoundAndVibrationView::GetInstance()->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
         }\r
         return true;\r
     }\r
@@ -125,16 +147,31 @@ namespace OHOS
         {\r
         case UICheckBox::SELECTED:\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SilentMode is enable!");\r
-            p_SoundAndVibrationModel->SetSilentModeToggleButtonStatus(SilentModelSet(true));\r
+            SilentModelSet(true);\r
+            p_SoundAndVibrationModel->SetSilentModeToggleButtonStatus(true);\r
             break;\r
         case UICheckBox::UNSELECTED:\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SilentMode is disable!");\r
-            p_SoundAndVibrationModel->SetSilentModeToggleButtonStatus(SilentModelSet(false));\r
+            SilentModelSet(false);\r
+            p_SoundAndVibrationModel->SetSilentModeToggleButtonStatus(false);\r
             break;\r
         default:\r
             break;\r
         }\r
-        return false;\r
+        return true;\r
     }\r
 \r
+    bool SoundAndVibrationPresenter::OnRotate(UIView &view, const RotateEvent &event)\r
+    {\r
+        UNUSED(view);\r
+        UNUSED(event);\r
+        return true;\r
+    }\r
+\r
+    bool SoundAndVibrationPresenter::OnRotateEnd(UIView &view, const RotateEvent &event)\r
+    {\r
+        UNUSED(view);\r
+        UNUSED(event);\r
+        return true;\r
+    }\r
 }
\ No newline at end of file
index 02b8a30..5694295 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-04-22 10:33:47\r
+ * @LastEditTime: 2024-04-22 16:53:42\r
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp\r
  */\r
 #include "soundandvibration/include/SoundAndVibrationView.h"\r
@@ -48,9 +48,9 @@ namespace OHOS
 \r
     void SoundAndVibrationView::ClearAll()\r
     {\r
-        if (SoundAndVibrationScrollView != nullptr)\r
+        if (SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] != nullptr)\r
         {\r
-            SoundAndVibrationScrollView->RemoveAll();\r
+            SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->RemoveAll();\r
 \r
             delete Title;\r
             Title = nullptr;\r
@@ -70,8 +70,14 @@ namespace OHOS
             delete SilentModeToggleButton;\r
             SilentModeToggleButton = nullptr;\r
 \r
-            delete SoundAndVibrationScrollView;\r
-            SoundAndVibrationScrollView = nullptr;\r
+            delete SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW];\r
+            SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] = nullptr;\r
+        }\r
+\r
+        if (vibrationModeView != nullptr)\r
+        {\r
+            delete vibrationModeView;\r
+            vibrationModeView = nullptr;\r
         }\r
     }\r
 \r
@@ -80,25 +86,25 @@ namespace OHOS
     /// @return true 初始化成功 false 初始化失败\r
     bool SoundAndVibrationView::InitSoundAndVibrationScrollView(void)\r
     {\r
-        SoundAndVibrationScrollView = new UIScrollView();\r
-        if (SoundAndVibrationScrollView == nullptr)\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] = new UIScrollView();\r
+        if (SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] == nullptr)\r
         {\r
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::new SoundAndVibrationScrollView fail!");\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::new  SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] fail!");\r
             return false;\r
         }\r
-        SoundAndVibrationScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
-        SoundAndVibrationScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
-        SoundAndVibrationScrollView->SetScrollBlankSize(35);\r
-        SoundAndVibrationScrollView->SetReboundSize(50);\r
-        SoundAndVibrationScrollView->SetDirection(1);\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]->SetDirection(1);\r
         UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SoundAndVibrationPresenter::GetInstance());\r
         if (draglistener == nullptr)\r
         {\r
             return false;\r
         }\r
-        SoundAndVibrationScrollView->SetOnDragListener(draglistener);\r
-        SoundAndVibrationScrollView->SetTouchable(true);\r
-        SoundAndVibrationScrollView->SetDraggable(true);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetOnDragListener(draglistener);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetTouchable(true);\r
+        SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDraggable(true);\r
 \r
         return true;\r
     }\r
@@ -218,27 +224,6 @@ namespace OHOS
         return true;\r
     }\r
 \r
-    /// @brief 获取"静音模式"按钮开,关状态\r
-    /// @param  void\r
-    /// @return true 开 false 关\r
-    bool SoundAndVibrationView::GetSilentModeToggleButtonState(void)\r
-    {\r
-        return SilentModeToggleButton->GetState();\r
-    }\r
-\r
-    /// @brief 设置"静音模式"按钮开,关状态\r
-    /// @param  value\r
-    void SoundAndVibrationView::SetSilentModeToggleButtonState(bool value)\r
-    {\r
-        SilentModeToggleButton->SetState(value);\r
-    }\r
-\r
-    /// @brief 获取"静音模式"切换按钮\r
-    UIToggleButton *SoundAndVibrationView::GetSilentModeToggleButton(void)\r
-    {\r
-        return SilentModeToggleButton;\r
-    }\r
-\r
     void SoundAndVibrationView::InitView(void)\r
     {\r
         if (InitSoundAndVibrationScrollView() == false)\r
@@ -270,13 +255,13 @@ namespace OHOS
     void SoundAndVibrationView::OnSetUpView()\r
     {\r
         View<SoundAndVibrationPresenter>::OnSetUpView();\r
-        SoundAndVibrationScrollView->Add(Title);\r
-        SoundAndVibrationScrollView->Add(SystemVolumeButton);\r
-        SoundAndVibrationScrollView->Add(CallVolumeButton);\r
-        SoundAndVibrationScrollView->Add(VibrationReminderButton);\r
-        SoundAndVibrationScrollView->Add(SilentModeButton);\r
-        SoundAndVibrationScrollView->Add(SilentModeToggleButton);\r
-        RootView::GetInstance()->Add(SoundAndVibrationScrollView);\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
@@ -292,7 +277,90 @@ namespace OHOS
 \r
         View<SoundAndVibrationPresenter>::OnStop();\r
         RootView::GetInstance()->ClearOnKeyActListener();\r
+        RootView::GetInstance()->ClearFocus();\r
         RootView::GetInstance()->RemoveAll();\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
+        }\r
+        return true;\r
+    }\r
+\r
+    // 震动模式界面\r
+    bool SoundAndVibrationView::ChangeVibrationModeView(int16_t thisView)\r
+    {\r
+        if (SoundAndVibrationScrollView[thisView] == nullptr)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::ChangeVibrationModeView");\r
+            vibrationModeView = new VibrationModeView();\r
+            if (vibrationModeView == nullptr)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView:: new scrollView[%d] fail", thisView);\r
+                return false;\r
+            }\r
+            SoundAndVibrationScrollView[thisView] = vibrationModeView->VibrationModeViewInit();\r
+            RootView::GetInstance()->Add(SoundAndVibrationScrollView[thisView]);\r
+        }\r
+        return true;\r
+    }\r
+\r
+    struct SoundAndVibrationViewMapper\r
+    {\r
+        const int16_t viewId;\r
+        bool (SoundAndVibrationView::*func)(int16_t thisView);\r
+    };\r
+\r
+    static const SoundAndVibrationViewMapper ViewMapper[] = {\r
+        {SOUNDANDVIBRATIONVIEW, &SoundAndVibrationView::ChangeSoundAndVibrationView},\r
+        {VIBRATIONMODEVIEW, &SoundAndVibrationView::ChangeVibrationModeView},\r
+    };\r
+\r
+    bool SoundAndVibrationView::ClickFunc(int16_t interface)\r
+    {\r
+        int funcSize = sizeof(ViewMapper) / sizeof(ViewMapper[0]);\r
+        for (int i = 0; i < funcSize; i++)\r
+        {\r
+            if (interface == ViewMapper[i].viewId)\r
+            {\r
+                bool jug = (this->*(ViewMapper[i].func))(interface);\r
+                if (jug == false)\r
+                {\r
+                    return false;\r
+                }\r
+                return true;\r
+            }\r
+        }\r
+        return false;\r
+    }\r
+\r
+    void SoundAndVibrationView::ChangeView(int16_t hideView, int16_t showView)\r
+    {\r
+        if (hideView > MAX_SOUNDANDVIBRATIONVIEWID)\r
+        {\r
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: SystemViewId Overstep ones bounds");\r
+            return;\r
+        }\r
+        SoundAndVibrationScrollView[hideView]->SetVisible(false);\r
+        ClickFunc(showView);\r
+        SoundAndVibrationScrollView[showView]->SetVisible(true);\r
+        Draw();\r
+    }\r
+    /* -------------------------------------------------------------------------- */\r
+\r
+    VibrationModeView *SoundAndVibrationView::GetVibrationModeView(void)\r
+    {\r
+        if (vibrationModeView != nullptr)\r
+        {\r
+            return vibrationModeView;\r
+        }\r
+        return nullptr;\r
+    }\r
 }\r
index bcc40fa..f835cd9 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-19 10:08:31
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 11:28:47
+ * @LastEditTime: 2024-04-22 20:26:10
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationVolumeSettingPresenter.cpp
  */
 #include "soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h"
@@ -13,6 +13,8 @@
 #include "phoneservice/include/PhoneAudio.h"
 #include "phoneservice/include/PhoneService.h"
 #include "../../../../../../middleware/services/media/foundation/audiomanager/frameworks/audioservice/include/audio_service.h"
+#include "vibrator_service.h"
+
 namespace OHOS
 {
 
@@ -150,6 +152,7 @@ extern "C"
 #endif /* __cplusplus */
 #endif /* __cplusplus */
 
+    extern void custom_VibratorFunc_int(int vibratorType);
     /*
      * @brief 系统音量设置
      */
@@ -170,11 +173,19 @@ extern "C"
     }
 
     /*
-     * @brief 静音模式设置 
-     */    
-    bool SilentModelSet(bool isopen)
+     * @brief 震动模式设置
+     */
+    void VibationModeSet(int value)
+    {
+        custom_VibratorFunc_int(value);
+    }
+
+    /*
+     * @brief 静音模式设置
+     */
+    void SilentModelSet(bool isopen)
     {
-        return AudioServiceSetMasterMute(isopen);
+        AudioServiceSetMasterMute(isopen);
     }
 #ifdef __cplusplus
 #if __cplusplus
diff --git a/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/VibrationModeView.cpp b/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/VibrationModeView.cpp
new file mode 100644 (file)
index 0000000..cca796c
--- /dev/null
@@ -0,0 +1,207 @@
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-04-22 14:35:22
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-22 19:08:26
+ * @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 "config/include/ConfigModel.h"
+
+namespace OHOS
+{
+
+    static VibrationModeView *g_pVibrationModeView{nullptr};
+
+    VibrationModeView::VibrationModeView()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::VibrationModeView");
+        g_pVibrationModeView = this;
+    }
+
+    VibrationModeView::~VibrationModeView()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::~VibrationModeView");
+        ClearAll();
+        g_pVibrationModeView = nullptr;
+    }
+
+    VibrationModeView *VibrationModeView::GetInstance()
+    {
+        return g_pVibrationModeView;
+    }
+
+    void VibrationModeView::ClearAll()
+    {
+        if (scrollView != nullptr)
+        {
+            scrollView->RemoveAll();
+
+            if (Title != nullptr)
+            {
+                delete Title;
+                Title = nullptr;
+            }
+
+            if (VibrationModePicker != nullptr)
+            {
+                delete VibrationModePicker;
+                VibrationModePicker = nullptr;
+            }
+
+            if (VibrationModeLabelButton != nullptr)
+            {
+                delete VibrationModeLabelButton;
+                VibrationModeLabelButton = nullptr;
+            }
+
+            delete scrollView;
+            scrollView = nullptr;
+        }
+    }
+
+    UIScrollView *VibrationModeView::VibrationModeViewInit(void)
+    {
+        if (scrollView == nullptr)
+        {
+            scrollView = new UIScrollView();
+            if (scrollView == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::scrollView is nullptr!");
+                return nullptr;
+            }
+            scrollView->SetPosition(0, 0, 466, 466);
+            scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0);
+            UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(SoundAndVibrationPresenter::GetInstance());
+            if (dragListener == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::GetInstance() fail!!");
+                return nullptr;
+            }
+            scrollView->SetOnDragListener(dragListener);
+            /* -------------------------------------------------------------------------- */
+            Title = new UILabelExt();
+            if (Title == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::Title is nullptr!");
+                return nullptr;
+            }
+            Title->SetPosition(93, 52, 280, 40);
+            Title->SetStyle(STYLE_TEXT_FONT, 30);
+            Title->SetStyle(STYLE_LINE_HEIGHT, 35);
+            Title->SetText("震动模式");
+            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);
+            /* -------------------------------------------------------------------------- */
+            VibrationModePicker = new UIPicker();
+            if (VibrationModePicker == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::VibrationModePicker is nullptr!");
+                return nullptr;
+            }
+            VibrationModePicker->SetPosition(43, 110, 380, 240);
+            VibrationModePicker->SetViewId("VibrationModePicker");
+            VibrationModePicker->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+            VibrationModePicker->SetItemHeight(80);
+            VibrationModePicker->SetLoopState(true);
+            VibrationModePicker->SetBackgroundFont(DEFAULT_VECTOR_FONT_FILENAME, 30); // 设置普通文本大小
+            VibrationModePicker->SetHighlightFont(DEFAULT_VECTOR_FONT_FILENAME, 35);  // 设置高光文本大小
+            VibrationModePicker->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff), Color::GetColorFromRGBA(0x4F, 0xC3, 0x4C, 0xff));
+            /* -------------------------------------------------------------------------- */
+            UIView::OnRotateListener *RotateListener = static_cast<UIView::OnRotateListener *>(SoundAndVibrationPresenter::GetInstance());
+            VibrationModePicker->SetOnRotateListener(RotateListener);
+            // 增加表冠控制
+            VibrationModePicker->SetRotateFactor(2);
+            VibrationModePicker->RequestFocus();
+            /* -------------------------------------------------------------------------- */
+            const char *translations[][4] = {
+                "强", "中", "弱", "无",                       // 中文
+                "Strong", "Medium", "Weak", "None",           // 英语
+                "強い", "中間", "弱い", "なし",               // 日语
+                "강한", "중간", "약한", "없음",               // 韩语
+                "Fuerte", "Medio", "Débil", "Ninguno",        // 西班牙语
+                "сильный", "средний", "слабый", "ничего",     // 俄语
+                "jak", "średni", "słaby", "nic",              // 克罗地亚语
+                "stark", "mittel", "schwach", "keiner",       // 德语
+                "Forte", "Médio", "Fraco", "Nenhum",          // 葡萄牙语
+                "fort", "moyen", "faible", "aucun",           // 法语
+                "sterk", "gemiddeld", "zwak", "geen",         // 荷兰语
+                "forte", "medio", "debole", "nessuno",        // 意大利语
+                "silný", "střední", "slabý", "nic",           // 捷克语
+                "ισχυρός", "μέτριος", "αδύναμος", "κανένας",  // 希腊语
+                "मजबूत", "मध्यम", "कमजोर", "कोई नहीं",           // 印地语
+                "kuat", "sedang", "lemah", "tidak ada",       // 印尼语
+                "kuat", "sederhana", "lemah", "tidak ada",    // 马来语
+                "silny", "średni", "słaby", "brak",           // 波兰语
+                "แข็งแกร่ง", "กลาง", "อ่อนแอ", "ไม่มี",            // 泰语
+                "mạnh", "trung bình", "yếu", "không",         // 越南语
+                "vahva", "keskiverto", "heikko", "ei mitään", // 芬兰语
+                "puternic", "mediu", "slab", "nimic",         // 罗马尼亚语
+                "güçlü", "orta", "zayıf", "hiçbiri",          // 土耳其语
+                "قوی", "متوسط", "ضعیف", "هیچ",                // 波斯语
+                "قوي", "متوسط", "ضعيف", "لا شيء",             // 阿拉伯语
+                "חָזָק", "בֵּינוֹנִי", "חַלָשׁ", "אֵין",                // 希伯来语
+                "сильний", "середній", "слабкий", "нічого",   // 乌克兰语
+                "stark", "medium", "svag", "ingen",           // 瑞典语
+                "kuchli", "o'rtacha", "kam", "hech",          // 乌兹别克语
+                "güclü", "orta", "zəif", "heç biri"           // 阿塞拜疆语
+            };
+            int languageid = ConfigModel::GetInstance()->GetLanguage();
+            VibrationModePicker->SetValues(translations[languageid], 4);
+            VibrationModePicker->SetSelected(ConfigModel::GetInstance()->GetVibrationReminder());
+            scrollView->Add(VibrationModePicker);
+            /* -------------------------------------------------------------------------- */
+            VibrationModeLabelButton = new UILabelButtonExt();
+            if (VibrationModeLabelButton == nullptr)
+            {
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::VibrationModeLabelButton is nullptr!");
+                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->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+            VibrationModeLabelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
+            VibrationModeLabelButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
+            VibrationModeLabelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+            UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(SoundAndVibrationPresenter::GetInstance());
+            VibrationModeLabelButton->SetOnClickListener(clickListener);
+            scrollView->Add(VibrationModeLabelButton);
+        }
+        return scrollView;
+    }
+
+    UIScrollView *VibrationModeView::GetVibrationModeScrollView(void)
+    {
+        if (scrollView != nullptr)
+        {
+            return scrollView;
+        }
+        return nullptr;
+    }
+
+    UILabelButtonExt *VibrationModeView::GetVibrationModeLabelButton(void)
+    {
+        if (VibrationModeLabelButton != nullptr)
+        {
+            return VibrationModeLabelButton;
+        }
+        return nullptr;
+    }
+
+    UIPicker *VibrationModeView::GetVibrationModePicker(void)
+    {
+        if (VibrationModePicker != nullptr)
+        {
+            return VibrationModePicker;
+        }
+        return nullptr;
+    }
+}
\ No newline at end of file
index 7290d67..52ed95d 100644 (file)
@@ -224,6 +224,7 @@ void startup_post_init_task(void)
     initializeScreenDuration();
     initializeRaiseToWake();
     initializeVolume();
+    initializeVibrationModel();
     initializeSilentModel();
 
     LOS_Msleep(5000);
@@ -636,6 +637,12 @@ void uapi_callVolumeSet(int16_t sounding)
     CallVolumeSet(sounding);
 }
 
+//震动强度设置
+void uapi_vibrationModeSet(int value)
+{
+    VibationModeSet(value);
+}
+
 //设置是否静音
 void uapi_setSilentMode(bool isopen)
 {
index 48a041d..78a463f 100644 (file)
@@ -61,6 +61,7 @@ int32_t uapi_get_screen_state(void);
 
 void uapi_systemVolumeSet(int16_t sounding);
 void uapi_callVolumeSet(int16_t sounding);
+void uapi_vibrationModeSet(int value);
 void uapi_setSilentMode(bool isopen);
 
 errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr);
index 3330e54..609ab56 100644 (file)
@@ -75,6 +75,32 @@ void custom_VibratorFunc(OHOS::VibratorType vibratorType)
 
 }
 
+void custom_VibratorFunc_int(int vibratorType)
+{
+    vibrator_cmd_t mail = {0};
+    switch (vibratorType)
+    {
+    case 0:
+        mail.cycle_time_ms = 200;
+        mail.duty = 20;
+        mail.duration_time_ms = 500;
+        break;
+    case 1:
+        mail.cycle_time_ms = 200;
+        mail.duty = 20;
+        mail.duration_time_ms = 200;
+        break;
+    case 2:
+        mail.cycle_time_ms = 200;
+        mail.duty = 20;
+        mail.duration_time_ms = 100;
+        break;
+    default:
+        break;
+    }
+
+    do_vibrator_cmd(mail);
+}
 #define MAG_CHECK_MS 20
 static unsigned long g_app_queue;