126 lines
2.3 KiB
C++
126 lines
2.3 KiB
C++
|
#include "Launcher.h"
|
||
|
#ifndef _WIN32
|
||
|
#include "System/HAL/HAL.h"
|
||
|
#endif // ! _WIN32
|
||
|
|
||
|
#include "stdio.h"
|
||
|
using namespace Page;
|
||
|
|
||
|
Launcher::Launcher()
|
||
|
: timer(nullptr)
|
||
|
{
|
||
|
}
|
||
|
|
||
|
Launcher::~Launcher()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void Launcher::onCustomAttrConfig()
|
||
|
{
|
||
|
SetCustomCacheEnable(false);
|
||
|
SetCustomLoadAnimType(PageManager::LOAD_ANIM_NONE);
|
||
|
}
|
||
|
|
||
|
void Launcher::onViewLoad()
|
||
|
{
|
||
|
Model.Init();
|
||
|
View.Create(_root);
|
||
|
AttachEvent(_root);
|
||
|
}
|
||
|
|
||
|
void Launcher::onViewDidLoad()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void Launcher::onViewWillAppear()
|
||
|
{
|
||
|
Param_t param;
|
||
|
|
||
|
param.color = lv_color_black();
|
||
|
param.time = 1000;
|
||
|
//PAGE_STASH_POP(param);
|
||
|
|
||
|
timer = lv_timer_create(onTimerUpdate, param.time, this);
|
||
|
stausBarTimer = lv_timer_create(onStatusBarUpdate, 200, this);
|
||
|
|
||
|
}
|
||
|
|
||
|
void Launcher::onViewDidAppear()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void Launcher::onViewWillDisappear()
|
||
|
{
|
||
|
|
||
|
}
|
||
|
|
||
|
void Launcher::onViewDidDisappear()
|
||
|
{
|
||
|
lv_timer_del(timer);
|
||
|
lv_timer_del(stausBarTimer);
|
||
|
}
|
||
|
|
||
|
void Launcher::onViewDidUnload()
|
||
|
{
|
||
|
View.Delete();
|
||
|
Model.Deinit();
|
||
|
}
|
||
|
|
||
|
void Launcher::AttachEvent(lv_obj_t* obj)
|
||
|
{
|
||
|
//lv_obj_set_user_data(obj, this);
|
||
|
lv_obj_add_event_cb(obj, onEvent, LV_EVENT_ALL, this);
|
||
|
}
|
||
|
|
||
|
void Launcher::Update()
|
||
|
{
|
||
|
}
|
||
|
|
||
|
void Launcher::onTimerUpdate(lv_timer_t* timer)
|
||
|
{
|
||
|
Launcher* instance = (Launcher*)timer->user_data;
|
||
|
|
||
|
instance->Update();
|
||
|
}
|
||
|
|
||
|
void Launcher::onStatusBarUpdate(lv_timer_t* timer) {
|
||
|
#ifdef _WIN32
|
||
|
static int bat = 0;
|
||
|
bat = bat + 10;
|
||
|
if (bat > 100) {
|
||
|
bat = 0;
|
||
|
}
|
||
|
#else
|
||
|
Power_Info_t info;
|
||
|
Power_GetInfo(&info);
|
||
|
int bat = info.capacity;
|
||
|
#endif
|
||
|
Launcher* instance = (Launcher*)timer->user_data;
|
||
|
instance->View.UpdateBatteryInfo(instance->_root, bat);
|
||
|
int16_t steps = instance->Model.GetUserStep();
|
||
|
instance->View.UpdateStepInfo(instance->_root, steps);
|
||
|
}
|
||
|
|
||
|
|
||
|
void Launcher::onEvent(lv_event_t* event)
|
||
|
{
|
||
|
Launcher* instance = (Launcher*)lv_event_get_user_data(event);
|
||
|
LV_ASSERT_NULL(instance);
|
||
|
|
||
|
lv_obj_t* obj = lv_event_get_target(event);
|
||
|
lv_event_code_t code = lv_event_get_code(event);
|
||
|
|
||
|
if (obj == instance->_root)
|
||
|
{
|
||
|
if (code == LV_EVENT_SHORT_CLICKED || code == LV_EVENT_LEAVE)
|
||
|
{
|
||
|
instance->_Manager->Pop();
|
||
|
}
|
||
|
}
|
||
|
if(code == LV_EVENT_PRESSED){
|
||
|
instance->_Manager->Push("Pages/SystemInfos");
|
||
|
}
|
||
|
}
|