public class

InputConnectionWrapper

extends Object
implements InputConnection
java.lang.Object
   ↳ android.view.inputmethod.InputConnectionWrapper

Class Overview

Wrapper class for proxying calls to another InputConnection. Subclass and have fun!

Summary

[Expand]
Inherited Constants
From interface android.view.inputmethod.InputConnection
Public Constructors
InputConnectionWrapper(InputConnection target, boolean mutable)
Public Methods
boolean beginBatchEdit()
Tell the editor that you are starting a batch of editor operations.
boolean clearMetaKeyStates(int states)
Clear the given meta key pressed states in the given input connection.
boolean commitCompletion(CompletionInfo text)
Commit a completion the user has selected from the possible ones previously reported to InputMethodSession.displayCompletions().
boolean commitText(CharSequence text, int newCursorPosition)
Commit text to the text box and set the new cursor position.
boolean deleteSurroundingText(int leftLength, int rightLength)
Delete leftLength characters of text before the current cursor position, and delete rightLength characters of text after the current cursor position, excluding composing text.
boolean endBatchEdit()
Tell the editor that you are done with a batch edit previously initiated with endBatchEdit().
boolean finishComposingText()
Have the text editor finish whatever composing text is currently active.
int getCursorCapsMode(int reqModes)
Retrieve the current capitalization mode in effect at the current cursor position in the text.
ExtractedText getExtractedText(ExtractedTextRequest request, int flags)
Retrieve the current text in the input connection's editor, and monitor for any changes to it.
CharSequence getTextAfterCursor(int n, int flags)
Get n characters of text after the current cursor position.
CharSequence getTextBeforeCursor(int n, int flags)
Get n characters of text before the current cursor position.
boolean performContextMenuAction(int id)
Perform a context menu action on the field.
boolean performEditorAction(int editorAction)
Have the editor perform an action it has said it can do.
boolean performPrivateCommand(String action, Bundle data)
API to send private commands from an input method to its connected editor.
boolean reportFullscreenMode(boolean enabled)
Called by the IME to tell the client when it switches between fullscreen and normal modes.
boolean sendKeyEvent(KeyEvent event)
Send a key event to the process that is currently attached through this input connection.
boolean setComposingText(CharSequence text, int newCursorPosition)
Set composing text around the current cursor position with the given text, and set the new cursor position.
boolean setSelection(int start, int end)
Set the selection of the text editor.
void setTarget(InputConnection target)
Change the target of the input connection.
[Expand]
Inherited Methods
From class java.lang.Object
From interface android.view.inputmethod.InputConnection

Public Constructors

public InputConnectionWrapper (InputConnection target, boolean mutable)

Public Methods

public boolean beginBatchEdit ()

Tell the editor that you are starting a batch of editor operations. The editor will try to avoid sending you updates about its state until endBatchEdit() is called.

public boolean clearMetaKeyStates (int states)

Clear the given meta key pressed states in the given input connection.

Parameters
states The states to be cleared, may be one or more bits as per KeyEvent.getMetaState().
Returns
  • Returns true on success, false if the input connection is no longer valid.

public boolean commitCompletion (CompletionInfo text)

Commit a completion the user has selected from the possible ones previously reported to InputMethodSession.displayCompletions(). This will result in the same behavior as if the user had selected the completion from the actual UI.

Parameters
text The committed completion.
Returns
  • Returns true on success, false if the input connection is no longer valid.

public boolean commitText (CharSequence text, int newCursorPosition)

Commit text to the text box and set the new cursor position. Any composing text set previously will be removed automatically.

Parameters
text The committed text.
newCursorPosition The new cursor position around the text. If > 0, this is relative to the end of the text - 1; if <= 0, this is relative to the start of the text. So a value of 1 will always advance you to the position after the full text being inserted. Note that this means you can't position the cursor within the text, because the editor can make modifications to the text you are providing so it is not possible to correctly specify locations there.
Returns
  • Returns true on success, false if the input connection is no longer valid.

public boolean deleteSurroundingText (int leftLength, int rightLength)

Delete leftLength characters of text before the current cursor position, and delete rightLength characters of text after the current cursor position, excluding composing text.

Parameters
leftLength The number of characters to be deleted before the current cursor position.
rightLength The number of characters to be deleted after the current cursor position.
Returns
  • Returns true on success, false if the input connection is no longer valid.

public boolean endBatchEdit ()

Tell the editor that you are done with a batch edit previously initiated with endBatchEdit().

public boolean finishComposingText ()

Have the text editor finish whatever composing text is currently active. This simply leaves the text as-is, removing any special composing styling or other state that was around it. The cursor position remains unchanged.

public int getCursorCapsMode (int reqModes)

Retrieve the current capitalization mode in effect at the current cursor position in the text. See TextUtils.getCapsMode for more information.

This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a 0 is returned.

Parameters
reqModes The desired modes to retrieve, as defined by TextUtils.getCapsMode. These constants are defined so that you can simply pass the current TextBoxAttribute.contentType value directly in to here.
Returns
  • Returns the caps mode flags that are in effect.

public ExtractedText getExtractedText (ExtractedTextRequest request, int flags)

Retrieve the current text in the input connection's editor, and monitor for any changes to it. This function returns with the current text, and optionally the input connection can send updates to the input method when its text changes.

This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a null is returned.

Parameters
request Description of how the text should be returned.
flags Additional options to control the client, either 0 or GET_EXTRACTED_TEXT_MONITOR.
Returns
  • Returns an ExtractedText object describing the state of the text view and containing the extracted text itself.

public CharSequence getTextAfterCursor (int n, int flags)

Get n characters of text after the current cursor position.

This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a null is returned.

Parameters
n The expected length of the text.
flags Supplies additional options controlling how the text is returned. May be either 0 or GET_TEXT_WITH_STYLES.
Returns
  • Returns the text after the cursor position; the length of the returned text might be less than n.

public CharSequence getTextBeforeCursor (int n, int flags)

Get n characters of text before the current cursor position.

This method may fail either if the input connection has become invalid (such as its process crashing) or the client is taking too long to respond with the text (it is given a couple seconds to return). In either case, a null is returned.

Parameters
n The expected length of the text.
flags Supplies additional options controlling how the text is returned. May be either 0 or GET_TEXT_WITH_STYLES.
Returns
  • Returns the text before the cursor position; the length of the returned text might be less than n.

public boolean performContextMenuAction (int id)

Perform a context menu action on the field. The given id may be one of: selectAll, startSelectingText, stopSelectingText, cut, copy, paste, copyUrl, or switchInputMethod

public boolean performEditorAction (int editorAction)

Have the editor perform an action it has said it can do.

Parameters
editorAction This must be one of the action constants for EditorInfo.editorType, such as EditorInfo.EDITOR_ACTION_GO.
Returns
  • Returns true on success, false if the input connection is no longer valid.

public boolean performPrivateCommand (String action, Bundle data)

API to send private commands from an input method to its connected editor. This can be used to provide domain-specific features that are only known between certain input methods and their clients. Note that because the InputConnection protocol is asynchronous, you have no way to get a result back or know if the client understood the command; you can use the information in EditorInfo to determine if a client supports a particular command.

Parameters
action Name of the command to be performed. This must be a scoped name, i.e. prefixed with a package name you own, so that different developers will not create conflicting commands.
data Any data to include with the command.
Returns
  • Returns true if the command was sent (whether or not the associated editor understood it), false if the input connection is no longer valid.

public boolean reportFullscreenMode (boolean enabled)

Called by the IME to tell the client when it switches between fullscreen and normal modes. This will normally be called for you by the standard implementation of InputMethodService.

public boolean sendKeyEvent (KeyEvent event)

Send a key event to the process that is currently attached through this input connection. The event will be dispatched like a normal key event, to the currently focused; this generally is the view that is providing this InputConnection, but due to the asynchronous nature of this protocol that can not be guaranteed and the focus may have changed by the time the event is received.

This method can be used to send key events to the application. For example, an on-screen keyboard may use this method to simulate a hardware keyboard. There are three types of standard keyboards, numeric (12-key), predictive (20-key) and ALPHA (QWERTY). You can specify the keyboard type by specify the device id of the key event.

You will usually want to set the flag KeyEvent.FLAG_SOFT_KEYBOARD on all key event objects you give to this API; the flag will not be set for you.

Parameters
event The key event.
Returns
  • Returns true on success, false if the input connection is no longer valid.

public boolean setComposingText (CharSequence text, int newCursorPosition)

Set composing text around the current cursor position with the given text, and set the new cursor position. Any composing text set previously will be removed automatically.

Parameters
text The composing text with styles if necessary. If no style object attached to the text, the default style for composing text is used. See {#link android.text.Spanned} for how to attach style object to the text. {#link android.text.SpannableString} and {#link android.text.SpannableStringBuilder} are two implementations of the interface {#link android.text.Spanned}.
newCursorPosition The new cursor position around the text. If > 0, this is relative to the end of the text - 1; if <= 0, this is relative to the start of the text. So a value of 1 will always advance you to the position after the full text being inserted. Note that this means you can't position the cursor within the text, because the editor can make modifications to the text you are providing so it is not possible to correctly specify locations there.
Returns
  • Returns true on success, false if the input connection is no longer valid.

public boolean setSelection (int start, int end)

Set the selection of the text editor. To set the cursor position, start and end should have the same value.

Returns
  • Returns true on success, false if the input connection is no longer valid.

public void setTarget (InputConnection target)

Change the target of the input connection.