diff options
| author | 2023-03-10 02:54:06 +0000 | |
|---|---|---|
| committer | 2023-03-14 03:17:19 +0000 | |
| commit | 936645000f49e9f50e29d2d6f0b9d3e0d12e14c8 (patch) | |
| tree | 946083d1138acc3ea9a669dab614dd98fb744be3 | |
| parent | 34ab67a0a0bf0195d132a4114f10444709d13691 (diff) | |
Workaround to force show TaskFragment while back gesture animating.
Unlike Task and ActivityRecord, the TaskFragment won't show it's
surface during animating, and the surface can be hide after close
transition in Transitions#setupStartState.
Bug: 271599041
Test: verify the TaskFragment can show during back gesture animation.
Change-Id: I9a3d56d3e6c0cc9f735d82f99fd1fc04c329d690
| -rw-r--r-- | services/core/java/com/android/server/wm/BackNavigationController.java | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/wm/BackNavigationController.java b/services/core/java/com/android/server/wm/BackNavigationController.java index f9f972c20ac6..b67bc62e52f1 100644 --- a/services/core/java/com/android/server/wm/BackNavigationController.java +++ b/services/core/java/com/android/server/wm/BackNavigationController.java @@ -862,8 +862,16 @@ class BackNavigationController { WindowContainer target, boolean isOpen) { final BackWindowAnimationAdaptor adaptor = new BackWindowAnimationAdaptor(target, isOpen); - target.startAnimation(target.getPendingTransaction(), adaptor, false /* hidden */, - ANIMATION_TYPE_PREDICT_BACK); + final SurfaceControl.Transaction pt = target.getPendingTransaction(); + target.startAnimation(pt, adaptor, false /* hidden */, ANIMATION_TYPE_PREDICT_BACK); + // Workaround to show TaskFragment which can be hide in Transitions and won't show + // during isAnimating. + if (isOpen && target.asActivityRecord() != null) { + final TaskFragment fragment = target.asActivityRecord().getTaskFragment(); + if (fragment != null) { + pt.show(fragment.mSurfaceControl); + } + } return adaptor; } |