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.)

0 ответов

Другие вопросы по тегам