Finish unfold transition after timeout

Adds a safeguard to finish the unfold Shell transition animation in
case if UnfoldTransitionProgressProvider won't send the 'animation
finish' event or it has already sent it by the time we received
startAnimation.

This should happen rarely, either due to a timing difference
(startAnimation is called way too late, more than ~1 second
after turning on the screen) or if there is a bug in the implementation
causing the animation not to finish. These problems should be addressed
as part of b/318803244.

Bug: 372319646
Test: atest UnfoldTransitionHandlerTest
Test: remove transtion finishing, fold/unfold
  => verify that transition is finished after timeout
Test: fold multiple times quickly using a script
  => verify all transitions are finished
Flag: EXEMPT bugfix
Change-Id: I75176986ac815c45216731ffa42225d2748f3456
3 files changed