Skip to content

Commit e1c5e09

Browse files
mpos.ui: add animation when transitioning screens
1 parent 6c8e145 commit e1c5e09

File tree

1 file changed

+4
-8
lines changed
  • internal_filesystem/lib/mpos

1 file changed

+4
-8
lines changed

internal_filesystem/lib/mpos/ui.py

Lines changed: 4 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -496,7 +496,7 @@ def setContentView(new_activity, new_screen):
496496
print(f"ui.py setContentView: new_activity.onStart took {end_time}ms")
497497

498498
start_time = utime.ticks_ms()
499-
lv.screen_load(new_screen)
499+
lv.screen_load_anim(new_screen, lv.SCR_LOAD_ANIM.OVER_LEFT, 500, 0, False)
500500
end_time = utime.ticks_diff(utime.ticks_ms(), start_time)
501501
print(f"ui.py setContentView: screen_load took {end_time}ms")
502502

@@ -508,30 +508,26 @@ def setContentView(new_activity, new_screen):
508508

509509

510510
def back_screen():
511+
print("back_screen() running")
511512
global screen_stack
512513
if len(screen_stack) <= 1:
513514
print("Warning: can't go back because screen_stack is empty.")
514515
return False # No previous screen
515516
#close_top_layer_msgboxes() # would be nicer to "cancel" all input events
516-
print("Loading previous screen")
517517
current_activity, current_screen = screen_stack.pop() # Remove current screen
518518
if current_activity:
519519
current_activity.onPause(current_screen)
520520
current_activity.onStop(current_screen)
521521
current_activity.onDestroy(current_screen)
522-
# System deletes the screen
523-
if current_screen:
524-
current_screen.delete()
525-
current_screen = None
526522
prev_activity, prev_screen = screen_stack[-1] # load previous screen
527-
lv.screen_load(prev_screen)
523+
print("loading prev_screen with animation")
524+
lv.screen_load_anim(prev_screen, lv.SCR_LOAD_ANIM.OVER_RIGHT, 500, 0, True) # True means delete the old screen, which is fine as we're going back and current_activity.onDestroy() was called
528525
if prev_activity:
529526
prev_activity.onResume(prev_screen)
530527
if len(screen_stack) == 1:
531528
open_bar()
532529

533530

534-
535531
# Would be better to somehow save other events, like clicks, and pass them down to the layers below if released with x < 60
536532
def back_swipe_cb(event):
537533
if drawer_open:

0 commit comments

Comments
 (0)