mcu_hi3321_watch/tjd/ui/app/compass/TjdUiAppCompassPresenter.cpp
2025-05-26 20:15:20 +08:00

105 lines
3.2 KiB
C++

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2024. All rights reserved.
*
* Description: TjdUiAppCompassPresenter.cpp
*
* Author: wuchangxin@ss-tjd.com
*
* Create: 2025-02-25
*--------------------------------------------------------------------------*/
#include "TjdUiAppCompassPresenter.h"
#include "NativeAbility.h"
#include "TjdUiAppCompassView.h"
#include "TjdUiRegisterManager.h"
#include "dock/input_device.h"
#include "graphic_service.h"
#include "sys_config.h"
namespace TJD {
TJD_REGIST_NATIVE_MENU(TJD_APP_VIEW_COMPASS, TjdUiAppCompassView, TjdUiAppCompassPresenter, IMG_MENU_LIST_MENU_COMPASS,
STR_ID_17);
#define ENABLE_PRINT_INFO 1
#if ENABLE_PRINT_INFO
#define static_print_info(...) sys_ui_log_i(__VA_ARGS__) // 一般信息打印宏控制
#define static_print_warn(...) sys_ui_log_w(__VA_ARGS__) // 警告信息打印一般常开
#define static_print_error(...) sys_ui_log_e(__VA_ARGS__) // 错误信息打印一般常开
#define static_print_debug(...) sys_ui_log_d(__VA_ARGS__) // 调试信息打印一般常开
#else
#define static_print_info(...)
#define static_print_warn(...)
#define static_print_error(...)
#define static_print_debug(...)
#endif
static TjdUiAppCompassPresenter *g_pv_AppCompassPresenter = nullptr;
TjdUiAppCompassPresenter::TjdUiAppCompassPresenter() { g_pv_AppCompassPresenter = this; }
TjdUiAppCompassPresenter::~TjdUiAppCompassPresenter() { g_pv_AppCompassPresenter = nullptr; }
TjdUiAppCompassPresenter &TjdUiAppCompassPresenter::GetInstance(void) { return *g_pv_AppCompassPresenter; }
void TjdUiAppCompassPresenter::OnStart() {}
void TjdUiAppCompassPresenter::OnStop() {}
void TjdUiAppCompassPresenter::OnPause()
{
Presenter::OnPause();
TjdUiCommonOnKeyListener::GetInstance()->ClearOnKeyActListener(KeyModelType::APP_KEY_TYPE);
}
void TjdUiAppCompassPresenter::OnResume()
{
Presenter::OnResume();
TjdUiCommonOnKeyListener::GetInstance()->SetOnKeyActListener(this, KeyModelType::APP_KEY_TYPE);
}
bool TjdUiAppCompassPresenter::OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event)
{
std::string viewId = view.GetViewId();
if (viewId.empty()) {
return false;
}
if (viewId == "compassList") {
auto compassView = TjdUiAppCompassView::GetInstance();
if (compassView == nullptr)
return false;
compassView->ShowView(VIEW_COMPASS_DATA);
}
return true;
}
void TjdUiAppCompassPresenter::ViewExitEvent(void)
{
printf("TjdUiAppCompassPresenter ViewExitEvent\r\n");
TjdUiAppCompassView *compassView = TjdUiAppCompassView::GetInstance();
switch (TjdUiAppCompassView::currentViewIndex_) {
case CompassView::VIEW_COMPASS_CALIBRATION:
case CompassView::VIEW_COMPASS_SHOW:
OHOS::NativeAbility::GetInstance().ChangePreSlice();
break;
case CompassView::VIEW_COMPASS_DATA:
compassView->ShowView(CompassView::VIEW_COMPASS_SHOW);
break;
}
return;
}
bool TjdUiAppCompassPresenter::OnKeyAct(OHOS::UIView &view, const OHOS::KeyEvent &event)
{
if (!TjdUiCommonOnKeyListener::GetInstance()->CheckIsExitEvent(event)) {
return true;
}
ViewExitEvent();
return true;
}
} // namespace TJD