{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnKeyAct");\r
uint16 keyID = event.GetKeyId();\r
- // 如果是power键就返回上一级\r
- if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))\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
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
if (preSlice == VIEW_SETTING || VIEW_BLUETOOTH_EARPHONE)\r
ClassicBlueToothViewInit();\r
\r
// 增加按键监听\r
- //RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::ClassicBlueToothPresenter::GetInstance();\r
- //RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
- RootView::GetInstance()->SetIntercept(true);\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::ClassicBlueToothPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void ClassicBlueToothView::OnSetUpView()\r
class DisplayBrightnessPresenter : public Presenter<DisplayBrightnessView>,\r
public UIView::OnClickListener,\r
public UIView::OnDragListener,\r
+ public RootView::OnKeyActListener,\r
public UICheckBox::OnChangeListener\r
{\r
public:\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
};\r
} // namespace OHOS\r
\r
#include "cat1_ctl.h"\r
#include "displaybrightness/include/DisplayBrightnessModel.h"\r
#include "power_display_service.h"\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
namespace OHOS\r
{\r
// 当前Presenter属性实例化的内存指针\r
if (value >= BRIGHTNESS_MIN && value <= BRIGHTNESS_MAX)\r
{\r
p_BrightnessControlView->SetScreenBrightnessValue(value);\r
- DisplayBrightnessModel::GetInstance()->KeepScreenBrightnessValues(0xff);// 将Model层保存的状态清除\r
+ DisplayBrightnessModel::GetInstance()->KeepScreenBrightnessValues(0xff); // 将Model层保存的状态清除\r
}\r
}\r
\r
{\r
p_ScreenDurationView->SetRadioButtonSelectStatus(ScreenDurationRadioButton3);\r
}\r
- DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(ScreenDurationRadioButton1);// 将Model层保存的状态清除\r
+ DisplayBrightnessModel::GetInstance()->KeepScreenDurationRadioButtonSlectStatus(ScreenDurationRadioButton1); // 将Model层保存的状态清除\r
}\r
\r
void DisplayBrightnessPresenter::OnStart()\r
return true;\r
}\r
\r
+ bool DisplayBrightnessPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessPresenter::OnKeyAct");\r
+ unsigned short keyID = event.GetKeyId();\r
+ unsigned short 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
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
+ NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ }\r
+ return true;\r
+ }\r
+\r
bool ScreenDurationRadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
{\r
DisplayBrightnessView *p_DisplayBrightnessView = DisplayBrightnessView::GetInstance();\r
UNUSED(view);\r
return true;\r
}\r
+\r
}
\ No newline at end of file
{\r
DisplayAndBrightnessViewInit();\r
}\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::DisplayBrightnessPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void DisplayBrightnessView::OnSetUpView()\r
{\r
\r
View<DisplayBrightnessPresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-20 16:37:13
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-20 19:33:40
+ * @LastEditTime: 2024-03-21 16:20:28
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/include/ShutDownAnimatorView.h
*/
static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_H = 100;
static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_VIEW_NUM_FRAMES = 70; // 图片帧数
static constexpr int16_t SHUTDOWN_IMAGE_ANIMATOR_TIME = 100; // 图片更新间隔
- static constexpr char *ShutDownPaths = "/user/res/RebootAndShutDown/ShutDown/";
+ static constexpr char *ShutDownPaths = "/user/res/RebootAndShutDown/ShutDown/"; //关机图片路径
class ShutDownAnimatorView
{
public:
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-02-21 19:06:02
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-21 11:15:29
+ * @LastEditTime: 2024-03-21 14:23:19
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/rebootdevice/src/RebootPresenter.cpp
*/
#include "rebootdevice/include/RebootPresenter.h"
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");
uint16 keyID = event.GetKeyId();
uint16 keyState = event.GetState();
- // 如果是power键就返回上一级
- if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0)
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
{
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
NativeAbility::GetInstance().ChangeSlice(preSlice);
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-02-27 18:06:27\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-03-21 14:32:11\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/secondaryfunction/include/SecondaryFunctionPresenter.h\r
+ */\r
#ifndef SECONDARY_FUNCTION_PRESENTER_H\r
#define SECONDARY_FUNCTION_PRESENTER_H\r
\r
#include "Presenter.h"\r
#include "SecondaryFunctionView.h"\r
+#include "KeyInputListener.h"\r
+\r
namespace OHOS\r
{\r
\r
class SecondaryFunctionView;\r
class SecondaryFunctionPresenter : public Presenter<SecondaryFunctionView>,\r
public UIView::OnClickListener,\r
+ public RootView::OnKeyActListener,\r
public UIView::OnDragListener\r
{\r
public:\r
\r
static SecondaryFunctionPresenter *GetInstance();\r
void SetHeartRateOrBloodOxygenQuickAccessRadioButtonSelectState(int state);\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) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
};\r
} // namespace OHOS\r
#endif
\ No newline at end of file
#include "NativeAbility.h"\r
#include "secondaryfunction/include/SecondaryFunctionPresenter.h"\r
#include "secondaryfunction/include/SecondaryFunctionModel.h"\r
+#include "components/ui_image_animator.h"\r
+#include "common/key_code.h"\r
+#include "custom_utils.h"\r
namespace OHOS\r
{\r
\r
return false;\r
}\r
\r
+ bool SecondaryFunctionPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::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().ChangeSlice(VIEW_SETTING);\r
+ }\r
+ return true;\r
+ }\r
+\r
bool SecondaryFunctionPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
UNUSED(event);\r
{\r
View<SecondaryFunctionPresenter>::OnStart();\r
SecondaryFunctionViewInit();\r
+\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SecondaryFunctionPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void SecondaryFunctionView::OnSetUpView()\r
{\r
\r
View<SecondaryFunctionPresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnKeyAct");
uint16 keyID = event.GetKeyId();
+ uint16 keyState = event.GetState();
// 如果是power键就返回上一级
- if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER))
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0)
{
uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
if (preSlice == VIEW_APPLIST)
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-02-19 10:39:08\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-03-21 11:49:25\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationPresenter.h\r
+ */\r
#ifndef SOUND_AND_VIBRATION_PRESENTER_H\r
#define SOUND_AND_VIBRATION_PRESENTER_H\r
\r
#include "Presenter.h"\r
#include "SoundAndVibrationView.h"\r
+#include "KeyInputListener.h"\r
\r
namespace OHOS\r
{\r
class SoundAndVibrationView;\r
class SoundAndVibrationPresenter : public Presenter<SoundAndVibrationView>,\r
public UIView::OnClickListener,\r
+ public RootView::OnKeyActListener,\r
public UIView::OnDragListener\r
{\r
public:\r
static SoundAndVibrationPresenter *GetInstance();\r
void VibrationReminderToggleButtonStateSetting(bool value);\r
void SilentModeToggleButtonStateSetting(bool value);\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) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
+\r
private:\r
UIView *view_{nullptr};\r
};\r
#include "Presenter.h"\r
#include "SystemVolumeView.h"\r
#include "wearable_log.h"\r
-\r
+#include "KeyInputListener.h"\r
namespace OHOS\r
{\r
typedef enum : uint8_t\r
{\r
VOLUMEREDUCE = 0, // 声音降低\r
VOLUMEADD = 1, // 声音增加\r
- OTHER = 2, // 其他\r
+ OTHER = 2, // 其他\r
} VolumeStatusChange;\r
\r
/*\r
class SystemVolumeView;\r
class SystemVolumePresenter : public Presenter<SystemVolumeView>,\r
public UIView::OnClickListener,\r
+ public RootView::OnKeyActListener,\r
public UIView::OnDragListener\r
{\r
public:\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
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-02-19 10:39:11\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-03-21 14:23:38\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp\r
+ */\r
+\r
#include "AppViewIDs.h"\r
#include "NativeAbility.h"\r
#include "graphic_math.h"\r
#include "string.h"\r
#include "soundandvibration/include/SoundAndVibrationPresenter.h"\r
#include "soundandvibration/include/SoundAndVibrationModel.h"\r
+#include "common/key_code.h"\r
+#include "custom_utils.h"\r
+\r
namespace OHOS\r
{\r
\r
\r
bool SoundAndVibrationPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
{\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::OnDragEnd");\r
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
{\r
NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
return true;\r
}\r
\r
+ bool SoundAndVibrationPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationPresenter::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().ChangeSlice(VIEW_SETTING);\r
+ }\r
+ return true;\r
+ }\r
+\r
bool SoundAndVibrationPresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
\r
{\r
View<SoundAndVibrationPresenter>::OnStart();\r
InitView();\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SoundAndVibrationPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void SoundAndVibrationView::OnSetUpView()\r
{\r
\r
View<SoundAndVibrationPresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r
#include "graphic_math.h"\r
#include "string.h"\r
#include "soundandvibration/include/SystemVolumePresenter.h"\r
-\r
#include <audio_manager.h>\r
+#include "common/key_code.h"\r
+#include "custom_utils.h"\r
+\r
// 系统音量\r
namespace OHOS\r
{\r
return true;\r
}\r
\r
+ bool SystemVolumePresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemVolumePresenter::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
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
+ NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ }\r
+ return true;\r
+ }\r
+\r
bool SystemVolumePresenter::OnClick(UIView &view, const ClickEvent &event)\r
{\r
UNUSED(view);\r
{\r
View<SystemVolumePresenter>::OnStart();\r
SystemVolumeViewInit();\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SystemVolumePresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void SystemVolumeView::OnSetUpView()\r
void SystemVolumeView::OnStop()\r
{\r
View<SystemVolumePresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r
#include "SystemView.h"\r
#include "system/include/SystemModel.h"\r
#include "components/ui_radio_button.h"\r
+#include "KeyInputListener.h"\r
+\r
namespace OHOS\r
{\r
typedef enum\r
class SystemView;\r
class SystemPresenter : public Presenter<SystemView>,\r
public UIView::OnClickListener,\r
+ public RootView::OnKeyActListener,\r
public UIView::OnDragListener\r
{\r
public:\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) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
\r
private:\r
SystemModel *systemModel;\r
+ bool isSystemUpgradeState{false};//是否处于升级状态\r
};\r
} // namespace OHOS\r
\r
#include "font/ui_font.h"\r
#include "language/LanguageInit.h"\r
#include "../../../../../../drivers/peripheral/utils/custom_utils.h"\r
+#include "common/key_code.h"\r
+#include "custom_utils.h"\r
\r
namespace OHOS\r
{\r
#endif\r
return true;\r
}\r
+\r
+ bool SystemPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ if(!isSystemUpgradeState){ //如果处于系统升级状态power键返回功能无效\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemPresenter::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
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
+ NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+ }\r
+ }\r
+ return true;\r
+ }\r
}
\ No newline at end of file
View<SystemPresenter>::OnStart();\r
//InitIView();\r
initView_ext(43,120,380,100,120,"/user/res/SETTING_NEXT.bin");\r
+ \r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::SystemPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void SystemView::OnSetUpView()\r
{\r
\r
View<SystemPresenter>::OnStop();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
RootView::GetInstance()->RemoveAll();\r
return;\r
}\r
display_api->set_screen_auto_off_timeout(time);
}
+/*
+ * @brief 获取屏幕状态
+*/
+int32_t uapi_get_screen_state(void)
+{
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ return display_api->get_screen_state();
+}
+
#include "bts_le_gap.h"
void uapi_setScreenDuration(int32_t time);
+int32_t uapi_get_screen_state(void);
+
errcode_t uapi_get_btaddr(uint8_t *buf_btaddr, uint32_t *len_btaddr);
errcode_t uapi_get_btname(uint8_t *buf_btname, uint32_t *len_btname);