915 lines
36 KiB
C++
915 lines
36 KiB
C++
#include "TjdUiAppDailyDataView.h"
|
|
#include "TjdUiImageIds.h"
|
|
#include "TjdUiMemManage.h"
|
|
#include "TjdUiMultiLanguageExt.h"
|
|
#include "TjdUiUtils.h"
|
|
#include "common/image_cache_manager.h"
|
|
#include "style.h"
|
|
#include "sys_config.h"
|
|
#include "ui_label_ext.h"
|
|
#include <iomanip>
|
|
#include <sstream>
|
|
#include <stdio.h>
|
|
|
|
#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
|
|
|
|
using namespace OHOS;
|
|
namespace TJD {
|
|
|
|
// clang-format off
|
|
#define IMAGE_ICON_BIN_PATH TJD_IMAGE_PATH"img_icon.bin"
|
|
// clang-format on
|
|
|
|
static const char about_txt[] = {
|
|
"本应用数据统计您在一天内的运动数据,包含步数、卡路里,活动时长,您也可对每天的运动量进行目标"
|
|
"设置,我们会在达标时对您进行提醒。"};
|
|
|
|
static TjdUiAppDailyDataView *g_pv_AppDailyDataView = nullptr;
|
|
|
|
TjdUiAppDailyDataView::TjdUiAppDailyDataView() { g_pv_AppDailyDataView = this; }
|
|
|
|
TjdUiAppDailyDataView *TjdUiAppDailyDataView::GetInstance(void) { return g_pv_AppDailyDataView; }
|
|
|
|
TjdUiAppDailyDataView::~TjdUiAppDailyDataView()
|
|
{
|
|
static_print_info("[TjdUiAppDailyDataView]::%s", __func__);
|
|
g_pv_AppDailyDataView = nullptr;
|
|
ImageCacheManager::GetInstance().UnloadAllInMultiRes(IMAGE_ICON_BIN_PATH);
|
|
|
|
for (auto it = uiChartdataList.begin(); it != uiChartdataList.end(); ++it) {
|
|
if (*it != nullptr) {
|
|
// static_print_info("uiChartdata addr:%p", *it);
|
|
delete *it;
|
|
*it = nullptr;
|
|
}
|
|
}
|
|
|
|
for (auto it = uiChartList.begin(); it != uiChartList.end(); ++it) {
|
|
if (*it != nullptr) {
|
|
// static_print_info("uiChart addr:%p", *it);
|
|
static_cast<UIViewGroup *>((*it)->GetParent())->Remove(*it);
|
|
delete *it;
|
|
*it = nullptr;
|
|
}
|
|
}
|
|
|
|
TjdUiMemManage::DeleteChildren(containerAll_);
|
|
}
|
|
|
|
void TjdUiAppDailyDataView::OnStart()
|
|
{
|
|
static_print_info("[TjdUiAppDailyDataView]::%s", __func__);
|
|
presenter_->GetDailyDataModel()->RequestDaliyData();
|
|
presenter_->GetDailyDataModel()->LoadChartData();
|
|
presenter_->UpdatePointArray();
|
|
|
|
if (containerAll_ == nullptr) {
|
|
containerAll_ = new UIViewGroup();
|
|
containerAll_->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
containerAll_->SetStyle(STYLE_BACKGROUND_OPA, 0);
|
|
}
|
|
if (swipeContainer_ == nullptr) {
|
|
swipeContainer_ = new UISwipeViewNested(UISwipeView::VERTICAL);
|
|
swipeContainer_->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
swipeContainer_->SetViewId("swipeContainer_");
|
|
swipeContainer_->SetStyle(STYLE_BACKGROUND_OPA, 0);
|
|
if (OHOS::PageTransitionMgr::GetInstance().GetTopSlideBackImage() == nullptr) {
|
|
swipeContainer_->SetOnDragListener(presenter_);
|
|
}
|
|
|
|
// swipeContainer_->SetYScrollBarVisible();
|
|
}
|
|
swipeContainer_->Add(FirstPageViewInit());
|
|
swipeContainer_->Add(SecondPageViewInit());
|
|
swipeContainer_->Add(ThirdPageViewInit());
|
|
swipeContainer_->Add(FourthPageViewInit());
|
|
swipeContainer_->Add(FifthPageViewInit());
|
|
|
|
groupList_[DAILYDATA_SWIPE_VIEW] = swipeContainer_;
|
|
groupList_[DAILYDATA_ABOUT_VIEW] = AboutPageViewInit();
|
|
|
|
for (int i = 0; i < DAILYDATA_MAX_VIEW; i++) {
|
|
containerAll_->Add(groupList_[i]);
|
|
}
|
|
|
|
AddViewToRootContainer(containerAll_);
|
|
}
|
|
|
|
void TjdUiAppDailyDataView::OnStop() { static_print_info("[TjdUiAppDailyDataView]::%s", __func__); }
|
|
|
|
UIViewGroup *TjdUiAppDailyDataView::FirstPageViewInit(void)
|
|
{
|
|
if (swipeContainer_->GetChildById("firstPageContainer_") != nullptr) {
|
|
return static_cast<UIViewGroup *>(swipeContainer_->GetChildById("firstPageContainer_"));
|
|
}
|
|
UIViewGroup *firstPageContainer_ = new UIViewGroup();
|
|
if (firstPageContainer_ == nullptr) {
|
|
static_print_error("%s: firstPageContainer_ is nullptr", __func__);
|
|
return nullptr;
|
|
}
|
|
firstPageContainer_->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
firstPageContainer_->SetViewId("firstPageContainer_");
|
|
firstPageContainer_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
|
|
|
|
UIImageView *iconBg_ = new UIImageView();
|
|
if (iconBg_ != nullptr) {
|
|
iconBg_->SetPosition(0, 0);
|
|
iconBg_->Resize(466, 466);
|
|
iconBg_->SetStyle(STYLE_BORDER_OPA, 0xff);
|
|
// iconBg_->SetStyle(STYLE_BORDER_WIDTH, 12);
|
|
ImageInfo *imgInfo =
|
|
ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_BJ_FIRST_PAGE, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo != nullptr) {
|
|
iconBg_->SetSrc(imgInfo);
|
|
} else {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
firstPageContainer_->Add(iconBg_);
|
|
} else {
|
|
static_print_error("%s: %s is nullptr", __func__, ABOUT_ID);
|
|
}
|
|
|
|
canvas_.SetPosition(0, 0);
|
|
canvas_.Resize(466, 466);
|
|
canvas_.SetStyle(OHOS::STYLE_BACKGROUND_OPA, 0x0);
|
|
|
|
firstPageContainer_->Add(&canvas_);
|
|
|
|
UIImageView *iconTime_ = new UIImageView();
|
|
if (iconTime_ != nullptr) {
|
|
iconTime_->SetPosition(218, 10);
|
|
iconTime_->Resize(30, 30);
|
|
iconTime_->SetStyle(STYLE_BORDER_OPA, 0);
|
|
// iconTime_->SetStyle(STYLE_BORDER_WIDTH, 12);
|
|
ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_FTIME, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo != nullptr) {
|
|
iconTime_->SetSrc(imgInfo);
|
|
} else {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
firstPageContainer_->Add(iconTime_);
|
|
} else {
|
|
static_print_error("%s: %s is nullptr", __func__, ABOUT_ID);
|
|
}
|
|
|
|
UIImageView *iconStep_ = new UIImageView();
|
|
if (iconStep_ != nullptr) {
|
|
iconStep_->SetPosition(223, 68);
|
|
iconStep_->Resize(20, 30);
|
|
iconStep_->SetStyle(STYLE_BORDER_OPA, 0);
|
|
// iconStep_->SetStyle(STYLE_BORDER_WIDTH, 12);
|
|
ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_FSTEP, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo != nullptr) {
|
|
iconStep_->SetSrc(imgInfo);
|
|
} else {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
firstPageContainer_->Add(iconStep_);
|
|
} else {
|
|
static_print_error("%s: %s is nullptr", __func__, ABOUT_ID);
|
|
}
|
|
|
|
UIImageView *iconCal_ = new UIImageView();
|
|
if (iconCal_ != nullptr) {
|
|
iconCal_->SetPosition(221, 124);
|
|
iconCal_->Resize(24, 28);
|
|
iconCal_->SetStyle(STYLE_BORDER_OPA, 0);
|
|
// iconCal_->SetStyle(STYLE_BORDER_WIDTH, 12);
|
|
ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_FKCAL, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo != nullptr) {
|
|
iconCal_->SetSrc(imgInfo);
|
|
} else {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
firstPageContainer_->Add(iconCal_);
|
|
} else {
|
|
static_print_error("%s: %s is nullptr", __func__, ABOUT_ID);
|
|
}
|
|
|
|
return firstPageContainer_;
|
|
}
|
|
|
|
UIViewGroup *TjdUiAppDailyDataView::SecondPageViewInit(void)
|
|
{
|
|
if (swipeContainer_->GetChildById("secondPageContainer_") != nullptr) {
|
|
return static_cast<UIViewGroup *>(swipeContainer_->GetChildById("secondPageContainer_"));
|
|
}
|
|
UIViewGroup *secondPageContainer_ = new UIViewGroup();
|
|
if (secondPageContainer_ == nullptr) {
|
|
static_print_error("%s: secondPageContainer_ is nullptr", __func__);
|
|
return nullptr;
|
|
}
|
|
secondPageContainer_->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
secondPageContainer_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
|
|
secondPageContainer_->SetViewId("secondPageContainer_");
|
|
|
|
UIImageView *image = new UIImageView();
|
|
image->SetPosition(172, 26, 26, 39);
|
|
ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_STEP, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
image->SetSrc(imgInfo);
|
|
secondPageContainer_->Add(image);
|
|
|
|
UILabelExt *label1 = new UILabelExt();
|
|
if (label1 != nullptr) {
|
|
label1->SetPosition(206, 20, 82, 47);
|
|
// label1->SetText("步数");
|
|
label1->SetTextId(STR_ID_204);
|
|
label1->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
|
|
label1->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label1->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_36);
|
|
secondPageContainer_->Add(label1);
|
|
}
|
|
UILabel *label2 = new UILabel();
|
|
if (label2 != nullptr) {
|
|
label2->SetPosition(171, 364, 121, 37);
|
|
if (presenter_->GetDailyDataModel()->GetTotalStep()) {
|
|
std::string str = std::to_string(presenter_->GetDailyDataModel()->GetTotalStep());
|
|
label2->SetText(str.c_str());
|
|
} else
|
|
label2->SetText("--");
|
|
label2->SetViewId("curStep");
|
|
label2->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label2->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label2->SetFont(TJD_DIN_MEDIUM_FONT_FILENAME, 50);
|
|
TjdUiUtils::AutoAlignHorizontalCenter(*(label2));
|
|
secondPageContainer_->Add(label2);
|
|
}
|
|
UILabelExt *label3 = new UILabelExt();
|
|
if (label3 != nullptr) {
|
|
label3->SetPosition(91, 375, 66, 40);
|
|
// std::string str = std::to_string(presenter_->GetDailyDataModel()->GetStepPersent()) + "%";
|
|
// label3->SetText("今天");
|
|
label3->SetTextId(STR_ID_251);
|
|
label3->SetViewId("today");
|
|
label3->SetStyle(STYLE_TEXT_COLOR, 0xFFA1A1A1);
|
|
label3->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label3->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label3->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
secondPageContainer_->Add(label3);
|
|
}
|
|
UILabel *label4 = new UILabel();
|
|
if (label4 != nullptr) {
|
|
label4->SetPosition(299, 376, 88, 23);
|
|
label4->SetText("STEPS");
|
|
label4->SetStyle(STYLE_TEXT_COLOR, 0xFF8E8E8E);
|
|
label4->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label4->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
secondPageContainer_->Add(label4);
|
|
}
|
|
|
|
uint32_t stepValue = stepArray.arrayStep; // 步进值
|
|
if (stepValue == 0)
|
|
stepValue = 1;
|
|
|
|
for (int i = 0; i < 4; i++) {
|
|
UILabel *label = new UILabel();
|
|
if (label != nullptr) {
|
|
label->SetPosition(398, 142 + (i * 41), 34, 17);
|
|
label->SetText(std::to_string((4 - i) * stepValue).c_str());
|
|
label->SetStyle(STYLE_TEXT_COLOR, 0xFF6D6D6D);
|
|
label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label->SetAlign(TEXT_ALIGNMENT_RIGHT, TEXT_ALIGNMENT_CENTER);
|
|
label->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_22);
|
|
secondPageContainer_->Add(label);
|
|
}
|
|
}
|
|
|
|
UIChartPillar *uiChart = new UIChartPillar();
|
|
uiChartList.push_back(uiChart);
|
|
if (uiChart != nullptr) {
|
|
uiChart->SetPosition(80, 148);
|
|
uiChart->Resize(305, 164);
|
|
uiChart->SetViewId("uiChart");
|
|
uiChart->SetStyle(STYLE_LINE_CAP, true);
|
|
uiChart->SetStyle(STYLE_BACKGROUND_OPA, 0);
|
|
|
|
// Set additional property
|
|
UIXAxis &uiChartXAxis = uiChart->GetXAxis();
|
|
UIYAxis &uiChartYAxis = uiChart->GetYAxis();
|
|
uiChartXAxis.SetMarkNum(24);
|
|
uiChartXAxis.SetDataRange(0, 24);
|
|
uiChartXAxis.SetVisible(false);
|
|
uiChartYAxis.SetMarkNum(5);
|
|
uiChartYAxis.SetDataRange(0, 4 * stepValue);
|
|
uiChartYAxis.SetVisible(false);
|
|
UIChartDataSerial *uiChartdata = new UIChartDataSerial();
|
|
uiChartdataList.push_back(uiChartdata);
|
|
uiChartdata->SetMaxDataCount(24);
|
|
uiChartdata->AddPoints(stepArray.PointArray, 24);
|
|
uiChartdata->SetFillColor(Color::GetColorFromRGBA(0x0d, 0xeb, 0x34, 0xff));
|
|
uiChart->AddDataSerial(uiChartdata);
|
|
secondPageContainer_->Add(uiChart);
|
|
}
|
|
|
|
UIImageView *imageBg = new UIImageView();
|
|
imageBg->SetPosition(81, 146);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_COMMON_BG, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageBg->SetSrc(imgInfo);
|
|
secondPageContainer_->Add(imageBg);
|
|
|
|
UIImageView *imageTime = new UIImageView();
|
|
imageTime->SetPosition(59, 310);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_BJ_TIME, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageTime->SetSrc(imgInfo);
|
|
secondPageContainer_->Add(imageTime);
|
|
|
|
return secondPageContainer_;
|
|
}
|
|
|
|
UIViewGroup *TjdUiAppDailyDataView::ThirdPageViewInit(void)
|
|
{
|
|
if (swipeContainer_->GetChildById("thirdPageContainer_") != nullptr) {
|
|
return static_cast<UIViewGroup *>(swipeContainer_->GetChildById("thirdPageContainer_"));
|
|
}
|
|
UIViewGroup *thirdPageContainer_ = new UIViewGroup();
|
|
if (thirdPageContainer_ == nullptr) {
|
|
static_print_error("%s: thirdPageContainer_ is nullptr", __func__);
|
|
return nullptr;
|
|
}
|
|
thirdPageContainer_->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
thirdPageContainer_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
|
|
thirdPageContainer_->SetViewId("thirdPageContainer_");
|
|
|
|
UIImageView *image = new UIImageView();
|
|
image->SetPosition(164, 24);
|
|
ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_KCAL, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
image->SetSrc(imgInfo);
|
|
thirdPageContainer_->Add(image);
|
|
|
|
UILabelExt *label1 = new UILabelExt();
|
|
if (label1 != nullptr) {
|
|
label1->SetPosition(206, 20, 82, 47);
|
|
// label1->SetText("热量");
|
|
label1->SetTextId(STR_ID_230);
|
|
label1->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
|
|
label1->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label1->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_36);
|
|
thirdPageContainer_->Add(label1);
|
|
}
|
|
UILabel *label2 = new UILabel();
|
|
if (label2 != nullptr) {
|
|
label2->SetPosition(182, 365, 98, 37);
|
|
if (presenter_->GetDailyDataModel()->GetTotalKCAL()) {
|
|
std::string str = std::to_string(presenter_->GetDailyDataModel()->GetTotalKCAL());
|
|
label2->SetText(str.c_str());
|
|
} else
|
|
label2->SetText("--");
|
|
label2->SetViewId("curKCAL");
|
|
label2->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label2->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label2->SetFont(TJD_DIN_MEDIUM_FONT_FILENAME, 50);
|
|
TjdUiUtils::AutoAlignHorizontalCenter(*(label2));
|
|
thirdPageContainer_->Add(label2);
|
|
}
|
|
|
|
UILabelExt *label3 = new UILabelExt();
|
|
if (label3 != nullptr) {
|
|
// std::string str = std::to_string(presenter_->GetDailyDataModel()->GetStepPersent()) + "%";
|
|
label3->SetPosition(91, 375, 66, 40);
|
|
// std::string str = std::to_string(presenter_->GetDailyDataModel()->GetStepPersent()) + "%";
|
|
// label3->SetText("今天");
|
|
label3->SetTextId(STR_ID_251);
|
|
label3->SetViewId("today");
|
|
label3->SetStyle(STYLE_TEXT_COLOR, 0xFFA1A1A1);
|
|
label3->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label3->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label3->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
thirdPageContainer_->Add(label3);
|
|
}
|
|
|
|
UILabel *label4 = new UILabel();
|
|
if (label4 != nullptr) {
|
|
label4->SetPosition(291, 377);
|
|
label4->SetText("KCAL");
|
|
label4->SetStyle(STYLE_TEXT_COLOR, 0xFF8E8E8E);
|
|
label4->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label4->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
thirdPageContainer_->Add(label4);
|
|
}
|
|
|
|
uint32_t stepValue = KCALArray.arrayStep; // 步进值
|
|
if (stepValue == 0)
|
|
stepValue = 1;
|
|
for (int i = 0; i < 4; i++) {
|
|
UILabel *label = new UILabel();
|
|
if (label != nullptr) {
|
|
label->SetPosition(398, 142 + (i * 41), 34, 17);
|
|
label->SetText(std::to_string((4 - i) * stepValue).c_str());
|
|
label->SetStyle(STYLE_TEXT_COLOR, 0xFF6D6D6D);
|
|
label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label->SetAlign(TEXT_ALIGNMENT_RIGHT, TEXT_ALIGNMENT_CENTER);
|
|
label->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_22);
|
|
thirdPageContainer_->Add(label);
|
|
}
|
|
}
|
|
|
|
UIChartPillar *uiChart = new UIChartPillar();
|
|
uiChartList.push_back(uiChart);
|
|
if (uiChart != nullptr) {
|
|
uiChart->SetPosition(80, 148);
|
|
uiChart->Resize(305, 164);
|
|
uiChart->SetViewId("uiChart");
|
|
uiChart->SetStyle(STYLE_LINE_CAP, true);
|
|
uiChart->SetStyle(STYLE_BACKGROUND_OPA, 0);
|
|
|
|
// Set additional property
|
|
UIXAxis &uiChartXAxis = uiChart->GetXAxis();
|
|
UIYAxis &uiChartYAxis = uiChart->GetYAxis();
|
|
uiChartXAxis.SetMarkNum(24);
|
|
uiChartXAxis.SetDataRange(0, 24);
|
|
uiChartXAxis.SetVisible(false);
|
|
uiChartYAxis.SetMarkNum(5);
|
|
uiChartYAxis.SetDataRange(0, 4 * stepValue);
|
|
uiChartYAxis.SetVisible(false);
|
|
UIChartDataSerial *uiChartdata = new UIChartDataSerial();
|
|
uiChartdataList.push_back(uiChartdata);
|
|
uiChartdata->SetMaxDataCount(24);
|
|
uiChartdata->AddPoints(KCALArray.PointArray, 24);
|
|
uiChartdata->SetFillColor(Color::GetColorFromRGBA(0xff, 0x46, 0x11, 0xff));
|
|
uiChart->AddDataSerial(uiChartdata);
|
|
thirdPageContainer_->Add(uiChart);
|
|
}
|
|
|
|
UIImageView *imageBg = new UIImageView();
|
|
imageBg->SetPosition(81, 146);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_COMMON_BG, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageBg->SetSrc(imgInfo);
|
|
thirdPageContainer_->Add(imageBg);
|
|
|
|
UIImageView *imageTime = new UIImageView();
|
|
imageTime->SetPosition(59, 310);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_BJ_TIME, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageTime->SetSrc(imgInfo);
|
|
thirdPageContainer_->Add(imageTime);
|
|
|
|
return thirdPageContainer_;
|
|
}
|
|
|
|
UIViewGroup *TjdUiAppDailyDataView::FourthPageViewInit(void)
|
|
{
|
|
if (swipeContainer_->GetChildById("fourthPageContainer_") != nullptr) {
|
|
return static_cast<UIViewGroup *>(swipeContainer_->GetChildById("fourthPageContainer_"));
|
|
}
|
|
UIViewGroup *fourthPageContainer_ = new UIViewGroup();
|
|
if (fourthPageContainer_ == nullptr) {
|
|
static_print_error("%s: fourthPageContainer_ is nullptr", __func__);
|
|
return nullptr;
|
|
}
|
|
fourthPageContainer_->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
fourthPageContainer_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
|
|
fourthPageContainer_->SetViewId("fourthPageContainer_");
|
|
|
|
UIImageView *image = new UIImageView();
|
|
image->SetPosition(136, 26);
|
|
ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_TIME, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
image->SetSrc(imgInfo);
|
|
fourthPageContainer_->Add(image);
|
|
|
|
UILabelExt *label1 = new UILabelExt();
|
|
if (label1 != nullptr) {
|
|
label1->SetPosition(183, 20, 144, 47);
|
|
// label1->SetText("中高强度");
|
|
label1->SetTextId(STR_ID_231);
|
|
label1->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
|
|
label1->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label1->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_36);
|
|
fourthPageContainer_->Add(label1);
|
|
}
|
|
UILabel *label2 = new UILabel();
|
|
if (label2 != nullptr) {
|
|
label2->SetPosition(188, 364, 86, 37);
|
|
if (presenter_->GetDailyDataModel()->GetTotalTime()) {
|
|
std::string str = std::to_string(presenter_->GetDailyDataModel()->GetTotalTime());
|
|
label2->SetText(str.c_str());
|
|
} else
|
|
label2->SetText("--");
|
|
label2->SetViewId("curTime");
|
|
label2->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label2->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label2->SetFont(TJD_DIN_MEDIUM_FONT_FILENAME, 50);
|
|
TjdUiUtils::AutoAlignHorizontalCenter(*(label2));
|
|
fourthPageContainer_->Add(label2);
|
|
}
|
|
|
|
UILabelExt *label3 = new UILabelExt();
|
|
if (label3 != nullptr) {
|
|
// std::string str = std::to_string(presenter_->GetDailyDataModel()->GetStepPersent()) + "%";
|
|
label3->SetPosition(91, 375, 66, 40);
|
|
// std::string str = std::to_string(presenter_->GetDailyDataModel()->GetStepPersent()) + "%";
|
|
// label3->SetText("今天");
|
|
label3->SetTextId(STR_ID_251);
|
|
label3->SetViewId("today");
|
|
label3->SetStyle(STYLE_TEXT_COLOR, 0xFFA1A1A1);
|
|
label3->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label3->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label3->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
fourthPageContainer_->Add(label3);
|
|
}
|
|
|
|
UILabel *label4 = new UILabel();
|
|
if (label4 != nullptr) {
|
|
label4->SetPosition(292, 379);
|
|
label4->SetText("MIN");
|
|
label4->SetStyle(STYLE_TEXT_COLOR, 0xFF8E8E8E);
|
|
label4->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label4->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
fourthPageContainer_->Add(label4);
|
|
}
|
|
|
|
uint32_t stepValue = exerTimeArray.arrayStep; // 步进值
|
|
if (stepValue == 0)
|
|
stepValue = 25;
|
|
for (int i = 0; i < 4; i++) {
|
|
UILabel *label = new UILabel();
|
|
if (label != nullptr) {
|
|
label->SetPosition(398, 142 + (i * 41), 34, 17);
|
|
label->SetText(std::to_string((4 - i) * stepValue).c_str());
|
|
label->SetStyle(STYLE_TEXT_COLOR, 0xFF6D6D6D);
|
|
label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label->SetAlign(TEXT_ALIGNMENT_RIGHT, TEXT_ALIGNMENT_CENTER);
|
|
label->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_22);
|
|
fourthPageContainer_->Add(label);
|
|
}
|
|
}
|
|
|
|
UIChartPillar *uiChart = new UIChartPillar();
|
|
uiChartList.push_back(uiChart);
|
|
if (uiChart != nullptr) {
|
|
uiChart->SetPosition(80, 148);
|
|
uiChart->Resize(305, 164);
|
|
uiChart->SetViewId("uiChart");
|
|
uiChart->SetStyle(STYLE_LINE_CAP, true);
|
|
uiChart->SetStyle(STYLE_BACKGROUND_OPA, 0);
|
|
|
|
// Set additional property
|
|
UIXAxis &uiChartXAxis = uiChart->GetXAxis();
|
|
UIYAxis &uiChartYAxis = uiChart->GetYAxis();
|
|
uiChartXAxis.SetMarkNum(24);
|
|
uiChartXAxis.SetDataRange(0, 24);
|
|
uiChartXAxis.SetVisible(false);
|
|
uiChartYAxis.SetMarkNum(5);
|
|
uiChartYAxis.SetDataRange(0, 4 * stepValue);
|
|
uiChartYAxis.SetVisible(false);
|
|
UIChartDataSerial *uiChartdata = new UIChartDataSerial();
|
|
uiChartdataList.push_back(uiChartdata);
|
|
uiChartdata->SetMaxDataCount(24);
|
|
uiChartdata->AddPoints(exerTimeArray.PointArray, 24);
|
|
uiChartdata->SetFillColor(Color::GetColorFromRGBA(0xff, 0xd5, 0x22, 0xff));
|
|
uiChart->AddDataSerial(uiChartdata);
|
|
fourthPageContainer_->Add(uiChart);
|
|
}
|
|
|
|
UIImageView *imageBg = new UIImageView();
|
|
imageBg->SetPosition(81, 146);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_COMMON_BG, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageBg->SetSrc(imgInfo);
|
|
fourthPageContainer_->Add(imageBg);
|
|
|
|
UIImageView *imageTime = new UIImageView();
|
|
imageTime->SetPosition(59, 310);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_BJ_TIME, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageTime->SetSrc(imgInfo);
|
|
fourthPageContainer_->Add(imageTime);
|
|
|
|
return fourthPageContainer_;
|
|
}
|
|
|
|
UIViewGroup *TjdUiAppDailyDataView::FifthPageViewInit(void)
|
|
{
|
|
if (swipeContainer_->GetChildById("fifthPageContainer_") != nullptr) {
|
|
return static_cast<UIViewGroup *>(swipeContainer_->GetChildById("fifthPageContainer_"));
|
|
}
|
|
UIViewGroup *fifthPageContainer_ = new UIViewGroup();
|
|
if (fifthPageContainer_ == nullptr) {
|
|
static_print_error("%s: fifthPageContainer_ is nullptr", __func__);
|
|
return nullptr;
|
|
}
|
|
fifthPageContainer_->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
fifthPageContainer_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
|
|
fifthPageContainer_->SetViewId("fifthPageContainer_");
|
|
|
|
UIImageView *image = new UIImageView();
|
|
image->SetPosition(167, 22);
|
|
ImageInfo *imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_DISTANCE, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
}
|
|
image->SetSrc(imgInfo);
|
|
fifthPageContainer_->Add(image);
|
|
|
|
UILabelExt *label1 = new UILabelExt();
|
|
if (label1 != nullptr) {
|
|
label1->SetPosition(208, 20, 97, 37);
|
|
// label1->SetText("里程");
|
|
label1->SetTextId(STR_ID_556);
|
|
label1->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
|
|
label1->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label1->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_28);
|
|
fifthPageContainer_->Add(label1);
|
|
}
|
|
UILabel *label2 = new UILabel();
|
|
if (label2 != nullptr) {
|
|
label2->SetPosition(202, 364, 60, 37);
|
|
//转换m->km,显示小数点一位
|
|
float value = presenter_->GetDailyDataModel()->GetTotalDistance() / 1000.0f;
|
|
if (value > 0) {
|
|
std::ostringstream oss;
|
|
oss << std::fixed << std::setprecision(1) << value;
|
|
std::string formattedText = oss.str();
|
|
|
|
label2->SetText(formattedText.c_str());
|
|
} else
|
|
label2->SetText("--");
|
|
label2->SetViewId("curDistance");
|
|
label2->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label2->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label2->SetFont(TJD_DIN_MEDIUM_FONT_FILENAME, 50);
|
|
TjdUiUtils::AutoAlignHorizontalCenter(*(label2));
|
|
fifthPageContainer_->Add(label2);
|
|
}
|
|
|
|
UILabelExt *label3 = new UILabelExt();
|
|
if (label3 != nullptr) {
|
|
// std::string str = std::to_string(presenter_->GetDailyDataModel()->GetStepPersent()) + "%";
|
|
label3->SetPosition(91, 375, 66, 40);
|
|
// label3->SetText("今天");
|
|
label3->SetTextId(STR_ID_251);
|
|
label3->SetViewId("today");
|
|
label3->SetStyle(STYLE_TEXT_COLOR, 0xFFA1A1A1);
|
|
label3->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label3->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label3->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
fifthPageContainer_->Add(label3);
|
|
}
|
|
|
|
UILabel *label4 = new UILabel();
|
|
if (label4 != nullptr) {
|
|
label4->SetPosition(279, 379);
|
|
label4->SetText("KM");
|
|
label4->SetStyle(STYLE_TEXT_COLOR, 0xFF8E8E8E);
|
|
label4->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label4->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label4->SetFont(TJD_VECTOR_FONT_FILENAME, 30);
|
|
fifthPageContainer_->Add(label4);
|
|
}
|
|
|
|
UIChartPillar *uiChart = new UIChartPillar();
|
|
uiChartList.push_back(uiChart);
|
|
if (uiChart != nullptr) {
|
|
uiChart->SetPosition(80, 148);
|
|
uiChart->Resize(305, 164);
|
|
uiChart->SetViewId("uiChart");
|
|
uiChart->SetStyle(STYLE_LINE_CAP, true);
|
|
uiChart->SetStyle(STYLE_BACKGROUND_OPA, 0);
|
|
|
|
// Set additional property
|
|
UIXAxis &uiChartXAxis = uiChart->GetXAxis();
|
|
UIYAxis &uiChartYAxis = uiChart->GetYAxis();
|
|
uiChartXAxis.SetMarkNum(24);
|
|
uiChartXAxis.SetDataRange(0, 24);
|
|
uiChartXAxis.SetVisible(false);
|
|
uiChartYAxis.SetMarkNum(5);
|
|
|
|
if (distanceArray.arrayMax <= 4000)
|
|
uiChartYAxis.SetDataRange(0, 4000);
|
|
else
|
|
uiChartYAxis.SetDataRange(0, ((distanceArray.arrayMax) / 1000 + 1) * 1000);
|
|
|
|
uiChartYAxis.SetVisible(false);
|
|
UIChartDataSerial *uiChartdata = new UIChartDataSerial();
|
|
uiChartdataList.push_back(uiChartdata);
|
|
uiChartdata->SetMaxDataCount(24);
|
|
uiChartdata->AddPoints(distanceArray.PointArray, 24);
|
|
uiChartdata->SetFillColor(Color::GetColorFromRGBA(0x37, 0x8b, 0xff, 0xff));
|
|
uiChart->AddDataSerial(uiChartdata);
|
|
fifthPageContainer_->Add(uiChart);
|
|
}
|
|
|
|
UIImageView *imageBg = new UIImageView();
|
|
imageBg->SetPosition(81, 146);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_COMMON_BG, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageBg->SetSrc(imgInfo);
|
|
fifthPageContainer_->Add(imageBg);
|
|
|
|
UIImageView *imageTime = new UIImageView();
|
|
imageTime->SetPosition(59, 310);
|
|
imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(IMG_ICON_BJ_TIME, IMAGE_ICON_BIN_PATH);
|
|
if (imgInfo == nullptr) {
|
|
static_print_info("%s: load image error", __func__);
|
|
return nullptr;
|
|
}
|
|
imageTime->SetSrc(imgInfo);
|
|
fifthPageContainer_->Add(imageTime);
|
|
|
|
uint32_t stepValue = (distanceArray.arrayStep) / 1000; // 步进值,单位换算m -> km
|
|
if (stepValue == 0)
|
|
stepValue = 1;
|
|
for (int i = 0; i < 4; i++) {
|
|
UILabel *label = new UILabel();
|
|
if (label != nullptr) {
|
|
label->SetPosition(398, 142 + (i * 41), 34, 17);
|
|
label->SetText(std::to_string((4 - i) * stepValue).c_str());
|
|
label->SetStyle(STYLE_TEXT_COLOR, 0xFF6D6D6D);
|
|
label->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
|
|
label->SetAlign(TEXT_ALIGNMENT_RIGHT, TEXT_ALIGNMENT_CENTER);
|
|
label->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_22);
|
|
fifthPageContainer_->Add(label);
|
|
}
|
|
}
|
|
|
|
return fifthPageContainer_;
|
|
}
|
|
|
|
UIScrollView *TjdUiAppDailyDataView::AboutPageViewInit(void)
|
|
{
|
|
UIScrollView *AboutPageView = new UIScrollView();
|
|
if (AboutPageView == nullptr) {
|
|
static_print_error("%s: AboutPageView is nullptr", __func__);
|
|
return nullptr;
|
|
}
|
|
AboutPageView->SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
|
|
AboutPageView->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
|
|
AboutPageView->SetVisible(false);
|
|
AboutPageView->SetOnDragListener(presenter_);
|
|
|
|
UILabel *label1 = new UILabel();
|
|
if (label1 != nullptr) {
|
|
label1->SetPosition(100, 17, 266, 32);
|
|
label1->SetText("关于");
|
|
label1->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
|
|
label1->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label1->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_28);
|
|
AboutPageView->Add(label1);
|
|
}
|
|
|
|
UILabel *label2 = new UILabel();
|
|
if (label2 != nullptr) {
|
|
label2->SetPosition(27, 130, 412, 200);
|
|
label2->SetText(about_txt);
|
|
label2->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
|
|
label2->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
|
|
label2->SetFont(TJD_VECTOR_FONT_FILENAME, TJD_FONT_SIZE_28);
|
|
AboutPageView->Add(label2);
|
|
}
|
|
|
|
return AboutPageView;
|
|
}
|
|
|
|
uint8_t TjdUiAppDailyDataView::GetSwipeCurIndex(void)
|
|
{
|
|
if (swipeContainer_ != nullptr) {
|
|
return swipeContainer_->GetCurrentPage();
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
void TjdUiAppDailyDataView::ChangedView(DailyDataView view, DailyDataView hideView)
|
|
{
|
|
if (view >= DAILYDATA_MAX_VIEW || viewMapper_[view] == nullptr) {
|
|
return;
|
|
}
|
|
|
|
(GetInstance()->*viewMapper_[view])(hideView);
|
|
}
|
|
|
|
bool TjdUiAppDailyDataView::ShowSwipeView(DailyDataView hideView)
|
|
{
|
|
if (groupList_[hideView] == nullptr) {
|
|
static_print_error("%s: groupList_ is nullptr", __func__);
|
|
return false;
|
|
}
|
|
groupList_[hideView]->SetVisible(false);
|
|
|
|
if (swipeContainer_) {
|
|
swipeContainer_->RequestFocus();
|
|
swipeContainer_->SetRotateFactor(1.0);
|
|
}
|
|
|
|
if (groupList_[DailyDataView::DAILYDATA_SWIPE_VIEW] == nullptr) {
|
|
static_print_error("%s: groupList_ is nullptr", __func__);
|
|
return false;
|
|
}
|
|
groupList_[DailyDataView::DAILYDATA_SWIPE_VIEW]->SetVisible(true);
|
|
groupList_[DailyDataView::DAILYDATA_SWIPE_VIEW]->Invalidate();
|
|
|
|
return true;
|
|
}
|
|
|
|
bool TjdUiAppDailyDataView::ShowAboutView(DailyDataView hideView)
|
|
{
|
|
if (groupList_[hideView] == nullptr) {
|
|
static_print_error("%s: groupList_ is nullptr", __func__);
|
|
return false;
|
|
}
|
|
groupList_[hideView]->SetVisible(false);
|
|
|
|
if (hideView == DAILYDATA_SWIPE_VIEW && swipeContainer_) {
|
|
swipeContainer_->ClearFocus();
|
|
}
|
|
|
|
if (groupList_[DailyDataView::DAILYDATA_ABOUT_VIEW] == nullptr) {
|
|
static_print_error("%s: groupList_ is nullptr", __func__);
|
|
return false;
|
|
}
|
|
groupList_[DailyDataView::DAILYDATA_ABOUT_VIEW]->SetVisible(true);
|
|
groupList_[DailyDataView::DAILYDATA_ABOUT_VIEW]->Invalidate();
|
|
|
|
return true;
|
|
}
|
|
|
|
void TjdUiAppDailyDataView::UpdateFirstPage(void)
|
|
{
|
|
auto timeEndAngle = presenter_->GetDailyDataModel()->GetTimePersent() * 360 / 100;
|
|
auto stepEndAngle = presenter_->GetDailyDataModel()->GetStepPersent() * 360 / 100;
|
|
auto calEndAngle = presenter_->GetDailyDataModel()->GetKCALPersent() * 360 / 100;
|
|
|
|
PaintExt paint;
|
|
paint.SetStyle(Paint::STROKE_STYLE);
|
|
paint.SetStrokeColor((ColorType){.full = 0xFF0e7dff});
|
|
// paint.SetFillColor((ColorType){.full = 0xFF0e7dff});
|
|
paint.SetCapType(CAP_ROUND);
|
|
// paint.SetGradientSpread(GradientSpread::SPREAD_REFLECT);
|
|
|
|
canvas_.Clear();
|
|
paint.SetStrokeWidth(50);
|
|
if (timeEndAngle)
|
|
canvas_.DrawArc({233, 233}, 208, 0, timeEndAngle, paint); // 10, 0, 90: radius, startAngle, endAngle
|
|
|
|
paint.SetStrokeColor((ColorType){.full = 0xFF0CC54F});
|
|
if (stepEndAngle)
|
|
canvas_.DrawArc({233, 233}, 152, 0, stepEndAngle, paint); // 10, 0, 90: radius, startAngle, endAngle
|
|
|
|
paint.SetStrokeColor((ColorType){.full = 0xFFFF8200});
|
|
if (calEndAngle)
|
|
canvas_.DrawArc({233, 233}, 96, 0, calEndAngle, paint); // 10, 0, 90: radius, startAngle, endAngle
|
|
}
|
|
|
|
DDPointArray *TjdUiAppDailyDataView::GetPointArray(const char *id)
|
|
{
|
|
if (std::string(id) == STEP_ID) {
|
|
return &stepArray;
|
|
} else if (std::string(id) == CALORIE_ID) {
|
|
return &KCALArray;
|
|
} else if (std::string(id) == SPORTTIME_ID) {
|
|
return &exerTimeArray;
|
|
} else if (std::string(id) == DISTANCE_ID) {
|
|
return &distanceArray;
|
|
}
|
|
|
|
static_print_error("has no such array that id is %s", id);
|
|
return nullptr;
|
|
}
|
|
|
|
} // namespace TJD
|