TestInputMethodManagerWrapper.java revision 68043e1e95eeb07d5cae7aca370b26518b0867d6
15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 51320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tuccipackage org.chromium.content.browser.test.util; 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.os.IBinder; 8868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles)import android.os.ResultReceiver; 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.view.inputmethod.EditorInfo; 10c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles)import android.view.inputmethod.InputConnection; 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import android.view.View; 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 13f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)import org.chromium.content.browser.ContentViewCore; 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import org.chromium.content.browser.input.InputMethodManagerWrapper; 151320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)public class TestInputMethodManagerWrapper extends InputMethodManagerWrapper { 171320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private final ContentViewCore mContentViewCore; 181320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private InputConnection mInputConnection; 191320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private int mShowSoftInputCounter = 0; 201320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private int mUpdateSelectionCounter = 0; 211320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci private EditorInfo mEditorInfo; 221320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) public TestInputMethodManagerWrapper(ContentViewCore contentViewCore) { 24f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) super(null); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mContentViewCore = contentViewCore; 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void restartInput(View view) { 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mEditorInfo = new EditorInfo(); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mInputConnection = mContentViewCore.onCreateInputConnection(mEditorInfo); 321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci } 33f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void showSoftInput(View view, int flags, ResultReceiver resultReceiver) { 361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci mShowSoftInputCounter++; 37f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) if (mInputConnection != null) return; 38f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) mEditorInfo = new EditorInfo(); 39f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) mInputConnection = mContentViewCore.onCreateInputConnection(mEditorInfo); 40f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public boolean isActive(View view) { 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) if (mInputConnection == null) return false; 45a1401311d1ab56c4ed0a474bd38c108f75cb0cd9Torne (Richard Coles) return true; 46868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) } 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 481320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci @Override 491320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public boolean hideSoftInputFromWindow(IBinder windowToken, int flags, 501320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci ResultReceiver resultReceiver) { 51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) boolean retVal = mInputConnection == null; 52f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) mInputConnection = null; 53f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return retVal; 54f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) @Override 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) public void updateSelection(View view, int selStart, int selEnd, 58c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) int candidatesStart, int candidatesEnd) { 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) mUpdateSelectionCounter++; 60f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 61f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci public int getShowSoftInputCounter() { 63f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return mShowSoftInputCounter; 64f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 65f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 66f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public int getUpdateSelectionCounter() { 67f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return mUpdateSelectionCounter; 68f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 69f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 70f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) public EditorInfo getEditorInfo() { 71f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) return mEditorInfo; 72f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) } 73f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)} 74f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles) 75f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)