Make an ending IME animation clean up old inputs for the same entry

This change fixes b/227115380 which is a fairly severe issue caused
by remote inputs remaining added to RemoteInputController because
their attempts to remove themselves on defocus/detach are all blocked
by conditions like an in-progress animation. I checked all the bugs
mentioned in the commit messages of the surrounding code, and the only
one that regressed was already broken (b/264552438).

Fixes: 227115380
Test: manual and atest
Change-Id: Iba895abdbe087d85f00ab8823580baed90117fef
This commit is contained in:
Justin Weir
2022-12-20 16:22:19 -05:00
parent a34b7aafe2
commit 910fe6f8b0

View File

@@ -303,7 +303,8 @@ public class RemoteInputView extends LinearLayout implements View.OnClickListene
mEntry.mRemoteEditImeVisible = editTextRootWindowInsets != null
&& editTextRootWindowInsets.isVisible(WindowInsets.Type.ime());
if (!mEntry.mRemoteEditImeVisible && !mEditText.mShowImeOnInputConnection) {
mController.removeRemoteInput(mEntry, mToken);
// Pass null to ensure all inputs are cleared for this entry b/227115380
mController.removeRemoteInput(mEntry, null);
}
}
}