813 lines
31 KiB
C++
813 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();
|
|
TJD::TjdUiAppMainView::GetInstance()->SetLastPageIndex(1);
|
|
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
|