mcu_hi3321_watch/tjd/ui/app/message/TjdUiMessageNoMessagePage.cpp
2025-05-31 10:45:15 +08:00

145 lines
4.7 KiB
C++

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2024. All rights reserved.
*
* Description:
*
* Author: huangshuyi
*
* Create: 2024-7
*--------------------------------------------------------------------------*/
#include "TjdUiMessageNoMessagePage.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 "TjdUiMultiLanguageExt.h"
#include "sys_config.h"
#include "components/ui_view.h"
#include "ui_label.h"
#include "components/ui_label_ext.h"
#include "TjdUiMemManage.h"
#include "TjdUiUtils.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_main_message.bin"
static TjdUiMessageNoMessagePage *g_pMessageNoMessagePage = nullptr;
TjdUiMessageNoMessagePage::TjdUiMessageNoMessagePage()
{
//SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
g_pMessageNoMessagePage = this;
}
TjdUiMessageNoMessagePage::~TjdUiMessageNoMessagePage()
{
static_print_debug("delete TjdUiMessageNoMessagePage......");
container_->Remove(pageGroup);
TjdUiMemManage::DeleteChildren(pageGroup);
g_pMessageNoMessagePage = nullptr;
}
TjdUiMessageNoMessagePage *TjdUiMessageNoMessagePage::GetInstance(void)
{
return g_pMessageNoMessagePage;
}
void TjdUiMessageNoMessagePage::show(void)
{
if (pageGroup) {
pageGroup->SetVisible(true);
}
}
void TjdUiMessageNoMessagePage::hide(void)
{
if (pageGroup) {
pageGroup->SetVisible(false);
}
}
UIViewGroup *& TjdUiMessageNoMessagePage::PageInit(UIViewGroup *cont)
{
static_print_debug("TjdUiMessageNoMessagePage::PageInit......");
if (pageGroup) {
static_print_debug("TjdUiMessageNoMessagePage::PageInit pageGroup is not null");
return pageGroup;
}
container_ = cont;
pageGroup = new UIViewGroup();
pageGroup->SetTouchable(true);
pageGroup->SetDraggable(true);
pageGroup->SetPosition(0, 0);
pageGroup->SetWidth(Screen::GetInstance().GetWidth());
pageGroup->SetHeight(Screen::GetInstance().GetHeight());
// UILabelExt *labelNotify = new UILabelExt();
// pageGroup->Add(labelNotify);
// labelNotify->SetText("通知");//需要换成多语言
// labelNotify->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_30);
// labelNotify->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
// labelNotify->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
// labelNotify->LayoutTopOfParent(20);
// int16_t pageW = pageGroup->GetWidth();
// int16_t labelNotifyW = labelNotify->GetWidth();
// labelNotify->LayoutLeftOfParent((pageW - labelNotifyW) / 2);
// labelNotify->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
ImageInfo* imgInfo = nullptr;
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_MAIN_MESSAGE_NO_MESSAGE, IMAGE_BIN_PATH);
UIImageView *noMessageImage = new UIImageView();
pageGroup->Add(noMessageImage);
noMessageImage->SetSrc(imgInfo);
noMessageImage->SetPosition(144, 140);
noMessageImage->SetViewId("noMessageImage");
UILabelExt *labelTips = new UILabelExt();
pageGroup->Add(labelTips);
// labelTips->SetText("暂无消息");//需要换成多语言
labelTips->SetTextId(STR_ID_286);
labelTips->SetFont(TJD_VECTOR_FONT_FILENAME, 42);
labelTips->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
labelTips->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
labelTips->SetWidth(imgInfo->header.width*2);
labelTips->SetY(305);
TjdUiUtils::AutoAlignHorizontalCenter(*labelTips, 466);
// if (exitTimer == nullptr) {
// //exitTimer = new OHOS::GraphicTimer(100, ExitEventOutTime, nullptr, false);
// }
uint16_t slice = NativeAbility::GetInstance().GetCurSliceId();
if (TJD_APP_VIEW_MAIN == slice) {
pageGroup->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
} else {
pageGroup->SetOnDragListener(this);
}
cont->Add(pageGroup);
return pageGroup;
}
}