@@ -210,6 +210,12 @@ void DisplayApp::Refresh() {
210210 case FullRefreshDirections::RightAnim:
211211 returnDirection = FullRefreshDirections::LeftAnim;
212212 break ;
213+ case FullRefreshDirections::Left:
214+ returnDirection = FullRefreshDirections::Right;
215+ break ;
216+ case FullRefreshDirections::Right:
217+ returnDirection = FullRefreshDirections::Left;
218+ break ;
213219 default :
214220 returnDirection = FullRefreshDirections::None;
215221 break ;
@@ -406,6 +412,10 @@ void DisplayApp::Refresh() {
406412 return TouchEvents::SwipeRight;
407413 case DisplayApp::FullRefreshDirections::RightAnim:
408414 return TouchEvents::SwipeLeft;
415+ case DisplayApp::FullRefreshDirections::Left:
416+ return TouchEvents::SwipeRight;
417+ case DisplayApp::FullRefreshDirections::Right:
418+ return TouchEvents::SwipeLeft;
409419 }
410420 };
411421 if (!currentScreen->OnTouchEvent (gesture)) {
@@ -420,6 +430,11 @@ void DisplayApp::Refresh() {
420430 case TouchEvents::SwipeRight:
421431 LoadNewScreen (Apps::QuickSettings, DisplayApp::FullRefreshDirections::RightAnim);
422432 break ;
433+ case TouchEvents::SwipeLeft:
434+ if (previousApp != Apps::None) {
435+ LoadNewScreen (previousApp, DisplayApp::FullRefreshDirections::LeftAnim);
436+ }
437+ break ;
423438 case TouchEvents::DoubleTap:
424439 PushMessageToSystemTask (System::Messages::GoToSleep);
425440 break ;
@@ -428,6 +443,10 @@ void DisplayApp::Refresh() {
428443 }
429444 } else if (gesture == LoadDirToReturnSwipe (appStackDirections.Top ())) {
430445 LoadPreviousScreen ();
446+ } else if (gesture == TouchEvents::SwipeRight) {
447+ LoadNewScreen (Apps::Clock, DisplayApp::FullRefreshDirections::RightAnim);
448+ appStackDirections.Reset ();
449+ returnAppStack.Reset ();
431450 }
432451 } else {
433452 lvgl.CancelTap ();
@@ -448,6 +467,8 @@ void DisplayApp::Refresh() {
448467 LoadNewScreen (Apps::Clock, DisplayApp::FullRefreshDirections::Up);
449468 } else if (currentApp == Apps::QuickSettings) {
450469 LoadNewScreen (Apps::Clock, DisplayApp::FullRefreshDirections::LeftAnim);
470+ } else if (currentApp == previousApp) {
471+ LoadNewScreen (Apps::Clock, DisplayApp::FullRefreshDirections::RightAnim);
451472 } else {
452473 LoadNewScreen (Apps::Clock, DisplayApp::FullRefreshDirections::Down);
453474 }
@@ -491,7 +512,10 @@ void DisplayApp::Refresh() {
491512 }
492513}
493514
494- void DisplayApp::StartApp (Apps app, DisplayApp::FullRefreshDirections direction) {
515+ void DisplayApp::StartApp (Apps app, DisplayApp::FullRefreshDirections direction, bool setPrevious) {
516+ if (setPrevious) {
517+ previousApp = app;
518+ }
495519 nextApp = app;
496520 nextDirection = direction;
497521}
0 commit comments