| Index: content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestInputMethodManagerWrapper.java
|
| diff --git a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestInputMethodManagerWrapper.java b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestInputMethodManagerWrapper.java
|
| index 48f84f9f7c67a52ebbfa91974be450c92544242e..f40a583f5769f09f5fe5bae0a6c358c55196bf5b 100644
|
| --- a/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestInputMethodManagerWrapper.java
|
| +++ b/content/public/test/android/javatests/src/org/chromium/content/browser/test/util/TestInputMethodManagerWrapper.java
|
| @@ -8,8 +8,8 @@ import android.os.IBinder;
|
| import android.os.ResultReceiver;
|
| import android.view.View;
|
| import android.view.inputmethod.EditorInfo;
|
| -import android.view.inputmethod.InputConnection;
|
|
|
| +import org.chromium.base.ThreadUtils;
|
| import org.chromium.content.browser.ContentViewCore;
|
| import org.chromium.content.browser.input.InputMethodManagerWrapper;
|
|
|
| @@ -63,7 +63,7 @@ public class TestInputMethodManagerWrapper extends InputMethodManagerWrapper {
|
| }
|
|
|
| private final ContentViewCore mContentViewCore;
|
| - private InputConnection mInputConnection;
|
| + private boolean mShownOrWillBeShown;
|
| private int mShowSoftInputCounter;
|
| private int mHideSoftInputCounter;
|
| private int mUpdateSelectionCounter;
|
| @@ -79,29 +79,39 @@ public class TestInputMethodManagerWrapper extends InputMethodManagerWrapper {
|
| @Override
|
| public void restartInput(View view) {
|
| mEditorInfo = new EditorInfo();
|
| - mInputConnection = mContentViewCore.onCreateInputConnection(mEditorInfo);
|
| + mShownOrWillBeShown = true;
|
| + ThreadUtils.runOnUiThread(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mContentViewCore.onCreateInputConnection(mEditorInfo);
|
| + }
|
| + });
|
| }
|
|
|
| @Override
|
| public void showSoftInput(View view, int flags, ResultReceiver resultReceiver) {
|
| mShowSoftInputCounter++;
|
| - if (mInputConnection != null) return;
|
| + if (mShownOrWillBeShown) return;
|
| mEditorInfo = new EditorInfo();
|
| - mInputConnection = mContentViewCore.onCreateInputConnection(mEditorInfo);
|
| + ThreadUtils.runOnUiThread(new Runnable() {
|
| + @Override
|
| + public void run() {
|
| + mContentViewCore.onCreateInputConnection(mEditorInfo);
|
| + }
|
| + });
|
| }
|
|
|
| @Override
|
| public boolean isActive(View view) {
|
| - if (mInputConnection == null) return false;
|
| - return true;
|
| + return mShownOrWillBeShown;
|
| }
|
|
|
| @Override
|
| public boolean hideSoftInputFromWindow(IBinder windowToken, int flags,
|
| ResultReceiver resultReceiver) {
|
| mHideSoftInputCounter++;
|
| - boolean retVal = mInputConnection == null;
|
| - mInputConnection = null;
|
| + boolean retVal = !mShownOrWillBeShown;
|
| + mShownOrWillBeShown = false;
|
| return retVal;
|
| }
|
|
|
|
|