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