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

Skip to content
Commit daa6695c authored by Yohei Yukawa's avatar Yohei Yukawa
Browse files

Add IMM#invalidateInput()

Historically TextView#setText() has internally called

  InputMethodManager#restartInput(View)

simply because the text seen from the IME is going to be out-of-sync.

Although this behavior is semantically helpful for IMEs, especially
after the initial surrounding text information became available in
EditorInfo, issuing a sync IPC from the calling thread (UI thread
actually) is not plausible from the performance perspective.

This CL fills this gap by adding a new API

  InputMethodManager#invalidateInput(View)

for the scenario where apps independently modify the text with keeping
other text metadata such as input-type to be the same.

All the observable behaviors from the IME remain to be the same as

  InputMethodManager#restartInput(View).

For instance, any pending tasks that are already issued with

  InputMethodService#getCurrentInputConnection()

will be effectively cancelled by using a recently added mechanism [1].

 [1]: I383c3958d2ac1a8d217706509fa12a92b381bbb3

Fix: 203086369
Test: atest -c CtsInputMethodTestCases:InputMethodStartInputLifecycleTest
Change-Id: I3161755779080f98bcef0e47dd0c5247d8a3a256
parent 2e9ec744
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment