static constexpr const char *PNG_APPLIST_BLUETOOTH_IMAGE = APP_LIST_PATH "/Bluetooth.bin"; // 蓝牙
static constexpr const char *PNG_APPLIST_BREATHE_IMAGE = APP_LIST_PATH "/breathe.bin"; // 呼吸训练
static constexpr const char *PNG_APPLIST_GOAL_IMAGE = APP_LIST_PATH "/sport.bin"; // 每日目标
+ static constexpr const char *PNG_APPLIST_VOICE_IMAGE = APP_LIST_PATH "/voice.bin"; // 声音
/* ---------------------------------- 快速训练 ---------------------------------- */
static constexpr const char *PNG_TRAING_BOUTTONMORE_IMAGE = APP_RES_PATH "/Training/More.bin";
static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin"; // togglebuttton未选中图片
static constexpr const char *PNG_TOGGLEBUTTON_ON_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_ON.bin"; // togglebuttton选中图片
static constexpr const char *PNG_ATTENTION_IMAGE = APP_RES_PATH "/Attention.bin"; // 注意
+ static constexpr const char *PNG_BUTTON_466x100_IMAGE = APP_RES_PATH "/466x100button.bin";
static constexpr const char *PNG_SUCC_IMAGE = APP_RES_PATH "/OK.bin"; // 成功
#include "AppViewIDs.h"
#include "components/ui_label_ext.h"
#include "language/font/ui_resource_string.h"
-#include "ApplistModel.h"
-#include "ApplistPresenter.h"
+#include "applist/include/ApplistModel.h"
+#include "applist/include/ApplistPresenter.h"
#include "SetDesktopModel.h"
#include "themestyle/include/ThemeStyleModel.h"
{VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, "显示方式", STR_DISPLAY_MODE, nullptr},
{VIEW_SET_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, "卡片管理", STR_CARD_MANAGEMENT, nullptr},
{VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, "更换表盘", STR_WATCH_FACE, nullptr},
+ {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, "声音", STR_WATCH_FACE, nullptr},
{VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, "蓝牙", STR_BLUETOOTH, nullptr},
{VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, "勿扰模式", STR_DO_NOT_DISTURB, nullptr},
{VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, "手电筒", STR_FLASHLIGHT, nullptr},
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-27 10:47:46
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-07 18:33:39
+ * @LastEditTime: 2024-06-19 15:36:22
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/findphone/src/FindPhoneView.cpp
*/
#include "findphone/include/FindPhoneView.h"
}
FindPhoneLabelButton->SetPosition(0, 366, 466, 100);
FindPhoneLabelButton->SetViewId(FINDPHONE_LABELBUTTON);
- const char *ImgSrc = "/user/res/466x100button.bin";
- FindPhoneLabelButton->SetImageSrc(ImgSrc, ImgSrc);
+ FindPhoneLabelButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);
//FindPhoneLabelButton->SetText("关闭");
FindPhoneLabelButton->SetTextId(STR_CLOSE);
FindPhoneLabelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
}
FindPhoneLabelButton->SetPosition(0, 366, 466, 100);
FindPhoneLabelButton->SetViewId(FINDPHONE_LABELBUTTON);
- const char *ImgSrc = "/user/res/466x100button.bin";
- FindPhoneLabelButton->SetImageSrc(ImgSrc, ImgSrc);
+ FindPhoneLabelButton->SetImageSrc(PNG_466x100BUTTON_IMAGE, PNG_466x100BUTTON_IMAGE);
//FindPhoneLabelButton->SetText("停止");
FindPhoneLabelButton->SetTextId(STR_STOP);
FindPhoneLabelButton->SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
STR_GRID_DISPLAY$网格显示\r
STR_CELLULAR_DISPLAY$蜂窝显示\r
STR_RECORDING_LIST$录音列表\r
-STR_CRLEMPTY$当前录音列表为空
\ No newline at end of file
+STR_CRLEMPTY$当前录音列表为空\r
+STR_CALL_VOLUME$通话音量
\ No newline at end of file
<lanstr id="STR_CELLULAR_DISPLAY" value="蜂窝显示"/>
<lanstr id="STR_RECORDING_LIST" value="录音列表"/>
<lanstr id="STR_CRLEMPTY" value="当前录音列表为空"/>
+ <lanstr id="STR_CALL_VOLUME" value="通话音量"/>
</language>
STR_SUN = 469,\r
STR_RECORDING_LIST = 470,\r
STR_CRLEMPTY = 471,\r
- STR_MAX_ID = 472,\r
+ STR_CALL_VOLUME = 472,\r
+ STR_MAX_ID = 473,\r
}; // UIResourceTextId\r
enum FontLanguageId : uint8_t {
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-01-29 16:24:23\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:17:28\r
+ * @LastEditTime: 2024-06-19 18:58:47\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumePresenter.h\r
*/\r
#ifndef CALL_VOLUME_PRESENTER_H\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
bool OnDragEnd(UIView &view, const DragEvent &event);\r
bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
+ bool X_DRAG_FLAG{false};\r
};\r
} // namespace OHOS\r
\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-01-29 15:37:44\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:11:50\r
+ * @LastEditTime: 2024-06-19 18:49:04\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/CallVolumeView.h\r
*/\r
#ifndef CALL_VOLUME_VIEW_H\r
CallVolumeView();\r
virtual ~CallVolumeView();\r
static CallVolumeView *GetInstance(void);\r
+ bool UpdateCallVolumeSliderValue(void);\r
\r
void OnStart() override;\r
void OnSetUpView() override;\r
void OnTearDownView() override;\r
void OnStop() override;\r
\r
- UIScrollView *CallVolumeViewInit(void);\r
- void ClearAll();\r
-\r
private:\r
+ void ClearAll();\r
+ UIScrollView *CallVolumeViewInit(void);\r
UIScrollView *CallVolumeScrollView{nullptr};\r
SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView{nullptr};\r
- UIView::OnDragListener *volumeDragListener{nullptr};\r
bool initViewStatus{false};\r
};\r
} // namespace OHOS\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-02-23 09:17:12
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 17:39:22
+ * @LastEditTime: 2024-06-19 17:40:28
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationModel.h
*/
#ifndef SOUND_AND_VIBRATION_MODEL_H
{
public:
static SoundAndVibrationModel *GetInstance(void);
-
+ bool UpdateSystemVolume(void);
+ bool UpdateCallVolume(void);
+ bool UpdateVibrationModePickerSelectIndex(void);
+ bool UpdateSilentModeSwitch(void);
void SetVibrationReminderToggleButtonStaus(int value);
int GetVibrationReminderToggleButtonStaus();
void SetSilentModeToggleButtonStatus(bool value);
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-02-19 10:39:08\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-22 16:09:04\r
+ * @LastEditTime: 2024-06-19 14:37:36\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h\r
*/\r
#ifndef SOUND_AND_VIBRATION_PRESENTER_H\r
bool OnChange(UICheckBox::UICheckBoxState state) override;\r
bool OnRotate(UIView& view, const RotateEvent& event);\r
bool OnRotateEnd(UIView& view, const RotateEvent& event);\r
+ bool X_DRAG_FLAG{false};\r
};\r
} // namespace OHOS\r
\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-04-19 21:03:26\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 15:13:58\r
+ * @LastEditTime: 2024-06-19 17:44:40\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationView.h\r
*/\r
#ifndef SOUND_AND_VIBRATION_VIEW_H\r
int16_t w;\r
int16_t h;\r
const char *ViewId;\r
- //std::string Text;\r
+ // std::string Text;\r
int16_t TextId;\r
};\r
SoundAndVibrationView();\r
bool ChangeVibrationModeView(int16_t thisView);\r
bool ClickFunc(int16_t interface);\r
void ChangeView(int16_t hideView, int16_t showView);\r
- VibrationModeView*GetVibrationModeView(void);\r
+ VibrationModeView *GetVibrationModeView(void);\r
+ bool UpdateSilentModeSwitchStatus(void);\r
\r
void OnStart() override;\r
void OnSetUpView() override;\r
VibrationModeView *vibrationModeView{nullptr};\r
\r
private:\r
- void InitView(void);\r
+ void CreateSoundAndVibrationView(void);\r
void ClearAll(void);\r
UILabelButtonExt *SetUpButton_Ext(ButtonConfig &buttonconfig, bool nextImgVisible);\r
bool InitSoundAndVibrationScrollView(void);\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-01-29 16:24:30\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 14:53:45\r
+ * @LastEditTime: 2024-06-19 17:04:30\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumePresenter.h\r
*/\r
#ifndef SYSTEM_VOLUME_PRESENTER_H\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
bool OnDragEnd(UIView &view, const DragEvent &event);\r
bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
+ bool X_DRAG_FLAG{false};\r
};\r
} // namespace OHOS\r
\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-01-29 15:37:44\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:11:54\r
+ * @LastEditTime: 2024-06-19 17:25:37\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SystemVolumeView.h\r
*/\r
#ifndef SYSTEM_VOLUME_VIEW_H\r
SystemVolumeView();\r
virtual ~SystemVolumeView();\r
static SystemVolumeView *GetInstance(void);\r
+ bool UpdateSystemVolumeSliderValue(void);\r
\r
void OnStart() override;\r
void OnSetUpView() override;\r
void OnTearDownView() override;\r
void OnStop() override;\r
\r
- UIScrollView *SystemVolumeViewInit(void);\r
- void ClearAll();\r
-\r
private:\r
+ void ClearAll();\r
+ UIScrollView *SystemVolumeViewInit(void);\r
UIScrollView *SystemVolumeScrollView{nullptr};\r
SoundAndVibrationVolumeSettingView *p_SoundAndVibrationVolumeSettingView{nullptr};\r
bool initViewStatus{false};\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-22 14:35:10
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 16:59:48
+ * @LastEditTime: 2024-06-19 15:18:07
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/VibrationModeView.h
*/
#ifndef VIBRATION_MODE_H
namespace OHOS
{
+ static constexpr const char *VIBRATION_MODE_VIEWID = "VibrationModeViewId";
class VibrationModeView
{
public:
UIScrollView *GetVibrationModeScrollView(void);
UILabelButtonExt *GetVibrationModeLabelButton(void);
UIPicker *GetVibrationModePicker(void);
+ bool UpdatePickerSelectIndex(void);
private:
void ClearAll();
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 15:17:16\r
+ * @LastEditTime: 2024-06-19 18:58:32\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/CallVolumePresenter.cpp\r
*/\r
#include "AppViewIDs.h"\r
#include "common/key_code.h"\r
#include "custom_utils.h"\r
#include <ohos_types.h>\r
+#include <UiConfig.h>\r
\r
// 系统音量\r
namespace OHOS\r
bool CallVolumePresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
UNUSED(view);\r
- UNUSED(event);\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
- (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumePresenter::OnDrag");\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
{\r
- NativeAbility::GetInstance().Back();\r
+ CallVolumePresenter::X_DRAG_FLAG = true;\r
}\r
return true;\r
}\r
bool CallVolumePresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
{\r
UNUSED(view);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::OnDragEnd");\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumePresenter::OnDragEnd");\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && CallVolumePresenter::X_DRAG_FLAG)\r
{\r
NativeAbility::GetInstance().Back();\r
+ CallVolumePresenter::X_DRAG_FLAG = false;\r
}\r
return true;\r
}\r
CallVolumeView::~CallVolumeView()\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::~CallVolumeView");\r
- ClearAll();\r
g_pCallVolumeView = nullptr;\r
}\r
\r
{\r
if (initViewStatus == true)\r
{\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+\r
delete p_SoundAndVibrationVolumeSettingView;\r
p_SoundAndVibrationVolumeSettingView = nullptr;\r
}\r
\r
UIScrollView *CallVolumeView::CallVolumeViewInit(void)\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::CallVolumeViewInit");\r
p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(CALL_VOLUME);\r
if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
{\r
return nullptr;\r
}\r
\r
- UIView::OnDragListener *volumeDragListener = static_cast<UIView::OnDragListener *>(CallVolumePresenter::GetInstance());\r
- if (volumeDragListener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPresenter GetInstance fail");\r
- return nullptr;\r
- }\r
- CallVolumeScrollView->SetOnDragListener(volumeDragListener);\r
- if (CallVolumeScrollView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_SoundAndVibrationVolumeSettingView->SetUpVolumeProcess fail!!");\r
- return nullptr;\r
- }\r
-\r
- // p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(PhoneAudioGetVolume());\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", PhoneAudioGetVolume());\r
- // p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(GetCallCurrVolume());\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", GetCallCurrVolume());\r
- \r
- int callVolume = ConfigModel::GetInstance()->GetCallVolume();\r
- p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(callVolume);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", callVolume);\r
-\r
- initViewStatus = true;\r
return CallVolumeScrollView;\r
}\r
\r
void CallVolumeView::OnStart()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnStart");\r
View<CallVolumePresenter>::OnStart();\r
+ SetContainerView(new UIViewGroup());\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+ container_->SetOnDragListener(presenter_);\r
\r
- CallVolumeViewInit();\r
+ if (!initViewStatus)\r
+ {\r
+ CallVolumeViewInit();\r
+ initViewStatus = true;\r
+ }\r
+ UpdateCallVolumeSliderValue();\r
\r
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::CallVolumePresenter::GetInstance();\r
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+ return;\r
}\r
\r
void CallVolumeView::OnSetUpView()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnSetUpView");\r
View<CallVolumePresenter>::OnSetUpView();\r
- RootView::GetInstance()->Add(CallVolumeScrollView);\r
+ container_->Add(CallVolumeScrollView);\r
Draw();\r
+ return;\r
}\r
\r
void CallVolumeView::OnTearDownView()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnTearDownView");\r
View<CallVolumePresenter>::OnTearDownView();\r
return;\r
}\r
\r
void CallVolumeView::OnStop()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::OnStop");\r
View<CallVolumePresenter>::OnStop();\r
RootView::GetInstance()->ClearOnKeyActListener();\r
- RootView::GetInstance()->RemoveAll();\r
+ ClearAll();\r
return;\r
}\r
+\r
+ // 更新通话音量条的值\r
+ bool CallVolumeView::UpdateCallVolumeSliderValue(void)\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallVolumeView::UpdateCallVolumeSliderValue");\r
+ if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
+ return false;\r
+ }\r
+ int callVolume = ConfigModel::GetInstance()->GetCallVolume();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolume = %d", callVolume);\r
+ p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(callVolume);\r
+\r
+ return true;\r
+ }\r
}\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-02-23 09:17:00
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-22 17:43:36
+ * @LastEditTime: 2024-06-19 17:47:54
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationModel.cpp
*/
#include "soundandvibration/include/SoundAndVibrationModel.h"
#include "soundandvibration/include/SoundAndVibrationPresenter.h"
+#include "soundandvibration/include/VibrationModeView.h"
+#include "soundandvibration/include/SystemVolumeView.h"
+#include "soundandvibration/include/CallVolumeView.h"
#include "wearable_log.h"
#include "ConfigModel.h"
namespace OHOS
return &instance;
}
+ // 更新系统音量条的值
+ bool SoundAndVibrationModel::UpdateSystemVolume(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateSystemVolume");
+ SystemVolumeView *p_SystemVolumeView = SystemVolumeView::GetInstance();
+ if (p_SystemVolumeView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::GetInstance fail!!");
+ return false;
+ }
+ p_SystemVolumeView->UpdateSystemVolumeSliderValue();
+
+ return true;
+ }
+
+ // 更新通话音量条的值
+ bool SoundAndVibrationModel::UpdateCallVolume(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateCallVolume");
+ CallVolumeView *p_CallVolumeView = CallVolumeView::GetInstance();
+ if (p_CallVolumeView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::GetInstance fail!!");
+ return false;
+ }
+ p_CallVolumeView->UpdateCallVolumeSliderValue();
+
+ return true;
+ }
+
+ // 更新震动模式选择器的选定项的索引
+ bool SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex");
+ VibrationModeView *p_VibrationModeView = VibrationModeView::GetInstance();
+ if (p_VibrationModeView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::GetInstance fail!!");
+ return false;
+ }
+ p_VibrationModeView->UpdatePickerSelectIndex();
+
+ return true;
+ }
+
+ // 更新静音模式开关状态
+ bool SoundAndVibrationModel::UpdateSilentModeSwitch(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationModel::UpdateSilentModeSwitch");
+ SoundAndVibrationView *p_SoundAndVibrationView = SoundAndVibrationView::GetInstance();
+ if (p_SoundAndVibrationView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::GetInstance fail!!");
+ return false;
+ }
+ p_SoundAndVibrationView->UpdateSilentModeSwitchStatus();
+ return true;
+ }
+
/// @brief 设置“震动模式”强度
/// @param value
void SoundAndVibrationModel::SetVibrationReminderToggleButtonStaus(int value)
ConfigModel::GetInstance()->SetVibrationReminder(value);
}
- //获取震动强度
+ // 获取震动强度
int SoundAndVibrationModel::GetVibrationReminderToggleButtonStaus()
{
return ConfigModel::GetInstance()->GetVibrationReminder();
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-02-19 10:39:11\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-22 18:05:00\r
+ * @LastEditTime: 2024-06-19 15:40:58\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp\r
*/\r
\r
#include "ConfigModel.h"\r
#include <ohos_types.h>\r
#include "soundandvibration/include/SoundAndVibrationVolumeSettingC.h"\r
+#include "UiConfig.h"\r
\r
namespace OHOS\r
{\r
\r
SoundAndVibrationPresenter::SoundAndVibrationPresenter()\r
{\r
-\r
g_pSoundAndVibrationPresenter = this;\r
}\r
\r
SoundAndVibrationPresenter::~SoundAndVibrationPresenter()\r
{\r
-\r
g_pSoundAndVibrationPresenter = nullptr;\r
}\r
\r
SoundAndVibrationPresenter *SoundAndVibrationPresenter::GetInstance()\r
{\r
-\r
return g_pSoundAndVibrationPresenter;\r
}\r
\r
void SoundAndVibrationPresenter::OnStart()\r
{\r
-\r
Presenter<SoundAndVibrationView>::OnStart();\r
}\r
\r
void SoundAndVibrationPresenter::OnPause(void)\r
{\r
-\r
Presenter<SoundAndVibrationView>::OnPause();\r
}\r
\r
void SoundAndVibrationPresenter::OnResume(void)\r
{\r
-\r
Presenter<SoundAndVibrationView>::OnResume();\r
+ if (view_ == nullptr)\r
+ {\r
+ return;\r
+ }\r
}\r
\r
void SoundAndVibrationPresenter::OnStop(void)\r
{\r
-\r
Presenter<SoundAndVibrationView>::OnStop();\r
}\r
\r
bool SoundAndVibrationPresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
UNUSED(view);\r
- UNUSED(event);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "RespiratoryTrainingPresenter::OnDrag");\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+ {\r
+ SoundAndVibrationPresenter::X_DRAG_FLAG = true;\r
+ }\r
return true;\r
}\r
\r
bool SoundAndVibrationPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
{\r
+ UNUSED(view);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::OnDragEnd");\r
- SoundAndVibrationView *p_SoundAndVibrationView = SoundAndVibrationView::GetInstance();\r
- if (p_SoundAndVibrationView == nullptr)\r
+ std::string viewId = view.GetViewId();\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SoundAndVibrationPresenter::X_DRAG_FLAG)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::GetInstance() fail!!");\r
- return false;\r
- }\r
-\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
- {\r
- if (&view == p_SoundAndVibrationView->GetVibrationModeView()->GetVibrationModeScrollView())\r
+ if (viewId == VIBRATION_MODE_VIEWID) // 如果在震动提醒子视图\r
{\r
+ view_->GetVibrationModeView()->UpdatePickerSelectIndex();\r
SoundAndVibrationView::GetInstance()->ChangeView(VIBRATIONMODEVIEW, SOUNDANDVIBRATIONVIEW);\r
}\r
else\r
{\r
- NativeAbility::GetInstance().Back();\r
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
}\r
+ SoundAndVibrationPresenter::X_DRAG_FLAG = false;\r
}\r
\r
return true;\r
// 如果是power键,且是亮屏状态,按键释放就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
{\r
- NativeAbility::GetInstance().Back();\r
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
}\r
return true;\r
}\r
bool SoundAndVibrationPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
UNUSED(event);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::OnKeyAct");\r
if (strcmp(view.GetViewId(), SYSTEM_VOLUME_BUTTON) == 0)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SYSTEM_VOLUME_BUTTON");\r
NativeAbility::GetInstance().EnterSlice(VIEW_SYSTEM_VOLUME);\r
}\r
else if (strcmp(view.GetViewId(), CALL_VOLUME_BUTTON) == 0)\r
}\r
else if (strcmp(view.GetViewId(), VIBRATION_REMINDER_BUTTON) == 0)\r
{\r
- SoundAndVibrationView::GetInstance()->ChangeView(SOUNDANDVIBRATIONVIEW, VIBRATIONMODEVIEW);\r
+ view_->ChangeView(SOUNDANDVIBRATIONVIEW, VIBRATIONMODEVIEW);\r
}\r
- else if (&view == SoundAndVibrationView::GetInstance()->GetVibrationModeView()->GetVibrationModeLabelButton())\r
+ else if ((view_->GetVibrationModeView() != nullptr) && (&view == view_->GetVibrationModeView()->GetVibrationModeLabelButton()))\r
{\r
- int VibrationMode = SoundAndVibrationView::GetInstance()->GetVibrationModeView()->GetVibrationModePicker()->GetSelected();\r
+ int VibrationMode = view_->GetVibrationModeView()->GetVibrationModePicker()->GetSelected();\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationMode = %d", VibrationMode);\r
VibationModeSet(VibrationMode);\r
SoundAndVibrationModel::GetInstance()->SetVibrationReminderToggleButtonStaus(VibrationMode);\r
- SoundAndVibrationView::GetInstance()->ChangeView(VIBRATIONMODEVIEW, SOUNDANDVIBRATIONVIEW);\r
+ view_->ChangeView(VIBRATIONMODEVIEW, SOUNDANDVIBRATIONVIEW);\r
}\r
return true;\r
}\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-02-19 10:39:14\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 15:19:39\r
+ * @LastEditTime: 2024-06-19 17:46:53\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp\r
*/\r
#include "soundandvibration/include/SoundAndVibrationView.h"\r
#include "soundandvibration/include/SoundAndVibrationModel.h"\r
#include "wearable_log.h"\r
#include "language/font/ui_resource_string.h"\r
+#include <UiConfig.h>\r
/*\r
按优先级分为\r
1.系统音量\r
SoundAndVibrationView::~SoundAndVibrationView()\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::~SoundAndVibrationView");\r
- ClearAll();\r
g_pSoundAndVibrationView = nullptr;\r
}\r
\r
\r
void SoundAndVibrationView::ClearAll()\r
{\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+\r
if (SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] != nullptr)\r
{\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->RemoveAll();\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] = new UIScrollView();\r
if (SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::new SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] fail!");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::new SoundAndVibrationScrollView[%d] fail!", SOUNDANDVIBRATIONVIEW);\r
return false;\r
}\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetScrollBlankSize(35);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetReboundSize(50);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetScrollBlankSize(75);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetReboundSize(35);\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDirection(1);\r
- UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SoundAndVibrationPresenter::GetInstance());\r
- if (draglistener == nullptr)\r
- {\r
- return false;\r
- }\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetOnDragListener(draglistener);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetMaxScrollDistance(1000);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetThrowDrag(true);\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetTouchable(true);\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDraggable(true);\r
+ container_->Add(SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]);\r
\r
return true;\r
}\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::Title new fail!");\r
return false;\r
}\r
- Title->SetPosition(93, 52, 280, 40);\r
+ Title->SetPosition(83, 52, 300, 35);\r
Title->SetStyle(STYLE_TEXT_FONT, 30);\r
Title->SetStyle(STYLE_LINE_HEIGHT, 35);\r
- //Title->SetText("声音与震动");\r
- Title->SetTextId(STR_SOUND_AND_VIBRATION);\r
+ Title->SetTextId(STR_SOUND_AND_VIBRATION); // 声音与震动\r
Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);\r
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- //Title->SetRollSpeed(40);\r
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(Title);\r
\r
return true;\r
}\r
}\r
labelButton->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
labelButton->SetViewId(buttonconfig.ViewId);\r
- labelButton->SetOnClickListener(static_cast<UIView::OnClickListener *>(SoundAndVibrationPresenter::GetInstance()));\r
+ labelButton->SetOnClickListener(presenter_);\r
labelButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
if (nextImgVisible)\r
{\r
- const char *NextImgSrc = "/user/res/SETTING_NEXT.bin";\r
- labelButton->SetImageSrc(NextImgSrc, NextImgSrc);\r
+ labelButton->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
labelButton->SetImagePosition(326, 37);\r
}\r
- //labelButton->SetText(buttonconfig.Text.c_str());\r
labelButton->SetTextId(buttonconfig.TextId);\r
labelButton->SetAlign(TEXT_ALIGNMENT_LEFT);\r
labelButton->SetLabelPosition(47, 0);\r
labelButton->SetStyle(STYLE_TEXT_FONT, 30);\r
labelButton->SetStyle(STYLE_LINE_HEIGHT, 35);\r
labelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
- labelButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff191919, UIButton::PRESSED);\r
+ labelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, nextImgVisible ? 0xff000000 : 0xff191919, UIButton::PRESSED);\r
+\r
return labelButton;\r
}\r
/// @brief 声音与震动视图"按钮"初始化\r
{\r
int y;\r
const char *viewId;\r
- //const char *text;\r
- const int16_t textId;\r
+ const int16_t textId;\r
bool clickEffect;\r
};\r
\r
ButtonSetup buttonSetups[] = {\r
{120, SYSTEM_VOLUME_BUTTON, STR_SYSTEM_VOLUME, true},\r
- {240, CALL_VOLUME_BUTTON, STR_MEDIA_VOLUME, true},\r
+ {240, CALL_VOLUME_BUTTON, STR_CALL_VOLUME, true},\r
{360, VIBRATION_REMINDER_BUTTON, STR_VIBRATION_MODE, true},\r
{480, SILENT_MODE_BUTTON, STR_SILENT_MODE, false}};\r
\r
- UILabelButtonExt **buttonPointers[] = {&SystemVolumeButton, &CallVolumeButton, &VibrationReminderButton, &SilentModeButton};\r
+ UILabelButtonExt *buttonPointers[] = {SystemVolumeButton, CallVolumeButton, VibrationReminderButton, SilentModeButton};\r
\r
for (int i = 0; i < sizeof(buttonSetups) / sizeof(buttonSetups[0]); ++i)\r
{\r
.w = 380,\r
.h = 100,\r
.ViewId = buttonSetups[i].viewId,\r
- //.Text = buttonSetups[i].text};\r
.TextId = buttonSetups[i].textId};\r
- *buttonPointers[i] = SetUpButton_Ext(buttonconfig, buttonSetups[i].clickEffect);\r
- if (*buttonPointers[i] == nullptr)\r
+ buttonPointers[i] = SetUpButton_Ext(buttonconfig, buttonSetups[i].clickEffect);\r
+ if (buttonPointers[i] == nullptr)\r
{\r
- //WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::%s Button new fail!", buttonSetups[i].text);\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::Button[%d] new fail!", i);\r
return false;\r
}\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(buttonPointers[i]);\r
}\r
\r
return true;\r
\r
bool SoundAndVibrationView::InitSoundAndVibrationToggleButton(void)\r
{\r
- /* ------------------------- SilentModeToggleButton ------------------------- */\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::InitSoundAndVibrationToggleButton");\r
SilentModeToggleButton = new UIToggleButton();\r
if (SilentModeToggleButton == nullptr)\r
{\r
SilentModeToggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);\r
SilentModeToggleButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
SilentModeToggleButton->SetState(SoundAndVibrationModel::GetInstance()->GetSilentModeToggleButtonStatus());\r
- const char *ToggleButtonSelect = "/user/res/TOGGLEBUTTON_ON.bin";\r
- const char *ToggleButtonUnSelect = "/user/res/TOGGLEBUTTON_OFF.bin";\r
- SilentModeToggleButton->SetImages(ToggleButtonSelect, ToggleButtonUnSelect);\r
- UICheckBox::OnChangeListener *SilentModeToggleButtonChangeListener = static_cast<UICheckBox::OnChangeListener *>(SoundAndVibrationPresenter::GetInstance());\r
- SilentModeToggleButton->SetOnChangeListener(SilentModeToggleButtonChangeListener);\r
+ SilentModeToggleButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);\r
+ SilentModeToggleButton->SetOnChangeListener(presenter_);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SilentModeToggleButton);\r
+\r
return true;\r
}\r
\r
- void SoundAndVibrationView::InitView(void)\r
+ void SoundAndVibrationView::CreateSoundAndVibrationView(void)\r
{\r
- if (InitSoundAndVibrationScrollView() == false)\r
- {\r
- return;\r
- }\r
- if (InitSoundAndVibrationViewTitleLabel() == false)\r
- {\r
- return;\r
- }\r
- if (InitSoundAndVibrationButtonView() == false)\r
- {\r
- return;\r
- }\r
- if (InitSoundAndVibrationToggleButton() == false)\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::CreateSoundAndVibrationView");\r
+ if (!InitSoundAndVibrationScrollView() || !InitSoundAndVibrationViewTitleLabel() ||\r
+ !InitSoundAndVibrationButtonView() || !InitSoundAndVibrationToggleButton())\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::CreateSoundAndVibrationView fail!!");\r
return;\r
}\r
}\r
\r
void SoundAndVibrationView::OnStart()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnStart");\r
View<SoundAndVibrationPresenter>::OnStart();\r
- InitView();\r
+ SetContainerView(new UIViewGroup());\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ container_->SetOnDragListener(presenter_);\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+\r
+ CreateSoundAndVibrationView();\r
+\r
RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SoundAndVibrationPresenter::GetInstance();\r
RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void SoundAndVibrationView::OnSetUpView()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnSetUpView");\r
View<SoundAndVibrationPresenter>::OnSetUpView();\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(Title);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SystemVolumeButton);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(CallVolumeButton);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(VibrationReminderButton);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SilentModeButton);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(SilentModeToggleButton);\r
- RootView::GetInstance()->Add(SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]);\r
Draw();\r
}\r
\r
void SoundAndVibrationView::OnTearDownView()\r
{\r
-\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnTearDownView");\r
View<SoundAndVibrationPresenter>::OnTearDownView();\r
return;\r
}\r
\r
void SoundAndVibrationView::OnStop()\r
{\r
-\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnStop");\r
View<SoundAndVibrationPresenter>::OnStop();\r
RootView::GetInstance()->ClearOnKeyActListener();\r
- RootView::GetInstance()->ClearFocus();\r
- RootView::GetInstance()->RemoveAll();\r
+ ClearAll();\r
return;\r
}\r
\r
- /* -------------------------------------------------------------------------- */\r
// 声音与震动界面\r
bool SoundAndVibrationView::ChangeSoundAndVibrationView(int16_t thisView)\r
{\r
if (SoundAndVibrationScrollView[thisView] == nullptr)\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::ChangeSoundAndVibrationView");\r
- RootView::GetInstance()->Add(SoundAndVibrationScrollView[thisView]);\r
+ container_->Add(SoundAndVibrationScrollView[thisView]);\r
}\r
return true;\r
}\r
return false;\r
}\r
SoundAndVibrationScrollView[thisView] = vibrationModeView->VibrationModeViewInit();\r
- RootView::GetInstance()->Add(SoundAndVibrationScrollView[thisView]);\r
+ container_->Add(SoundAndVibrationScrollView[thisView]);\r
}\r
return true;\r
}\r
{\r
if (hideView > MAX_SOUNDANDVIBRATIONVIEWID)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessView:: SystemViewId Overstep ones bounds");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " Overstep ones bounds");\r
return;\r
}\r
SoundAndVibrationScrollView[hideView]->SetVisible(false);\r
\r
VibrationModeView *SoundAndVibrationView::GetVibrationModeView(void)\r
{\r
- if (vibrationModeView != nullptr)\r
+ return vibrationModeView;\r
+ }\r
+\r
+ //更新静音模式开关状态\r
+ bool SoundAndVibrationView::UpdateSilentModeSwitchStatus(void)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::UpdateSilentModeSwitchStatus");\r
+ if (SilentModeToggleButton == nullptr)\r
{\r
- return vibrationModeView;\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::SilentModeToggleButton is nullptr!!");\r
+ return false;\r
}\r
- return nullptr;\r
+ SilentModeToggleButton->SetState(SoundAndVibrationModel::GetInstance()->GetSilentModeToggleButtonStatus());\r
+ SilentModeToggleButton->Invalidate();\r
+\r
+ return true;\r
}\r
}\r
#include "soundandvibration/include/SoundAndVibrationVolumeSettingPresenter.h"
#include "wearable_log.h"
#include "ConfigModel.h"
-#include "common/image_cache_manager.h"
namespace OHOS
{
delete VolumeProcess;
VolumeProcess = nullptr;
- ImageCacheManager::GetInstance().UnloadSingleRes(VOLUMECONTROLVECTORIMAGEPATH);
delete VolumeVetor;
VolumeVetor = nullptr;
UIScrollView *SoundAndVibrationVolumeSettingView::SetUpVolumeProcess(void)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationVolumeSettingView::SetUpVolumeProcess");
ScrollView = new UIScrollView();
if (ScrollView == nullptr)
{
return nullptr;
}
VolumeVetor->SetPosition(213, 213, 40, 40);
- ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadSingleRes(VOLUMECONTROLVECTORIMAGEPATH);
- if (imgInfo == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Load image failed!");
- return nullptr;
- }
- VolumeVetor->SetSrc(imgInfo);
+ VolumeVetor->SetSrc(VOLUMECONTROLVECTORIMAGEPATH);
if (listener == nullptr)
{
ScrollView->Add(VolumeProcess);
ScrollView->Add(VolumeVetor);
initViewStatus = true;
+
return ScrollView;
}
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 09:14:38\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-04-19 14:53:24\r
+ * @LastEditTime: 2024-06-19 18:58:05\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumePresenter.cpp\r
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE\r
*/\r
#include "common/key_code.h"\r
#include "custom_utils.h"\r
#include <ohos_types.h>\r
+#include <UiConfig.h>\r
\r
// 系统音量\r
namespace OHOS\r
bool SystemVolumePresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
UNUSED(view);\r
- UNUSED(event);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumePresenter::OnDrag");\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+ {\r
+ SystemVolumePresenter::X_DRAG_FLAG = true;\r
+ }\r
return true;\r
}\r
\r
{\r
UNUSED(view);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumePresenter::OnDragEnd");\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && SystemVolumePresenter::X_DRAG_FLAG)\r
{\r
NativeAbility::GetInstance().Back();\r
+ SystemVolumePresenter::X_DRAG_FLAG = false;\r
}\r
return true;\r
}\r
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-06-12 11:44:04\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-06-19 18:21:36\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SystemVolumeView.cpp\r
+ */\r
#include "soundandvibration/include/SystemVolumeView.h"\r
#include "soundandvibration/include/SystemVolumePresenter.h"\r
#include "wearable_log.h"\r
SystemVolumeView::~SystemVolumeView()\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::~SystemVolumeView");\r
- ClearAll();\r
g_pSystemVolumeView = nullptr;\r
}\r
\r
{\r
if (initViewStatus == true)\r
{\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+\r
delete p_SoundAndVibrationVolumeSettingView;\r
p_SoundAndVibrationVolumeSettingView = nullptr;\r
}\r
\r
UIScrollView *SystemVolumeView::SystemVolumeViewInit(void)\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::SystemVolumeViewInit");\r
p_SoundAndVibrationVolumeSettingView = new SoundAndVibrationVolumeSettingView(SYSTEM_VOLUME);\r
if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
{\r
return nullptr;\r
}\r
\r
- UIView::OnDragListener *volumeDragListener = static_cast<UIView::OnDragListener *>(SystemVolumePresenter::GetInstance());\r
- if (volumeDragListener == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RecordingPresenter GetInstance fail");\r
- return nullptr;\r
- }\r
- SystemVolumeScrollView->SetOnDragListener(volumeDragListener);\r
- if (SystemVolumeScrollView == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "p_SoundAndVibrationVolumeSettingView->SetUpVolumeProcess fail!!");\r
- return nullptr;\r
- }\r
-\r
- // p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolume = %d", Audio::AudioManager::GetInstance().GetVolume(AUDIO_STREAM_MUSIC));\r
-\r
- int systemVolume = ConfigModel::GetInstance()->GetSystemVolume();\r
- p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(systemVolume);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolume = %d", systemVolume);\r
-\r
- initViewStatus = true;\r
return SystemVolumeScrollView;\r
}\r
\r
void SystemVolumeView::OnStart()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnStart");\r
View<SystemVolumePresenter>::OnStart();\r
- SystemVolumeViewInit();\r
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SystemVolumePresenter::GetInstance();\r
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+ SetContainerView(new UIViewGroup());\r
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ container_->SetTouchable(true);\r
+ container_->SetDraggable(true);\r
+ container_->SetOnDragListener(presenter_);\r
+\r
+ if (!initViewStatus)\r
+ {\r
+ SystemVolumeViewInit();\r
+ initViewStatus = true;\r
+ }\r
+ UpdateSystemVolumeSliderValue();\r
+\r
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);\r
+ return;\r
}\r
\r
void SystemVolumeView::OnSetUpView()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnSetUpView");\r
View<SystemVolumePresenter>::OnSetUpView();\r
- RootView::GetInstance()->Add(SystemVolumeScrollView);\r
+ container_->Add(SystemVolumeScrollView);\r
Draw();\r
+ return;\r
}\r
\r
void SystemVolumeView::OnTearDownView()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnTearDownView");\r
View<SystemVolumePresenter>::OnTearDownView();\r
return;\r
}\r
\r
void SystemVolumeView::OnStop()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumeView::OnStop");\r
View<SystemVolumePresenter>::OnStop();\r
RootView::GetInstance()->ClearOnKeyActListener();\r
- RootView::GetInstance()->RemoveAll();\r
+ ClearAll();\r
return;\r
}\r
+\r
+ // 更新系统音量条的值\r
+ bool SystemVolumeView::UpdateSystemVolumeSliderValue(void)\r
+ {\r
+ if (p_SoundAndVibrationVolumeSettingView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallVolumeView::p_SoundAndVibrationVolumeSettingView is nullptr!");\r
+ return false;\r
+ }\r
+ int systemVolume = ConfigModel::GetInstance()->GetSystemVolume();\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemVolume = %d", systemVolume);\r
+ p_SoundAndVibrationVolumeSettingView->GetVolumeProcess()->SetValue(systemVolume);\r
+\r
+ return true;\r
+ }\r
}\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-22 14:35:22
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-30 18:08:26
+ * @LastEditTime: 2024-06-19 15:31:31
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/VibrationModeView.cpp
*/
#include "soundandvibration/include/VibrationModeView.h"
#include "soundandvibration/include/SoundAndVibrationPresenter.h"
#include "wearable_log.h"
#include "ConfigModel.h"
-
+#include "language/font/ui_resource_string.h"
+#include <UiConfig.h>
namespace OHOS
{
+ static constexpr uint8_t ROTATEFACTOR = 2;
+
static VibrationModeView *g_pVibrationModeView{nullptr};
VibrationModeView::VibrationModeView()
if (VibrationModePicker != nullptr)
{
+ VibrationModePicker->ClearFocus();
delete VibrationModePicker;
VibrationModePicker = nullptr;
}
{
if (scrollView == nullptr)
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VibrationModeView::VibrationModeViewInit");
scrollView = new UIScrollView();
if (scrollView == nullptr)
{
}
scrollView->SetPosition(0, 0, 466, 466);
scrollView->SetStyle(STYLE_BACKGROUND_OPA, 0);
+ scrollView->SetViewId(VIBRATION_MODE_VIEWID);
UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(SoundAndVibrationPresenter::GetInstance());
if (dragListener == nullptr)
{
Title->SetPosition(93, 52, 280, 40);
Title->SetStyle(STYLE_TEXT_FONT, 30);
Title->SetStyle(STYLE_LINE_HEIGHT, 35);
- Title->SetText("震动模式");
+ Title->SetTextId(STR_VIBRATION_MODE); // 震动模式
Title->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
Title->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
- Title->SetRollSpeed(40);
Title->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
scrollView->Add(Title);
/* -------------------------------------------------------------------------- */
UIView::OnRotateListener *RotateListener = static_cast<UIView::OnRotateListener *>(SoundAndVibrationPresenter::GetInstance());
VibrationModePicker->SetOnRotateListener(RotateListener);
// 增加表冠控制
- VibrationModePicker->SetRotateFactor(2);
+ VibrationModePicker->SetRotateFactor(ROTATEFACTOR);
VibrationModePicker->RequestFocus();
/* -------------------------------------------------------------------------- */
const char *translations[][4] = {
return nullptr;
}
VibrationModeLabelButton->SetPosition(0, 366, 466, 100);
- VibrationModeLabelButton->SetViewId("labelButton1");
- const char *ImgSrc = "/user/res/466x100button.bin";
- VibrationModeLabelButton->SetImageSrc(ImgSrc, ImgSrc);
- VibrationModeLabelButton->SetText("确定");
+ VibrationModeLabelButton->SetImageSrc(PNG_BUTTON_466x100_IMAGE, PNG_BUTTON_466x100_IMAGE);
+ VibrationModeLabelButton->SetTextId(STR_OK); // 确定
VibrationModeLabelButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
VibrationModeLabelButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xffffffff, UIButton::PRESSED);
VibrationModeLabelButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
UIScrollView *VibrationModeView::GetVibrationModeScrollView(void)
{
- if (scrollView != nullptr)
- {
- return scrollView;
- }
- return nullptr;
+ return scrollView;
}
UILabelButtonExt *VibrationModeView::GetVibrationModeLabelButton(void)
{
- if (VibrationModeLabelButton != nullptr)
- {
- return VibrationModeLabelButton;
- }
- return nullptr;
+ return VibrationModeLabelButton;
}
UIPicker *VibrationModeView::GetVibrationModePicker(void)
{
- if (VibrationModePicker != nullptr)
+ return VibrationModePicker;
+ }
+
+ // 更新震动模式选择器的选定项的索引
+ bool VibrationModeView::UpdatePickerSelectIndex(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "VibrationModeView::UpdatePickerSelectIndex");
+ if (VibrationModePicker == nullptr)
{
- return VibrationModePicker;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VibrationModeView::VibrationModePicker is nullptr!");
+ return false;
}
- return nullptr;
+ VibrationModePicker->SetSelected(ConfigModel::GetInstance()->GetVibrationReminder());
+ VibrationModePicker->Invalidate();
+
+ return true;
}
}
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-19 10:36:53
+ * @LastEditTime: 2024-06-19 17:49:51
* @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/uiservice/include/ui_service.h
*/
/*
UI_UPDATE_SCREEN_DURATION, //更新亮屏时长
UI_UPDATE_RAISETOBRIGHTNESS,//更新抬腕亮屏
UI_UPDATE_BRIGHTNESS_VALUE, //更新亮度值
+ UI_UPDATE_SYSTEM_VOLUME, //更新系统音量
+ UI_UPDATE_CALL_VOLUME, //更新通话音量
+ UI_UPDATE_VIBRATION_MODE, //更新震动模式
+ UI_UPDATE_SILENT_MODE, //更新静音模式
UI_UPDATE_WEATHER_DATA, //天气数据更新
MAX_NUM_HANDLER,
#include <functional>
#include <iostream>
#include "displaybrightness/include/DisplayBrightnessModel.h"
+#include "soundandvibration/include/SoundAndVibrationModel.h"
#include "weather/include/WeatherModel.h"
#include "uiservice/include/ui_service.h"
#include "wearable_log.h"
static void HandleUpdateRaiseToBrightness(Request *request);
static void HandleUpdateBrightnessValue(Request *request);
static void HandleUpdateWeatherData(Request *request);
+static void HandleUpdateSystemVolume(Request *request);
+static void HandleUpdateCallVolume(Request *request);
+static void HandleUpdateVibrationMode(Request *request);
+static void HandleUpdateSilentMode(Request *request);
// 消息处理程序项数组(每个消息类型对应一个处理函数,函数名以 Handle 开头)
MsgHandlerEntry msgHandlers[] = {
{UI_UPDATE_RAISETOBRIGHTNESS, HandleUpdateRaiseToBrightness},
{UI_UPDATE_BRIGHTNESS_VALUE, HandleUpdateBrightnessValue},
{UI_UPDATE_WEATHER_DATA, HandleUpdateWeatherData},
+ {UI_UPDATE_SYSTEM_VOLUME, HandleUpdateSystemVolume},
+ {UI_UPDATE_CALL_VOLUME, HandleUpdateCallVolume},
+ {UI_UPDATE_VIBRATION_MODE, HandleUpdateVibrationMode},
+ {UI_UPDATE_SILENT_MODE, HandleUpdateSilentMode},
};
/* -------------------------------------------------------------------------- */
static void ScreenTurnOn(Request *request)
GraphicService::GetInstance()->PostGraphicEvent(
std::bind(&OHOS::WeatherModel::UpdateMainWeatherData, &OHOS::WeatherModel::GetInstance()));
}
+
+//处理更新系统音量
+void HandleUpdateSystemVolume(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSystemVolume");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::SoundAndVibrationModel::UpdateSystemVolume, OHOS::SoundAndVibrationModel::GetInstance()));
+}
+
+//处理更新通话音量
+void HandleUpdateCallVolume(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateCallVolume");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::SoundAndVibrationModel::UpdateCallVolume, OHOS::SoundAndVibrationModel::GetInstance()));
+}
+
+//处理更新震动模式
+void HandleUpdateVibrationMode(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateVibrationMode");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::SoundAndVibrationModel::UpdateVibrationModePickerSelectIndex, OHOS::SoundAndVibrationModel::GetInstance()));
+}
+
+//处理更新静音模式
+void HandleUpdateSilentMode(Request *request)
+{
+ WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "HandleUpdateSilentMode");
+ GraphicService::GetInstance()->PostGraphicEvent(
+ std::bind(&OHOS::SoundAndVibrationModel::UpdateSilentModeSwitch, OHOS::SoundAndVibrationModel::GetInstance()));
+}
/* -------------------------------------------------------------------------- */
#ifdef __cplusplus
}
return p_ConfigModel->get_configData_int(OHOS::ConfigModel::CONFIGMODEL_ITEM_SPORTS_GOAL_STANDUP_TIMES);
}
-void set_vibrationremiander(uint8_t falg)
+void set_vibrationremiander(uint8_t falg)//设置震动模式
{
OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
p_ConfigModel->SetVibrationReminder(falg);
+ SendMsgToUIService(UI_UPDATE_VIBRATION_MODE,0,nullptr,0);
return ;
}
-void set_SilentMode(uint8_t falg)
+void set_SilentMode(uint8_t falg)//设置静音模式
{
OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
p_ConfigModel->SetSilentMode(falg);
+ SendMsgToUIService(UI_UPDATE_SILENT_MODE,0,nullptr,0);
return;
}
/*设置自动获取实时数据开关*/
{
OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
p_ConfigModel->SetSystemVolume(value);
+ SendMsgToUIService(UI_UPDATE_SYSTEM_VOLUME,0,nullptr,0);
return;
}
return p_ConfigModel->GetSystemVolume();
}
-void Set_CallVolume(int value) //设置é\93\83声å\92\8cåª\92ä½\93音量
+void Set_CallVolume(int value) //设置é\80\9aè¯\9d音量
{
OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
p_ConfigModel->SetCallVolume(value);
+ SendMsgToUIService(UI_UPDATE_CALL_VOLUME,0,nullptr,0);
return;
}
-int Get_CallVolume(void) //è\8e·å\8f\96é\93\83声å\92\8cåª\92ä½\93音量
+int Get_CallVolume(void) //è\8e·å\8f\96é\80\9aè¯\9d音量
{
OHOS::ConfigModel *p_ConfigModel = OHOS::ConfigModel::GetInstance();
STR_SUN = 469,\r
STR_RECORDING_LIST = 470,\r
STR_CRLEMPTY = 471,\r
- STR_MAX_ID = 472,\r
+ STR_CALL_VOLUME = 472,\r
+ STR_MAX_ID = 473,\r
}; // UIResourceTextId\r
enum FontLanguageId : uint8_t {