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

Commit 359ba05c authored by Riddle Hsu's avatar Riddle Hsu
Browse files

Re-compute IME target after the transition finished

This replaces previous approach (440f0683) 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
parent d29ddfd1
Loading
Loading
Loading
Loading
+1 −7
Original line number Diff line number Diff line
@@ -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.
+5 −0
Original line number Diff line number Diff line
@@ -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() {