When a full screen refresh is done, apply a vertical scroll during the refresh. This makes the transition from one screen the another one smoother, even if the refresh rate is slow.

This commit is contained in:
JF
2020-03-08 21:46:25 +01:00
parent d834f40c10
commit 0a5cd60fe8
212 changed files with 89114 additions and 32 deletions
+13 -12
View File
@@ -117,19 +117,19 @@ void DisplayApp::Refresh() {
OnTouchEvent();
break;
case Messages::ButtonPushed:
if(!currentScreen->OnButtonPushed()) {
systemTask.PushMessage(System::SystemTask::Messages::GoToSleep);
}
// currentScreen.reset(nullptr);
// if(toggle) {
// modal.Show();
//// currentScreen.reset(new Screens::Tile(this));
// toggle = false;
// } else {
// modal.Hide();
//// currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController));
// toggle = true;
// if(!currentScreen->OnButtonPushed()) {
// systemTask.PushMessage(System::SystemTask::Messages::GoToSleep);
// }
lvgl.SetFullRefresh();
lv_disp_set_direction(lv_disp_get_default(), 0);
currentScreen.reset(nullptr);
if(toggle) {
currentScreen.reset(new Screens::Tile(this));
toggle = false;
} else {
currentScreen.reset(new Screens::Clock(this, dateTimeController, batteryController, bleController));
toggle = true;
}
break;
}
@@ -140,6 +140,7 @@ void DisplayApp::RunningState() {
// clockScreen.SetCurrentDateTime(dateTimeController.CurrentDateTime());
if(!currentScreen->Refresh()) {
lvgl.SetFullRefresh();
currentScreen.reset(nullptr);
switch(nextApp) {
case Apps::None: