#include <chrono>
#include <thread>
#include <sys/time.h>
+#include "UiConfig.h"
+#include "NativeAbility.h"
+#include "gfx_utils/graphic_math.h"
+#include "custom_runtime.h"
#ifdef SUPPORT_PPG_SERVICE
#include "ppg_service.h"
}
void CheckAbnormalPresenter::OnPause(void) {}
- void CheckAbnormalPresenter::OnResume(void) {}
+ void CheckAbnormalPresenter::OnResume(void)
+ {
+ RootView::GetInstance()->SetOnKeyActListener(this);
+ }
void CheckAbnormalPresenter::OnStop(void) {}
bool CheckAbnormalPresenter::OnClick(UIView &view, const ClickEvent &event)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodPresenter::OnClick");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CheckAbnormalPresenter::OnClick");
if (strcmp(view.GetViewId(), CLICK_BLOOD_STOP) == 0)
{
return true;
}
+ bool CheckAbnormalPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CheckAbnormalPresenter::OnKeyAct");
+ uint16_t keyID = event.GetKeyId();
+ uint16_t keyState = event.GetState();
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
+ {
+ NativeAbility::GetInstance().Back();
+ }
+ return true;
+ }
+
+ bool CheckAbnormalPresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CheckAbnormalPresenter::OnDrag");
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY()))))
+ {
+ X_DRAG_FLAG = true;
+ }
+ return true;
+ }
+
+ bool CheckAbnormalPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CheckAbnormalPresenter::OnDragEnd");
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG)
+ {
+ NativeAbility::GetInstance().Back();
+ X_DRAG_FLAG = false;
+ }
+ return true;
+ }
+
}
\ No newline at end of file
class CheckAbnormalView;
class CheckAbnormalPresenter : public Presenter<CheckAbnormalView>,
public UIView::OnClickListener,
-
+ public RootView::OnKeyActListener,
public UIView::OnDragListener
{
public:
void OnStop() override;
bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override;
+ bool OnDrag(UIView &view, const DragEvent &event) override;
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;
+
+ private:
+ bool X_DRAG_FLAG{false};
};
}
#include "vibrator_service.h"
#include "custom_runtime.h"
+#include "key/include/KeyInputListener.h"
namespace OHOS
{
{
custom_VibratorFunc_int(0);
}
+
+ // 增加按键监听
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::CheckAbnormalPresenter::GetInstance();
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);
}
}
#include <chrono>
#include <thread>
#include <sys/time.h>
+#include "UiConfig.h"
+#include "NativeAbility.h"
+#include "gfx_utils/graphic_math.h"
+#include "custom_runtime.h"
#ifdef SUPPORT_PPG_SERVICE
#include "ppg_service.h"
}
void CheckInvalidPresenter::OnPause(void) {}
- void CheckInvalidPresenter::OnResume(void) {}
+ void CheckInvalidPresenter::OnResume(void)
+ {
+ RootView::GetInstance()->SetOnKeyActListener(this);
+ }
void CheckInvalidPresenter::OnStop(void) {}
bool CheckInvalidPresenter::OnClick(UIView &view, const ClickEvent &event)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodPresenter::OnClick");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CheckInvalidPresenter::OnClick");
if (strcmp(view.GetViewId(), CLICK_HEALTH_KONW) == 0)
{
return true;
}
+ bool CheckInvalidPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CheckInvalidPresenter::OnKeyAct");
+ uint16_t keyID = event.GetKeyId();
+ uint16_t keyState = event.GetState();
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)
+ {
+ NativeAbility::GetInstance().Back();
+ }
+ return true;
+ }
+
+ bool CheckInvalidPresenter::OnDrag(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CheckInvalidPresenter::OnDrag");
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY()))))
+ {
+ X_DRAG_FLAG = true;
+ }
+ return true;
+ }
+
+ bool CheckInvalidPresenter::OnDragEnd(UIView &view, const DragEvent &event)
+ {
+ UNUSED(view);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CheckInvalidPresenter::OnDragEnd");
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG)
+ {
+ NativeAbility::GetInstance().Back();
+ X_DRAG_FLAG = false;
+ }
+ return true;
+ }
+
}
\ No newline at end of file
class CheckInvalidView;
class CheckInvalidPresenter : public Presenter<CheckInvalidView>,
public UIView::OnClickListener,
-
+ public RootView::OnKeyActListener,
public UIView::OnDragListener
{
public:
void OnStop() override;
bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override;
+ bool OnDrag(UIView &view, const DragEvent &event) override;
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;
+
+ private:
+ bool X_DRAG_FLAG{false};
};
}
kownButton->SetImageSrc(PNG_466x100BUTTON_IMAGE, PNG_466x100BUTTON_IMAGE);
kownButton->SetOnClickListener(presenter_);
- AddViewToRootContainer(kownButton);
+ group->Add(kownButton);
return true;
}
/***
noteLabel->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
noteLabel->SetRollSpeed(23);
- AddViewToRootContainer(titleLabel);
- AddViewToRootContainer(remindLabel);
- AddViewToRootContainer(noteLabel);
+ group->Add(titleLabel);
+ group->Add(remindLabel);
+ group->Add(noteLabel);
return true;
}
/***
noteimage->SetPosition(193, 120, 80, 80);
noteimage->SetSrc(BLOOD_PATH_NOTE);
- AddViewToRootContainer(noteimage);
+ group->Add(noteimage);
return true;
}
/***
bool CheckInvalidView::CheckInvalidViewInit()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bool CheckInvalidView::InitView()");
+ // 创建group容器
+ if (group == nullptr)
+ {
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CheckInvalidViewInit: group new fail!!");
+ return false;
+ }
+ group->SetPosition(0, 0, 466, 466);
+ group->SetStyle(STYLE_BACKGROUND_OPA, 0);
+ group->SetTouchable(true);
+ group->SetDraggable(true);
+ group->SetOnDragListener(presenter_);
+ }
if (!Initbackground())
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Initbackground error!");
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddButton error!");
};
+
+ // 将group添加到根容器
+ AddViewToRootContainer(group);
return true;
}
/***
*/
void CheckInvalidView::DeInit()
{
+ if (group != nullptr)
+ {
+ group->RemoveAll();
+ }
if (kownButton != nullptr)
{
delete kownButton;
delete noteimage;
noteimage = nullptr;
}
+ if (group != nullptr)
+ {
+ delete group;
+ group = nullptr;
+ }
}
void CheckInvalidView::OnStart()
// 增加按键监听
RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::CheckInvalidPresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);
}
}
void SetNoteLabel(UIResourceTextId viewId, int checkResult);
private:
+ UIViewGroup *group = nullptr;
// 提醒图标
UIImageView *noteimage = nullptr;
// 按键