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

Commit 265cdc3a authored by wilsonshih's avatar wilsonshih Committed by Wei Sheng Shih
Browse files

[ShellTransit] Reset alpha in buildFinishTransaction

The alpha of a window container can be 0 after it play a fade-out app
transition, (e.g. start/finish activity with overridePendingTransition)
And since there doesn't have another animation layer like legacy
transition do, that window will stay invisible because of alpha=0,
unless somewhere trigger another animation with apply a new alpha on it.
Also it won't able to receive touch event since the alpha is 0.
To make it visible, always reset the alpha to 1 in
buildFinishTransaction.

Bug: 263439418
Test: manual, finish activity with an overridePendingTransition which
apply fade-out animation for the entering one, the activity should be
visible after animation finish.

Change-Id: I5be555e33b76aa799e1f96b3ea340d365bad4c66
parent 13459ada
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -370,8 +370,6 @@ public class Transitions implements RemoteCallable<Transitions> {
                        // If this is a transferred starting window, we want it immediately visible.
                        && (change.getFlags() & FLAG_STARTING_WINDOW_TRANSFER_RECIPIENT) == 0) {
                    t.setAlpha(leash, 0.f);
                    // fix alpha in finish transaction in case the animator itself no-ops.
                    finishT.setAlpha(leash, 1.f);
                }
            } else if (mode == TRANSIT_CLOSE || mode == TRANSIT_TO_BACK) {
                finishT.hide(leash);
+1 −0
Original line number Diff line number Diff line
@@ -653,6 +653,7 @@ class Transition implements BLASTSyncEngine.TransactionReadyListener {
                t.setCornerRadius(targetLeash, 0);
                t.setShadowRadius(targetLeash, 0);
                t.setMatrix(targetLeash, 1, 0, 0, 1);
                t.setAlpha(targetLeash, 1);
                // The bounds sent to the transition is always a real bounds. This means we lose
                // information about "null" bounds (inheriting from parent). Core will fix-up
                // non-organized window surface bounds; however, since Core can't touch organized