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

178 lines
5.5 KiB
C++

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2024. All rights reserved.
*
* Description:
*
* Author: huangshuyi
*
* Create: 2024-7
*--------------------------------------------------------------------------*/
#include "TjdUiMessageConfirmDelPage.h"
#include "components/ui_label.h"
#include "wearable_log.h"
#include "common/image_cache_manager.h"
#include <time.h>
#include <unordered_map>
#include "gfx_utils/image_info.h"
#include "gfx_utils/heap_base.h"
#include "TjdUiImageIds.h"
#include "ui_label.h"
#include "TjdUiMultiLanguageExt.h"
#include "sys_config.h"
#include "components/ui_view.h"
#include "TjdUiMessageTotalPage.h"
#include "TjdUiMessageNoMessagePage.h"
#include "TjdUiMemManage.h"
using namespace OHOS;
namespace TJD {
#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
#define IMAGE_BIN_PATH TJD_IMAGE_PATH"img_confirm_cancel.bin"
static TjdUiMessageConfirmDelPage *g_pMessageConfirmDelPage = nullptr;
TjdUiMessageConfirmDelPage::TjdUiMessageConfirmDelPage()
{
//SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
g_pMessageConfirmDelPage = this;
}
TjdUiMessageConfirmDelPage::~TjdUiMessageConfirmDelPage()
{
static_print_debug("delete TjdUiMessageConfirmDelPage......");
if (clickListener) {
delete clickListener;
clickListener = nullptr;
}
container_->Remove(pageGroup);
TjdUiMemManage::DeleteChildren(pageGroup);
g_pMessageConfirmDelPage = nullptr;
}
TjdUiMessageConfirmDelPage *TjdUiMessageConfirmDelPage::GetInstance(void)
{
return g_pMessageConfirmDelPage;
}
class TjdUiMessageClickListener : public UIView:: OnClickListener
{
public:
TjdUiMessageClickListener(const TjdUiMessageClickListener &) = delete;
TjdUiMessageClickListener &operator=(const TjdUiMessageClickListener &) = delete;
TjdUiMessageClickListener() {}
~TjdUiMessageClickListener() override
{
}
bool OnClick(UIView& view, const ClickEvent& event) override
{
if (strcmp(view.GetViewId(), "confirmImage") == 0) {
TjdUiMessageConfirmDelPage::GetInstance()->hide();
TjdUiMessageConfirmDelPage::GetInstance()->GetParentPage()->DeleteMessage(0);
} else if (strcmp(view.GetViewId(), "cancelImage") == 0) {
TjdUiMessageConfirmDelPage::GetInstance()->GetParentPage()->show();
TjdUiMessageConfirmDelPage::GetInstance()->hide();
}
return true;
}
};
void TjdUiMessageConfirmDelPage::show(void)
{
static_print_debug("TjdUiMessageConfirmDelPage::show");
if (pageGroup) {
pageGroup->SetVisible(true);
}
}
void TjdUiMessageConfirmDelPage::hide(void)
{
static_print_debug("TjdUiMessageConfirmDelPage::hide");
if (pageGroup) {
pageGroup->SetVisible(false);
}
}
void TjdUiMessageConfirmDelPage::SetParentPage(TjdUiMessagePageCommon* parent)
{
parentPage = parent;
}
TjdUiMessagePageCommon* TjdUiMessageConfirmDelPage::GetParentPage(void)
{
return parentPage;
}
void TjdUiMessageConfirmDelPage::PageInit(UIViewGroup *cont)
{
static_print_debug("TjdUiMessageConfirmDelPage::PageInit");
if (pageGroup) {
//return pageGroup;
return;
}
container_ = cont;
pageGroup = new TjdUiMessageScroll();
//pageGroup = new UIViewGroup();
pageGroup->SetPosition(0, 0);
pageGroup->SetWidth(Screen::GetInstance().GetWidth());
pageGroup->SetHeight(Screen::GetInstance().GetHeight());
clickListener = new TjdUiMessageClickListener();
ImageInfo* imgInfo;
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_CONFIRM_CANCEL_CONFIRM, IMAGE_BIN_PATH);
UIImageView *confirmImage = new UIImageView();
pageGroup->Add(confirmImage);
confirmImage->SetOnClickListener(clickListener);
confirmImage->SetViewId("confirmImage");
confirmImage->SetTouchable(true);
confirmImage->SetSrc(imgInfo);
confirmImage->SetPosition(271, 326);
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_CONFIRM_CANCEL_CANCEL, IMAGE_BIN_PATH);
UIImageView *cancelImage = new UIImageView();
pageGroup->Add(cancelImage);
cancelImage->SetOnClickListener(clickListener);
cancelImage->SetViewId("cancelImage");
cancelImage->SetTouchable(true);
cancelImage->SetSrc(imgInfo);
cancelImage->SetPosition(103, 326);
cont->Add(pageGroup);
UILabel *labelTips = new UILabel();
pageGroup->Add(labelTips);
labelTips->SetText("确认删除");//需要换成多语言
labelTips->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_38);
labelTips->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
labelTips->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
labelTips->LayoutCenterOfParent(0, 0);
uint16_t slice = NativeAbility::GetInstance().GetCurSliceId();
if (TJD_APP_VIEW_MAIN == slice) {
pageGroup->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
//pageGroup->SetDraggable(false);
//pageGroup->SetTouchable(false);
}
//return pageGroup;
}
}