Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dfe8620f authored by Ats Jenk's avatar Ats Jenk
Browse files

Add external gate transition to TaskViewTransitions

In some scenarios we want to block the TaskView transitions from running
until we complete some other work.
To accomplish this we were adding already running transitions as
external transitions to the TaskViewTransitions pending queue.

There was a scenario where these could not be cleared from the queue
anymore. If the queue already had something in there, the queued
external transition was not started immediately.
If we tried to clear this external transition from the queue, before it
was started, the removal failed. As the removal happens based on the
started transition identified. Which never got set.

The removal code was not aware of the failure to clear the external
transition. And did not retry.
Once the TaskViewTransitions queue reached the external transition, it
got started, but because the cleanup for it was already done, this
transition never got cleared from the pending queue.

This caused the queue to get stuck. Where it would not process any new
TaskView transitions.

To avoid this issue, we are adding a new way to enqueue external
transitions. If they do not need to be started, as in they are already
running, by the time we add them to the queue, add them as already
claimed.
They will still hold up the queue and require to be cleared, but this
ensures that they always can be cleared. And do not neccesarily need to
be started.

Bug: 433879169
Test: atest WMShellUnitTests:TaskViewTransitionsTest
Test: atest WMShellUnitTests:BubbleTransitionsTest
Flag: EXEMPT bugfix
Change-Id: Ia53b738755c29177ad1ebe3382d29e1ebc0a80bf
parent 2d27dcd6
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment