/*---------------------------------------------------------------------------- * 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 #include #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; } }