Android Custom InputConnection вновь не работает
У меня есть пользовательский веб-просмотр, который я использую (через contenteditable
) в качестве текстового редактора. Для размещения нескольких вещей, у меня также есть обычай InputConnection
,
До недавнего времени это работало нормально - я подозреваю, что недавно появился Android /WebView
Обновить.
Я строю InputConnection
переопределив мой WebView
класс получен onCreateInputConnection
:
@Override
public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
InputConnection ic = super.onCreateInputConnection(outAttrs);
if (ic != null) {
InputConnection mic = new MyInputConnection(ic);
return mic;
}
return ic;
}
MyInputConnection
похоже:
private class MyInputConnection implements InputConnection {
private InputConnection IC;
// Must be implemented (at least pre-Android-N)
@Override
public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) {
return IC.getExtractedText(request, flags);
}
...
}
Раньше это прекрасно работало. Но теперь я получаю:
E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.AssertionError
at org.chromium.content.browser.input.ImeUtils.checkCondition(ImeUtils.java:1)
at org.chromium.content.browser.input.ThreadedInputConnection.assertOnImeThread(ThreadedInputConnection.java:64)
at org.chromium.content.browser.input.ThreadedInputConnection.getExtractedText(ThreadedInputConnection.java:105)
at com.myapp.MyWebView$MyInputConnection.getExtractedText(MyWebView.java:106)
at com.android.internal.view.IInputConnectionWrapper.executeMessage(IInputConnectionWrapper.java:326)
at com.android.internal.view.IInputConnectionWrapper$MyHandler.handleMessage(IInputConnectionWrapper.java:85)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:164)
at android.app.ActivityThread.main(ActivityThread.java:6494)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:438)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:807)
Таким образом, кажется, что как-то не нравится поток, на котором работает мой InputConnection? Хотя это должно быть WebView
оригинал InputConnection
?
Как я уже сказал, загадочная часть в том, что это работало пару дней назад. (По крайней мере, теперь это не работает с Gboard и SwiftKey, но, как ни странно, все еще работает так же, как и с клавиатурой Hacker's.)