Re-compute IME target after the transition finished
This replaces previous approach (440f068) with a simpler condition
at a more explicit place.
The old condition !isPlaying is always satisfied in normal traversal
that causes endless surface placement. And it might be better to
keep checkAppTransitionReady focus on legacy things, to avoid mixing
unnecessary operation while using shell transition.
Bug: 210390668
Test: 1. Enabling shell transition.
2. Launch Settings and click search bar to show IME.
3. Swipe from bottom to home.
4. Click the search bar of app drawer, IME should show.
Change-Id: I89cdbcd19710720383f4488d859a7453a14c8c0f
This commit is contained in:
@@ -1037,13 +1037,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
|
||||
}
|
||||
}
|
||||
|
||||
final boolean curDisplayInTransitNotAnimate =
|
||||
// legacy transition
|
||||
(curDisplay.mAppTransition.isRunning() && !curDisplay.isAppTransitioning())
|
||||
// shell transition
|
||||
|| (curDisplay.mTransitionController.isShellTransitionsEnabled()
|
||||
&& !curDisplay.mTransitionController.isPlaying());
|
||||
if (curDisplayInTransitNotAnimate) {
|
||||
if (curDisplay.mAppTransition.isRunning() && !curDisplay.isAppTransitioning()) {
|
||||
// We have finished the animation of an app transition. To do this, we have
|
||||
// delayed a lot of operations like showing and hiding apps, moving apps in
|
||||
// Z-order, etc.
|
||||
|
||||
@@ -497,6 +497,11 @@ class Transition extends Binder implements BLASTSyncEngine.TransactionReadyListe
|
||||
if (fadeRotationController != null) {
|
||||
fadeRotationController.onTransitionFinished();
|
||||
}
|
||||
// Transient-launch activities cannot be IME target (WindowState#canBeImeTarget),
|
||||
// so re-compute in case the IME target is changed after transition.
|
||||
if (mTransientLaunches != null) {
|
||||
mTargetDisplay.computeImeTarget(true /* updateImeTarget */);
|
||||
}
|
||||
}
|
||||
|
||||
void abort() {
|
||||
|
||||
Reference in New Issue
Block a user