IME: make WindowInsetsController.show(ime()) more robust

We need to make sure the served view is up-to-date, otherwise we might
erroneously reject or allow a request to show the IME via WindowInsetsController.

Fixes: 190217891
Test: atest WindowInsetsControllerTests#testShowIme_immediatelyAfterDetachAndReattach
Change-Id: Ib41412d5d5636bdc236aa94c4ee4702686b6d10f
This commit is contained in:
Adrian Roos
2021-08-18 17:00:04 +02:00
parent 6171d87bec
commit e6b4e24b30

View File

@@ -2194,6 +2194,7 @@ public final class InputMethodManager {
* @hide * @hide
*/ */
public boolean requestImeShow(IBinder windowToken) { public boolean requestImeShow(IBinder windowToken) {
checkFocus();
synchronized (mH) { synchronized (mH) {
final View servedView = getServedViewLocked(); final View servedView = getServedViewLocked();
if (servedView == null || servedView.getWindowToken() != windowToken) { if (servedView == null || servedView.getWindowToken() != windowToken) {