[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
This commit is contained in:
committed by
Wei Sheng Shih
parent
13459ada3a
commit
265cdc3a68
@@ -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);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user