/*---------------------------------------------------------------------------- * Copyright (c) TJD Technologies Co., Ltd. 2025. All rights reserved. * * Description: TjdUiAppPhoneAdapter.cpp * * Author: luziquan@ss-tjd.com * * Create: 2025-04-01 *--------------------------------------------------------------------------*/ #include "TjdUiAppPhoneAdapter.h" #include "TjdUiAppPhonePresenter.h" #include "TjdUiMultiLanguageExt.h" #include "common/image_cache_manager.h" namespace TJD { static constexpr int16_t ITEM_ALIGN_X = 242; static constexpr int16_t ITEM_WIDTH = 245; static constexpr int16_t ITEM_HEIGHT = 56; PhoneMainItemView::PhoneMainItemView(const PhoneListItemInfo &itemInfo) { auto &images = OHOS::ImageCacheManager::GetInstance(); Resize(450, 128); SetTouchable(true); SetViewIndex(itemInfo.index); SetStyle(OHOS::STYLE_BACKGROUND_OPA, 0xff); SetStyle(OHOS::STYLE_BORDER_RADIUS, 64); SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0xff202020); icon_.SetPosition(20, 18, 92, 92); if (itemInfo.imageInfo != nullptr) { icon_.SetSrc(itemInfo.imageInfo); } name_.SetFont(TJD_VECTOR_FONT_FILENAME, 42); name_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE); name_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER); name_.SetPosition(ITEM_ALIGN_X - (ITEM_WIDTH >> 1), (GetHeight() >> 1) - (ITEM_HEIGHT >> 1), ITEM_WIDTH, ITEM_HEIGHT); Add(&icon_); Add(&name_); } void PhoneMainItemView::RefreshItem(const PhoneListItemInfo &itemInfo, int16_t index) { itemInfo_ = itemInfo; icon_.SetSrc(itemInfo.imageInfo); name_.SetText(itemInfo.name.c_str()); } bool PhoneMainItemView::OnClickEvent(const OHOS::ClickEvent &event) { if (itemInfo_.index == PHONE_CONTACT) { TjdUiAppPhonePresenter::GetInstance()->ClickContactEvent(); } else if (itemInfo_.index == PHONE_CALL_LOG) { TjdUiAppPhonePresenter::GetInstance()->ClickCallLogEvent(); } else if (itemInfo_.index == PHONE_DIAL) { TjdUiAppPhonePresenter::GetInstance()->ClickDialEvent(); } return true; } PhoneCallLogItemView::PhoneCallLogItemView(const PhoneListItemInfo &itemInfo) { Resize(450, 128); SetTouchable(true); SetViewIndex(itemInfo.index); SetStyle(OHOS::STYLE_BACKGROUND_OPA, 0xff); SetStyle(OHOS::STYLE_BORDER_RADIUS, 64); SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0xff202020); icon_.SetPosition(20, 18, 92, 92); if (itemInfo.imageInfo != nullptr) { icon_.SetSrc(itemInfo.imageInfo); } name_.SetFont(TJD_VECTOR_FONT_FILENAME, 42); name_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE); name_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER); name_.SetPosition(ITEM_ALIGN_X - (ITEM_WIDTH >> 1), 18, ITEM_WIDTH, ITEM_HEIGHT); number_.SetFont(TJD_VECTOR_FONT_FILENAME, 30); number_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE); number_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER); number_.SetStyle(OHOS::STYLE_TEXT_OPA, OHOS::OPA_OPAQUE * 0.2); number_.SetPosition(ITEM_ALIGN_X - (ITEM_WIDTH >> 1), 68, ITEM_WIDTH, ITEM_HEIGHT); Add(&icon_); Add(&name_); Add(&number_); } void PhoneCallLogItemView::RefreshItem(const PhoneListItemInfo &itemInfo, int16_t index) { itemInfo_ = itemInfo; icon_.SetSrc(itemInfo.imageInfo); if (itemInfo.name.empty()) { name_.SetY((GetHeight() >> 1) - (ITEM_HEIGHT >> 1)); name_.SetText(itemInfo.number.c_str()); number_.SetVisible(false); } else { name_.SetY(18); name_.SetText(itemInfo.name.c_str()); number_.SetText(itemInfo.number.c_str()); number_.SetVisible(true); } } bool PhoneCallLogItemView::OnClickEvent(const OHOS::ClickEvent &event) { return true; } PhoneContactItemView::PhoneContactItemView(const PhoneListItemInfo &itemInfo) { Resize(450, 128); SetTouchable(true); SetViewIndex(itemInfo.index); SetStyle(OHOS::STYLE_BACKGROUND_OPA, 0xff); SetStyle(OHOS::STYLE_BORDER_RADIUS, 64); SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0xff202020); icon_.SetPosition(20, 18, 92, 92); if (itemInfo.imageInfo != nullptr) { icon_.SetSrc(itemInfo.imageInfo); } name_.SetFont(TJD_VECTOR_FONT_FILENAME, 42); name_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE); name_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER); name_.SetPosition(ITEM_ALIGN_X - (ITEM_WIDTH >> 1), 18, ITEM_WIDTH, ITEM_HEIGHT); number_.SetFont(TJD_VECTOR_FONT_FILENAME, 30); number_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE); number_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER); number_.SetStyle(OHOS::STYLE_TEXT_OPA, OHOS::OPA_OPAQUE * 0.2); number_.SetPosition(ITEM_ALIGN_X - (ITEM_WIDTH >> 1), 68, ITEM_WIDTH, ITEM_HEIGHT); Add(&icon_); Add(&name_); Add(&number_); } void PhoneContactItemView::RefreshItem(const PhoneListItemInfo &itemInfo, int16_t index) { itemInfo_ = itemInfo; icon_.SetSrc(itemInfo.imageInfo); name_.SetText(itemInfo.name.c_str()); number_.SetText(itemInfo.number.c_str()); } bool PhoneContactItemView::OnClickEvent(const OHOS::ClickEvent &event) { TjdUiAppPhonePresenter *persenter = TjdUiAppPhonePresenter::GetInstance(); if (persenter == nullptr) { return false; } persenter->ClickDialCallEvent(itemInfo_.index); return true; } } // namespace TJD