Do not cleanup IME window if show is requested.
This CL fixes a race condition for IMM#showSoftInput, which surfaces when it's called during an IME hide animation. IMM#showSoftInput ends up calling WIC#show asynchronously, but at that time the running IME hide animation may have already been finished successfully, and WIC#show may fail to cancel the hide animation (then the cleanup IMM#notifyImeHidden hides the IME again disruptively). I think a clean fix is to have IMM#showSoftInput call WIC#show synchronously. However, this requires a significant refactoring. As a short term fix, this CL adds a boolean field indicating whether or not IMM#showSoftInput has been called. If it's called, we skip calling IMM#notifyImeHidden. Bug: 221483132 Bug: 225674038 Test: atest InputMethodStressTest Test: atest CtsInputMethodTestCases Test: atest WindowInsetsAnimationControllerTests Change-Id: I36d570630085d0bc34097a2433208601dc9cb0fd (cherry picked from commit 4c607982) Merged-In: I36d570630085d0bc34097a2433208601dc9cb0fd
Loading
Please register or sign in to comment