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; |
} |