diff options
Diffstat (limited to 'core/java')
| -rw-r--r-- | core/java/com/android/internal/view/IInputConnectionWrapper.java | 61 |
1 files changed, 45 insertions, 16 deletions
diff --git a/core/java/com/android/internal/view/IInputConnectionWrapper.java b/core/java/com/android/internal/view/IInputConnectionWrapper.java index 191bdf3cbbd7..3e109c0dd3f5 100644 --- a/core/java/com/android/internal/view/IInputConnectionWrapper.java +++ b/core/java/com/android/internal/view/IInputConnectionWrapper.java @@ -50,6 +50,9 @@ import com.android.internal.inputmethod.InputConnectionProtoDumper; import java.lang.ref.WeakReference; +/** + * Takes care of remote method invocations of {@link InputConnection} in the IME client side. + */ public final class IInputConnectionWrapper extends IInputContext.Stub { private static final String TAG = "IInputConnectionWrapper"; private static final boolean DEBUG = false; @@ -78,6 +81,9 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { mServedView = new WeakReference<>(servedView); } + /** + * @return {@link InputConnection} to which incoming IPCs will be dispatched. + */ @Nullable public InputConnection getInputConnection() { synchronized (mLock) { @@ -99,6 +105,11 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { return mServedView.get(); } + /** + * Called when this object needs to be permanently deactivated. + * + * <p>Multiple invocations will be simply ignored.</p> + */ public void deactivate() { if (isFinished()) { // This is a small performance optimization. Still only the 1st call of @@ -136,6 +147,13 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { + "}"; } + /** + * Called by {@link InputMethodManager} to dump the editor state. + * + * @param proto {@link ProtoOutputStream} to which the editor state should be dumped. + * @param fieldId the ID to be passed to + * {@link DumpableInputConnection#dumpDebug(ProtoOutputStream, long)}. + */ public void dumpDebug(ProtoOutputStream proto, long fieldId) { synchronized (mLock) { // Check that the call is initiated in the main thread of the current InputConnection @@ -150,6 +168,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { } } + @Override public void getTextAfterCursor(int length, int flags, ICharSequenceResultCallback callback) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#getTextAfterCursor"); @@ -180,6 +199,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void getTextBeforeCursor(int length, int flags, ICharSequenceResultCallback callback) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#getTextBeforeCursor"); @@ -210,6 +230,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void getSelectedText(int flags, ICharSequenceResultCallback callback) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#getSelectedText"); @@ -240,11 +261,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } - /** - * Dispatches the request for retrieving surrounding text. - * - * <p>See {@link InputConnection#getSurroundingText(int, int, int)}. - */ + @Override public void getSurroundingText(int beforeLength, int afterLength, int flags, ISurroundingTextResultCallback callback) { dispatch(() -> { @@ -276,6 +293,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void getCursorCapsMode(int reqModes, IIntResultCallback callback) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#getCursorCapsMode"); @@ -306,6 +324,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void getExtractedText(ExtractedTextRequest request, int flags, IExtractedTextResultCallback callback) { dispatch(() -> { @@ -337,6 +356,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void commitText(CharSequence text, int newCursorPosition) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#commitText"); @@ -353,6 +373,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void commitCompletion(CompletionInfo text) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#commitCompletion"); @@ -369,6 +390,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void commitCorrection(CorrectionInfo info) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#commitCorrection"); @@ -385,6 +407,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void setSelection(int start, int end) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#setSelection"); @@ -401,6 +424,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void performEditorAction(int id) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#performEditorAction"); @@ -417,6 +441,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void performContextMenuAction(int id) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#performContextMenuAction"); @@ -433,6 +458,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void setComposingRegion(int start, int end) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#setComposingRegion"); @@ -449,6 +475,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void setComposingText(CharSequence text, int newCursorPosition) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#setComposingText"); @@ -465,6 +492,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void finishComposingText() { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#finishComposingText"); @@ -493,6 +521,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void sendKeyEvent(KeyEvent event) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#sendKeyEvent"); @@ -509,6 +538,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void clearMetaKeyStates(int states) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#clearMetaKeyStates"); @@ -525,6 +555,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void deleteSurroundingText(int beforeLength, int afterLength) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#deleteSurroundingText"); @@ -541,6 +572,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void deleteSurroundingTextInCodePoints(int beforeLength, int afterLength) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, @@ -558,6 +590,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void beginBatchEdit() { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#beginBatchEdit"); @@ -574,6 +607,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void endBatchEdit() { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#endBatchEdit"); @@ -590,11 +624,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } - /** - * Dispatches the request for performing spell check. - * - * @see InputConnection#performSpellCheck() - */ + @Override public void performSpellCheck() { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#performSpellCheck"); @@ -611,6 +641,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void performPrivateCommand(String action, Bundle data) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#performPrivateCommand"); @@ -627,6 +658,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void requestCursorUpdates(int cursorUpdateMode, IBooleanResultCallback callback) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#requestCursorUpdates"); @@ -651,7 +683,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } - public void closeConnection() { + private void closeConnection() { dispatch(() -> { // Note that we do not need to worry about race condition here, because 1) mFinished is // updated only inside this block, and 2) the code here is running on a Handler hence we @@ -684,6 +716,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } + @Override public void commitContent(InputContentInfo inputContentInfo, int flags, Bundle opts, IBooleanResultCallback callback) { dispatch(() -> { @@ -715,11 +748,7 @@ public final class IInputConnectionWrapper extends IInputContext.Stub { }); } - /** - * Dispatches the request for setting ime consumes input. - * - * <p>See {@link InputConnection#setImeConsumesInput(boolean)}. - */ + @Override public void setImeConsumesInput(boolean imeConsumesInput) { dispatch(() -> { Trace.traceBegin(Trace.TRACE_TAG_INPUT, "InputConnection#setImeConsumesInput"); |
