${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
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, //抬腕亮屏开关
void SetpyVer(char *str);
void SetmoderVer(char *str);
- void SetVibrationReminder(int state);
- int GetVibrationReminder(void);
+
void SetCat1_4Gability(bool state);
bool GetCat1_4Gability();
void SetCallVolume(int value);
int GetCallVolume(void);
+ void SetVibrationReminder(int state);
+ int GetVibrationReminder(void);
void SetSilentMode(bool state);
bool GetSilentMode(void);
{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,
* @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_
*/
void initializeVolume(void);
+/*
+ * @brief 初始化震动模式
+ */
+void initializeVibrationModel(void);
/*
* @brief 初始化静音模式
*/
/*
* @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);
}
/*获取震动模式强度*/
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);
}
+/*
+ * @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
public:
static SoundAndVibrationModel *GetInstance(void);
- void SetVibrationReminderToggleButtonStaus(bool value);
+ void SetVibrationReminderToggleButtonStaus(int value);
+ int GetVibrationReminderToggleButtonStaus();
void SetSilentModeToggleButtonStatus(bool value);
bool GetSilentModeToggleButtonStatus(void);
SoundAndVibrationModel(const SoundAndVibrationModel &);
SoundAndVibrationModel &operator=(const SoundAndVibrationModel &);
virtual ~SoundAndVibrationModel();
-
- private:
- bool VibrationReminderToggleButtonState{false}; // “震动提醒”切换按钮状态
- bool SilentModeToggleButtonState{false}; // “静音模式”切换按钮状态
};
}
* @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
public UIView::OnClickListener,\r
public RootView::OnKeyActListener,\r
public UICheckBox::OnChangeListener,\r
+ public UIView::OnRotateListener,\r
public UIView::OnDragListener\r
{\r
public:\r
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
#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
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
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
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
* @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
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
}
--- /dev/null
+/*
+ * @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
* @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() {}
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 设置“静音模式”是否开启
* @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
\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
}\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
{\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
* @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
\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
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
/// @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
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
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
\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
* @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"
#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
{
#endif /* __cplusplus */
#endif /* __cplusplus */
+ extern void custom_VibratorFunc_int(int vibratorType);
/*
* @brief 系统音量设置
*/
}
/*
- * @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
--- /dev/null
+/*
+ * @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
initializeScreenDuration();
initializeRaiseToWake();
initializeVolume();
+ initializeVibrationModel();
initializeSilentModel();
LOS_Msleep(5000);
CallVolumeSet(sounding);
}
+//震动强度设置
+void uapi_vibrationModeSet(int value)
+{
+ VibationModeSet(value);
+}
+
//设置是否静音
void uapi_setSilentMode(bool isopen)
{
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);
}
+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;