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

812 lines
31 KiB
C++

/*----------------------------------------------------------------------------
* Copyright (c) TJD Technologies Co., Ltd. 2024. All rights reserved.
*
* Description: TjdUiAppPlayDialView.cpp
*
* Author: liuguanwu
*
* Create: 2024-10
*--------------------------------------------------------------------------*/
#include "sys_config.h"
#include "sql_all.h"
#include "TjdUiImageIds.h"
#include "TjdUiMemManage.h"
#include "dock/focus_manager.h"
#include "TjdUiMultiLanguageExt.h"
#include "common/image_cache_manager.h"
#include "graphic_service.h"
#include "power_display_service.h"
#include "TjdUiLauncher.h"
#include "NativeAbility.h"
#include "TjdUiAppPlayDialPresenter.h"
#include "TjdUiAppPlayDialView.h"
#include "TjdUiAppPlayDialDrawView.h"
#include "TjdUiAppPlayDialAiView.h"
#include "TjdUiAppPlayDialModel.h"
#include "TjdUiAppMainView.h"
#include "fstream"
using namespace std;
using namespace OHOS;
#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_debug(...) sys_ui_log_d(__VA_ARGS__) // 调试信息打印
#else
#define static_print_info(...)
#define static_print_warn(...)
#define static_print_debug(...)
#endif
#define static_print_error(...) sys_ui_log_e(__VA_ARGS__) // 错误信息打印一般常开
#define PLAY_DIAL_BIN_PATH TJD_IMAGE_PATH "img_play_dial.bin"
namespace TJD {
// clang-format off
static inline int16_t HorizontalCenter(int16_t width, int16_t parentWidth) { return (parentWidth - width) / 2; }
static inline int16_t VerticalCenter(int16_t height, int16_t parentHeight) { return (parentHeight - height) / 2; }
inline void InitLabelHorCenter(OHOS::UILabel &label, uint8_t size, int16_t y, int16_t target, const char *text)
{
label.SetFont(TJD_VECTOR_FONT_FILENAME, size);
label.SetText(text);
label.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_ADAPT);
label.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
static_print_debug("InitLabelHorCenter[%s] x=%d-%d-%d-%d",text, label.GetX(), label.GetWidth(), target, HorizontalCenter(label.GetWidth(), target));
label.SetPosition(label.GetX() + HorizontalCenter(label.GetWidth(), target), y);
}
inline void InitLabelVerCenter(OHOS::UILabel &label, uint8_t size, int16_t x, int16_t target, const char *text)
{
label.SetFont(TJD_VECTOR_FONT_FILENAME, size);
label.SetText(text);
label.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_ADAPT);
label.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
label.SetPosition(x, label.GetY() + VerticalCenter(label.GetHeight(), target));
}
inline void InitLabelCenter(OHOS::UILabel &label, uint8_t size, int16_t parentWidth, int16_t parentHeight, const char *text)
{
label.SetFont(TJD_VECTOR_FONT_FILENAME, size);
label.SetText(text);
label.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_ADAPT);
label.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
label.SetPosition(label.GetX() + HorizontalCenter(label.GetWidth(), parentWidth), label.GetY() + VerticalCenter(label.GetHeight(), parentHeight));
}
// clang-format on
PlayDialViewIndex TjdUiAppPlayDialView::currentViewIndex_ = PlayDialViewIndex::PLAYDIAL_UNKNOWN;
PlayDialViewIndex TjdUiAppPlayDialView::previousViewIndex_ = PlayDialViewIndex::PLAYDIAL_UNKNOWN;
TjdAiResultIndex TjdUiAppPlayDialView::Result_ = TjdAiResultIndex::AI_RESULT_INVALID;
TjdDialTipsIndex TjdUiAppPlayDialView::TipsIndex_ = PLAYDIAL_TIPS_INVALID;
DialSelectType TjdUiAppPlayDialView::selectType_ = DialSelectType::SELECT_TYPE_INVALID;
bool PlayDialUIScrollView::OnDragStartEvent(const OHOS::DragEvent &event)
{
if (TjdUiAppPlayDialView::GetInstance().currentViewIndex_ != PLAYDIAL_HOME) {
return true;
}
isOnStart_ = true;
return OHOS::UIScrollViewNested::OnDragStartEvent(event);
}
bool PlayDialUIScrollView::OnDragEvent(const OHOS::DragEvent &event)
{
if (!isOnStart_) {
return true;
}
if (TjdUiAppPlayDialView::GetInstance().currentViewIndex_ != PLAYDIAL_HOME) {
return true;
}
return OHOS::UIScrollViewNested::OnDragEvent(event);
}
bool PlayDialUIScrollView::OnDragEndEvent(const OHOS::DragEvent &event)
{
if (!isOnStart_) {
return true;
}
isOnStart_ = false;
if (TjdUiAppPlayDialView::GetInstance().currentViewIndex_ != PLAYDIAL_HOME) {
return true;
}
return OHOS::UIScrollViewNested::OnDragEndEvent(event);
}
// class TjdUiAppPlayDialView start
static TjdUiAppPlayDialView *g_pv_PlayDialView = nullptr;
TjdUiAppPlayDialView::TjdUiAppPlayDialView() { g_pv_PlayDialView = this; }
TjdUiAppPlayDialView::~TjdUiAppPlayDialView()
{
TjdUiAppPlayDialModel::GetInstance().LefunAiRequestExitLefunAi();
ImageCacheManager::GetInstance().UnloadAllInMultiRes(PLAY_DIAL_BIN_PATH);
g_pv_PlayDialView = nullptr;
}
TjdUiAppPlayDialView &TjdUiAppPlayDialView::GetInstance() { return *g_pv_PlayDialView; }
void TjdUiAppPlayDialView::OnStart()
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
View<TjdUiAppPlayDialPresenter>::OnStart();
OHOS::ImageCacheManager::GetInstance().LoadAllInMultiRes(PLAY_DIAL_BIN_PATH);
if (mainView_ == nullptr) {
mainView_ = new PlayDialUIScrollView();
}
AddViewToRootContainer(mainView_);
mainView_->SetPosition(0, 0, OHOS::HORIZONTAL_RESOLUTION, OHOS::VERTICAL_RESOLUTION);
mainView_->SetViewId("TjdUiAppPlayDialView");
// mainView_->SetOnDragListener(&TjdUiAppPlayDialPresenter::GetInstance());
currentViewIndex_ = PlayDialViewIndex::PLAYDIAL_UNKNOWN;
for (int i = 0; i < PlayDialViewIndex::PLAYDIAL_UNKNOWN; i++) {
if (viewManager_[i] != nullptr) {
viewManager_[i]->SetPosition(0, 0);
viewManager_[i]->SetVisible(false);
mainView_->Add(viewManager_[i]);
}
}
ShowView(PlayDialViewIndex::PLAYDIAL_HOME);
}
void TjdUiAppPlayDialView::OnStop()
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
#if 1
if (mainView_ != nullptr) {
mainView_->RemoveAll();
delete mainView_;
mainView_ = nullptr;
;
}
#endif
for (int i = 0; i < PlayDialViewIndex::PLAYDIAL_UNKNOWN; i++) {
if (viewManager_[i] != nullptr) {
delete viewManager_[i];
viewManager_[i] = nullptr;
}
}
}
void TjdUiAppPlayDialView::InitTargetView(PlayDialViewIndex index)
{
if (viewManager_[index] != nullptr) {
return;
}
// clang-format off
switch (index) {
case PLAYDIAL_HOME: viewManager_[index] = new PlayDialHomeView(); break;
case PLAYDIAL_AI_STYLE: viewManager_[index] = new PlayDialAIStyleView(); break;
case PLAYDIAL_AI_LISTEN: viewManager_[index] = new PlayDialAIListenView(); break;
case PLAYDIAL_AI_MAKING_TXT: viewManager_[index] = new PlayDialAIMakingView(); break;
case PLAYDIAL_AI_MAKING_IMG: viewManager_[index] = new PlayDialAIMakingIMGView(); break;
case PLAYDIAL_AI_PREVIEW: viewManager_[index] = new PlayDialAIPreviewView(); break;
case PLAYDIAL_DRAW_HINT: viewManager_[index] = new PlayDialDrawHintView(); break;
case PLAYDIAL_DRAW_MAIN: viewManager_[index] = new PlayDialDrawMainView(); break;
case PLAYDIAL_DRAW_MAKING_IMG: viewManager_[index] = new PlayDialDrawMakingIMGView(); break;
case PLAYDIAL_DRAW_PREVIEW: viewManager_[index] = new PlayDialDrawPreviewView(); break;
case PLAYDIAL_LOG_LIST: viewManager_[index] = new PlayDialHistoryView(); break;
case PLAYDIAL_LOG_SINGLE: viewManager_[index] = new PlayDialHistorySingleView(); break;
case PLAYDIAL_TIPSV_SUCCESS: viewManager_[index] = new PlayDialSetSuccessView(); break;
case PLAYDIAL_TIPS_NO_CONNECT: viewManager_[index] = new PlayDialNoConnectView(); break;
//case PLAYDIAL_TIPS_OTHER: viewManager_[index] = new PlayDialNoConnectView(); break;
default: break;
}
// clang-format on
if (viewManager_[index] == nullptr) {
return;
}
viewManager_[index]->SetPosition(0, 0);
viewManager_[index]->SetVisible(false);
mainView_->Add(viewManager_[index]);
}
void TjdUiAppPlayDialView::ShowView(PlayDialViewIndex showIndex)
{
static_print_info("[%s][%d]: %s : %d", __FILE__, __LINE__, __func__, showIndex);
if (showIndex < 0 || showIndex >= PlayDialViewIndex::PLAYDIAL_UNKNOWN) {
return;
}
InitTargetView(showIndex);
if (currentViewIndex_ >= 0 && currentViewIndex_ < PlayDialViewIndex::PLAYDIAL_UNKNOWN &&
viewManager_[currentViewIndex_] != nullptr) {
viewManager_[currentViewIndex_]->HideView();
}
previousViewIndex_ = currentViewIndex_;
if (viewManager_[showIndex] != nullptr) {
viewManager_[showIndex]->ShowView();
}
currentViewIndex_ = showIndex;
}
// class TjdUiAppPlayDialView end
// class PlayDialHomeView start
PlayDialHomeView::PlayDialHomeView()
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
Resize(OHOS::HORIZONTAL_RESOLUTION, OHOS::VERTICAL_RESOLUTION);
SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0x00000000);
if (OHOS::PageTransitionMgr::GetInstance().GetTopSlideBackImage() == nullptr) {
SetOnDragListener(&TjdUiAppPlayDialPresenter::GetInstance());
}
int16_t title_y = 155 + 130 / 2 - 28 / 2;
// InitLabelHorCenter(titleLeft_, 28, title_y, 172, "绘图表盘");
titleLeft_.SetFont(TJD_VECTOR_FONT_FILENAME, 28);
titleLeft_.SetTextId(STR_ID_385);
titleLeft_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
titleLeft_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
titleLeft_.SetPosition(67, title_y, 118, 40);
// InitLabelHorCenter(titleRight_, 28, title_y, 172, "AI表盘");
titleRight_.SetFont(TJD_VECTOR_FONT_FILENAME, 28);
titleRight_.SetTextId(STR_ID_386);
titleRight_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
titleRight_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
titleRight_.SetPosition(298, title_y, 118, 40);
// titleLeft_.SetX(40 + titleLeft_.GetX());
// titleRight_.SetX(254 + titleRight_.GetX());
titleRight_.SetTextColor(OHOS::Color::Black());
// titleRight_.SetStyle(STYLE_TEXT_COLOR, OHOS::Color::Black().full);
clickLeft_.SetPosition(40, 155, 172, 130);
auto clickLeft_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_PAINTING, PLAY_DIAL_BIN_PATH);
if (clickLeft_Res != nullptr) {
clickLeft_.SetSrc(clickLeft_Res);
clickLeft_.SetViewId(PLAYDIAL_HOME_VIEW_BTN_LEFT_ID);
clickLeft_.SetOnClickListener(&TjdUiAppPlayDialPresenter::GetInstance());
clickLeft_.SetTouchable(true);
}
clickRight_.SetPosition(254, 155, 172, 130);
auto clickRight_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_AI, PLAY_DIAL_BIN_PATH);
if (clickRight_Res != nullptr) {
clickRight_.SetSrc(clickRight_Res);
clickRight_.SetViewId(PLAYDIAL_HOME_VIEW_BTN_RIGHT_ID);
clickRight_.SetOnClickListener(&TjdUiAppPlayDialPresenter::GetInstance());
clickRight_.SetTouchable(true);
}
logoRecord_.SetPosition(194, 366, 80, 80);
auto logoRecord_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_HISTORY, PLAY_DIAL_BIN_PATH);
if (logoRecord_Res != nullptr) {
logoRecord_.SetSrc(logoRecord_Res);
logoRecord_.SetViewId(PLAYDIAL_HOME_VIEW_BTN_RECORD_ID);
logoRecord_.SetOnClickListener(&TjdUiAppPlayDialPresenter::GetInstance());
logoRecord_.SetTouchable(true);
}
Add(&clickLeft_);
Add(&clickRight_);
Add(&logoRecord_);
Add(&titleLeft_);
Add(&titleRight_);
}
PlayDialHomeView::~PlayDialHomeView()
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
RemoveAll();
}
void PlayDialHomeView::ShowView()
{
extern std::string g_PlayDialPath;
g_PlayDialPath.clear();
SetVisible(true);
TjdUiAppPlayDialView::GetInstance().Result_ = AI_RESULT_INVALID;
TjdUiAppPlayDialView::GetInstance().TipsIndex_ = PLAYDIAL_TIPS_INVALID;
TjdUiAppPlayDialModel::GetInstance().LefunAiRequestExitLefunAi();
}
void PlayDialHomeView::HideView() { SetVisible(false); }
// class PlayDialHistoryView start
PlayDialHistoryAdapter *g_PlayDialHistoryAdapter{nullptr};
PlayDialHistoryView *g_PlayDialHistoryView{nullptr};
PlayDialHistoryView::PlayDialHistoryView(void) { g_PlayDialHistoryView = this; }
PlayDialHistoryView::~PlayDialHistoryView(void)
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
PageUninit();
g_PlayDialHistoryView = nullptr;
}
PlayDialHistoryView *PlayDialHistoryView::GetInstance(void) { return g_PlayDialHistoryView; }
void PlayDialHistoryView::PageInit(void)
{
if (initFlag_ == true) {
return;
}
initFlag_ = true;
if (TjdUiAppPlayDialModel::GetInstance().UpdateHistoryFileList(10)) {
SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0x00000000);
SetOnDragListener(&TjdUiAppPlayDialPresenter::GetInstance());
styleList_ = new PlayDialHistoryAdapter::HistoryList();
g_PlayDialHistoryAdapter = new PlayDialHistoryAdapter();
styleList_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
// styleList_->SetStartIndex(lastIndex);//这个设置必须位于SetAdapter之前
styleList_->SetAdapter(g_PlayDialHistoryAdapter);
styleList_->SetThrowDrag(true);
styleList_->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT);
// styleList_->SetMaxScrollDistance(500); // 1000: max scroll distance
styleList_->SetSwipeACCLevel(15); // 800: compensation distance
styleList_->SetDragACCLevel(10); // 5: drag acceleration
styleList_->SetYScrollBarVisible(true);
styleList_->SetScrollBlankSize(styleList_->GetHeight() >> 1);
styleList_->SetReboundSize(styleList_->GetHeight() >> 1); // 100: rebound size
styleList_->SetSelectPosition(styleList_->GetHeight() >> 1);
styleList_->EnableAutoAlign(true);
styleList_->SetAutoAlignTime(200);
styleList_->EnableCrossDragBack(false);
styleList_->SetElastic(true);
styleList_->ScrollBy(Screen::GetInstance().GetHeight() / 2 - 220 / 2);
styleList_->SetViewId(PLAYDIAL_LOG_LIST_VIEW_LIST_ID);
styleList_->SetOnRotateListener(&TjdUiAppPlayDialPresenter::GetInstance());
Add(styleList_);
} else {
SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0x00000000);
int16_t title_y = 327;
// InitLabelHorCenter(titleDown_, 28, title_y, 466, "暂无记录!");
titleDown_.SetFont(TJD_VECTOR_FONT_FILENAME, 28);
titleDown_.SetTextId(STR_ID_385);
titleDown_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
titleDown_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
titleDown_.SetPosition(0, title_y, 466, 40);
logoNoRecord_.SetPosition(168, 104, 162, 203);
auto img_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_NO_DATA, PLAY_DIAL_BIN_PATH);
if (img_Res != nullptr) {
logoNoRecord_.SetSrc(img_Res);
}
Add(&titleDown_);
Add(&logoNoRecord_);
}
}
void PlayDialHistoryView::PageUninit(void)
{
RemoveAll();
if (styleList_) {
styleList_->ClearFocus();
delete styleList_;
styleList_ = nullptr;
}
if (g_PlayDialHistoryAdapter) {
delete g_PlayDialHistoryAdapter;
g_PlayDialHistoryAdapter = nullptr;
}
initFlag_ = false;
}
void PlayDialHistoryView::ShowView()
{
PageInit();
if (styleList_) {
styleList_->RequestFocus();
styleList_->SetRotateFactor(1.0);
}
SetVisible(true);
}
void PlayDialHistoryView::HideView()
{
if (styleList_) {
styleList_->ClearFocus();
}
SetVisible(false);
}
void PlayDialHistoryView::clickCallBackImage(int16_t index)
{
std::vector<std::string> *strList = TjdUiAppPlayDialModel::GetInstance().GetHistoryFileList();
extern std::string g_PlayDialPreviewPath;
g_PlayDialPreviewPath = (strList->data()[index]);
static_print_info("PlayDialHistoryView::clickCallBackImage():%d-%s-[%s]", index, g_PlayDialPreviewPath.c_str(),
strList->data()[index].c_str());
}
void PlayDialHistoryView::clickCallBackDelete(int16_t index)
{
GraphicService::GetInstance()->PostGraphicEvent(std::bind(
[](int16_t index) {
std::vector<std::string> *strList = TjdUiAppPlayDialModel::GetInstance().GetHistoryFileList();
std::string deletePath = (strList->data()[index]);
TjdUiAppPlayDialModel::GetInstance().FileDelete(deletePath.c_str());
if (TjdUiAppPlayDialModel::GetInstance().UpdateHistoryFileList(10)) {
PlayDialHistoryView::GetInstance()->styleList_->RefreshList();
} else {
PlayDialHistoryView::GetInstance()->PageUninit();
PlayDialHistoryView::GetInstance()->ShowView();
PlayDialHistoryView::GetInstance()->Invalidate();
}
static_print_info("view.GetViewIndex()[%d]: %s", index, deletePath.c_str());
},
index)); //在事件中删除目标,输入设递归可能会非法指针。
}
// class PlayDialHistoryView end
// class PlayDialHistorySingleView start
PlayDialHistorySingleView *g_PlayDialHistorySingleView;
PlayDialHistorySingleView::PlayDialHistorySingleView()
{
g_PlayDialHistorySingleView = this;
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
SetOnDragListener(&TjdUiAppPlayDialPresenter::GetInstance());
ImageInfo *img_Res{nullptr};
ImageBg_.SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
img_Res = OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_BJ, PLAY_DIAL_BIN_PATH);
ImageBg_.SetSrc(img_Res);
clickDown_.SetPosition(77, 378, 312, 88); //图片自带文字,后续多语言需要调整
img_Res = OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_ICON_SETTING, PLAY_DIAL_BIN_PATH);
if (img_Res != nullptr) {
clickDown_.SetSrc(img_Res);
clickDown_.SetViewId(PLAYDIAL_LOG_SINGLE_VIEW_BTN_ID);
clickDown_.SetOnClickListener(&TjdUiAppPlayDialPresenter::GetInstance());
clickDown_.SetTouchable(true);
}
int16_t title_y = 407;
// InitLabelHorCenter(clickDownLabel_, 28, title_y, 466, "设为壁纸");
clickDownLabel_.SetFont(TJD_VECTOR_FONT_FILENAME, 28);
clickDownLabel_.SetTextId(STR_ID_326);
clickDownLabel_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
clickDownLabel_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
clickDownLabel_.SetPosition(0, title_y, 466, 40);
Add(&ImageBg_);
Add(&clickDown_);
Add(&clickDownLabel_);
}
PlayDialHistorySingleView::~PlayDialHistorySingleView()
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
RemoveAll();
g_PlayDialHistorySingleView = nullptr;
}
PlayDialHistorySingleView *PlayDialHistorySingleView::GetInstance(void) { return g_PlayDialHistorySingleView; }
void PlayDialHistorySingleView::ShowView()
{
ImageInfo *img_Res{nullptr};
extern std::string g_PlayDialPreviewPath;
if (g_PlayDialPreviewPath.size()) {
if (TjdUiAppPlayDialModel::GetInstance().FileExists(g_PlayDialPreviewPath.c_str())) {
img_Res = OHOS::ImageCacheManager::GetInstance().LoadSingleRes(g_PlayDialPreviewPath);
static_print_info("PlayDialHistorySingleView::ShowView():[%p]: %s", img_Res, g_PlayDialPreviewPath.c_str());
}
}
ImageBg_.SetSrc(img_Res);
SetVisible(true);
}
void PlayDialHistorySingleView::HideView() { SetVisible(false); }
// class PlayDialHistorySingleView end
// class PlayDialSetSuccessView start
PlayDialSetSuccessView *g_PlayDialSetSuccessView;
PlayDialSetSuccessView::PlayDialSetSuccessView()
{
g_PlayDialSetSuccessView = this;
SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0x00000000);
SetOnDragListener(&TjdUiAppPlayDialPresenter::GetInstance());
int16_t title_y = 319;
// InitLabelHorCenter(titleDown_, 34, title_y, 466, "设置成功");
titleDown_.SetFont(TJD_VECTOR_FONT_FILENAME, 34);
titleDown_.SetTextId(STR_ID_327);
titleDown_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
titleDown_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
titleDown_.SetPosition(0, title_y, 466, 47);
logoSetResul_.SetPosition(156, 114, 166, 164);
auto img_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_PROMPT_SUCCESS, PLAY_DIAL_BIN_PATH);
if (img_Res != nullptr) {
logoSetResul_.SetSrc(img_Res);
}
tick_ = 0;
if (logoTimer_ == nullptr) {
logoTimer_ = new OHOS::GraphicTimer(100, TimerCallBack, this, true);
logoTimer_->Start();
}
Add(&logoSetResul_);
Add(&titleDown_);
static_print_info("%d-%s,logoTimer_:[%p]", __LINE__, __func__, logoTimer_);
}
PlayDialSetSuccessView::~PlayDialSetSuccessView()
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
if (logoTimer_ != nullptr) {
logoTimer_->Stop();
delete logoTimer_;
logoTimer_ = nullptr;
}
RemoveAll();
g_PlayDialSetSuccessView = nullptr;
}
PlayDialSetSuccessView *PlayDialSetSuccessView::GetInstance(void) { return g_PlayDialSetSuccessView; }
void PlayDialSetSuccessView::ShowView()
{
TjdUiAppPlayDialView::GetInstance().Result_ = AI_RESULT_SET_DING;
SetVisible(true);
}
void PlayDialSetSuccessView::HideView() { SetVisible(false); }
void PlayDialSetSuccessView::TimerCallBackRun(void *arg)
{
PlayDialSetSuccessView *p_inst = (PlayDialSetSuccessView *)arg;
static_print_info("[%s][%d]: %s:%d", __FILE__, __LINE__, __func__, p_inst->tick_);
extern std::string g_PlayDialPreviewPath;
if (TjdUiAppPlayDialView::GetInstance().TipsIndex_ == PLAYDIAL_TIPS_SET_SUCCESS &&
TjdUiAppPlayDialView::GetInstance().Result_ == AI_RESULT_SET_DING) {
if (TjdUiAppPlayDialModel::GetInstance().MakeingWfConfig0Json(g_PlayDialPreviewPath.c_str()) == 0) {
TjdUiAppPlayDialView::GetInstance().Result_ = AI_RESULT_SET_DONE;
static_print_debug("MakeingWfConfig0Json():Success\n");
if (power_display_svr_get_api()->get_screen_state() != SCREEN_ON) {
power_display_svr_get_api()->turn_on_screen();
}
power_display_svr_get_api()->set_auto_timeout_function(true);
sql_setting_set_watch_face_id(0);
} else {
static_print_error("MakeingWfConfig0Json(): fail");
}
}
if (p_inst->tick_ <= 2 * 10) {
p_inst->tick_++;
} else {
// 超时了,跳转到表盘制作页
if (p_inst->logoTimer_ != nullptr) {
p_inst->logoTimer_->Stop();
p_inst->tick_ = 0;
}
if (TjdUiAppPlayDialView::GetInstance().TipsIndex_ == PLAYDIAL_TIPS_SET_SUCCESS &&
TjdUiAppPlayDialView::GetInstance().Result_ == AI_RESULT_SET_DONE) {
// uint16_t current_slice_id = OHOS::NativeAbility::GetInstance().GetCurSliceId();
OHOS::NativeAbility::GetInstance().ChangeSlice(TJD_APP_VIEW_MAIN);
} else {
TjdUiAppPlayDialView::GetInstance().ShowView(PlayDialViewIndex::PLAYDIAL_HOME);
}
}
}
void PlayDialSetSuccessView::TimerCallBack(void *arg)
{
GraphicService::GetInstance()->PostGraphicEvent(
std::bind([](void *arg) { PlayDialSetSuccessView::GetInstance()->TimerCallBackRun(arg); }, arg)); //每个是
}
// class PlayDialSetSuccessView end
// class PlayDialNoConnectView start
static PlayDialNoConnectView *g_PlayDialNoConnectView = {nullptr};
PlayDialNoConnectView::PlayDialNoConnectView()
{
g_PlayDialNoConnectView = this;
SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0x00000000);
SetOnDragListener(&TjdUiAppPlayDialPresenter::GetInstance());
int16_t title_y = 310;
// InitLabelHorCenter(titleDown_, 34, title_y, 466, "请连接APP");
titleDown_.SetPosition(80, title_y, 291, 47);
titleDown_.SetFont(TJD_VECTOR_FONT_FILENAME, 34);
// titleDown_.SetText("请连接APP");
titleDown_.SetTextId(STR_ID_557);
titleDown_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_WRAP);
titleDown_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
logoSetResul_.SetPosition(84, 145, 297, 136);
auto img_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_NO_CONNECTION, PLAY_DIAL_BIN_PATH);
if (img_Res != nullptr) {
logoSetResul_.SetSrc(img_Res);
}
if (logoTimer_ == nullptr) {
logoTimer_ = new OHOS::GraphicTimer(100, TimerCallBack, this, true);
}
Add(&logoSetResul_);
Add(&titleDown_);
static_print_info("%d-%s,logoTimer_:[%p]", __LINE__, __func__, logoTimer_);
}
PlayDialNoConnectView::~PlayDialNoConnectView()
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
if (logoTimer_ != nullptr) {
logoTimer_->Stop();
delete logoTimer_;
logoTimer_ = nullptr;
}
RemoveAll();
g_PlayDialNoConnectView = nullptr;
}
PlayDialNoConnectView *PlayDialNoConnectView::GetInstance(void) { return g_PlayDialNoConnectView; }
void PlayDialNoConnectView::ShowView()
{
if (logoTimer_ != nullptr) {
logoTimer_->Start();
tick_ = 0;
}
SetVisible(true);
}
void PlayDialNoConnectView::HideView()
{
if (logoTimer_ != nullptr) {
logoTimer_->Stop();
}
SetVisible(false);
}
void PlayDialNoConnectView::TimerCallBackRun(void *arg)
{
static_print_info("[%s][%d]: %s:%d", __FILE__, __LINE__, __func__, tick_);
if (tick_ <= 2 * 10) {
tick_++;
} else {
// 超时了,跳转到表盘制作页
if (logoTimer_ != nullptr) {
logoTimer_->Stop();
tick_ = 0;
}
TjdUiAppPlayDialView::GetInstance().ShowView(PlayDialViewIndex::PLAYDIAL_HOME);
}
}
void PlayDialNoConnectView::TimerCallBack(void *arg)
{
GraphicService::GetInstance()->PostGraphicEvent(
std::bind([](void *arg) { PlayDialNoConnectView::GetInstance()->TimerCallBackRun(arg); }, arg)); //每个是
}
// class PlayDialNoConnectView end
// class PlayDialTipsView start
static PlayDialTipsView *g_PlayDialTipsView = nullptr;
PlayDialTipsView::PlayDialTipsView(void)
{
g_PlayDialTipsView = this;
SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
SetStyle(OHOS::STYLE_BACKGROUND_COLOR, 0x00000000);
if (TjdUiAppPlayDialView::GetInstance().TipsIndex_ == PLAYDIAL_TIPS_FAIL) {
int16_t title_y = 320;
// InitLabelHorCenter(titleDown_, 34, title_y, 466, "计算失败,请重试");
titleDown_.SetFont(TJD_VECTOR_FONT_FILENAME, 34);
titleDown_.SetTextId(STR_ID_410);
titleDown_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
titleDown_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
titleDown_.SetPosition(0, title_y, 466, 47);
logoSetResul_.SetPosition(126, 114, 218, 166);
auto img_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_PROMPT_FAIL, PLAY_DIAL_BIN_PATH);
if (img_Res != nullptr) {
logoSetResul_.SetSrc(img_Res);
}
tick_ = 0;
if (logoTimer_ == nullptr) {
logoTimer_ = new OHOS::GraphicTimer(100, SetResultCB, this, true);
logoTimer_->Start();
}
} else if (TjdUiAppPlayDialView::GetInstance().TipsIndex_ == PLAYDIAL_TIPS_SUCCESS) {
int16_t title_y = 319;
// InitLabelHorCenter(titleDown_, 34, title_y, 466, "设置成功");
titleDown_.SetFont(TJD_VECTOR_FONT_FILENAME, 34);
titleDown_.SetTextId(STR_ID_327);
titleDown_.SetLineBreakMode(OHOS::UILabel::LINE_BREAK_MARQUEE);
titleDown_.SetAlign(OHOS::TEXT_ALIGNMENT_CENTER, OHOS::TEXT_ALIGNMENT_CENTER);
titleDown_.SetPosition(0, title_y, 466, 47);
logoSetResul_.SetPosition(156, 114, 166, 164);
auto img_Res =
OHOS::ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_PLAY_DIAL_PROMPT_SUCCESS, PLAY_DIAL_BIN_PATH);
if (img_Res != nullptr) {
logoSetResul_.SetSrc(img_Res);
}
tick_ = 0;
if (logoTimer_ == nullptr) {
logoTimer_ = new OHOS::GraphicTimer(100, SetResultCB, this, true);
logoTimer_->Start();
}
}
Add(&logoSetResul_);
Add(&titleDown_);
static_print_info("%d-%s,logoTimer_:[%p]", __LINE__, __func__, logoTimer_);
}
PlayDialTipsView::~PlayDialTipsView(void)
{
OnStop();
g_PlayDialTipsView = nullptr;
}
PlayDialTipsView *PlayDialTipsView::GetInstance(void) { return g_PlayDialTipsView; }
void PlayDialTipsView::OnStop(void)
{
static_print_info("[%s][%d]: %s", __FILE__, __LINE__, __func__);
if (logoTimer_ != nullptr) {
logoTimer_->Stop();
delete logoTimer_;
logoTimer_ = nullptr;
}
RemoveAll();
}
void PlayDialTipsView::TimerCallBackRun(void *arg)
{
PlayDialTipsView *p_inst = (PlayDialTipsView *)arg;
static_print_info("[%s][%d]: %s:%d", __FILE__, __LINE__, __func__, p_inst->tick_);
if (p_inst->tick_ <= 2 * 10) {
p_inst->tick_++;
} else {
// 超时了,跳转到表盘制作页
if (p_inst->logoTimer_ != nullptr) {
p_inst->logoTimer_->Stop();
p_inst->tick_ = 0;
}
if (TjdUiAppPlayDialView::GetInstance().TipsIndex_ == PLAYDIAL_TIPS_SUCCESS) {
TjdUiAppPlayDialView::GetInstance().ShowView(PlayDialViewIndex::PLAYDIAL_HOME);
} else {
PlayDialTipsView::GetInstance()->OnStop();
}
}
}
void PlayDialTipsView::TimerCallBack(void *arg)
{
GraphicService::GetInstance()->PostGraphicEvent(
std::bind([](void *arg) { PlayDialTipsView::GetInstance()->TimerCallBackRun(arg); }, arg)); //每个是
}
} // namespace TJD