Merge "Add more JavaDoc to InputConnectionWrapper." into nyc-dev

This commit is contained in:
Yohei Yukawa
2016-03-02 23:35:34 +00:00
committed by Android (Google) Code Review

View File

@@ -21,13 +21,22 @@ import android.os.Handler;
import android.view.KeyEvent;
/**
* <p>Wrapper class for proxying calls to another InputConnection. Subclass
* and have fun!
* <p>Wrapper class for proxying calls to another InputConnection. Subclass and have fun!
*/
public class InputConnectionWrapper implements InputConnection {
private InputConnection mTarget;
final boolean mMutable;
/**
* Initializes a wrapper.
*
* <p><b>Caveat:</b> Although the system can accept {@code (InputConnection) null} in some
* places, you cannot emulate such a behavior by non-null {@link InputConnectionWrapper} that
* has {@code null} in {@code target}.</p>
* @param target the {@link InputConnection} to be proxied.
* @param mutable set {@code true} to protect this object from being reconfigured to target
* another {@link InputConnection}. Note that this is ignored while the target is {@code null}.
*/
public InputConnectionWrapper(InputConnection target, boolean mutable) {
mMutable = mutable;
mTarget = target;
@@ -35,6 +44,12 @@ public class InputConnectionWrapper implements InputConnection {
/**
* Change the target of the input connection.
*
* <p><b>Caveat:</b> Although the system can accept {@code (InputConnection) null} in some
* places, you cannot emulate such a behavior by non-null {@link InputConnectionWrapper} that
* has {@code null} in {@code target}.</p>
* @param target the {@link InputConnection} to be proxied.
* @throws SecurityException when this wrapper has non-null target and is immutable.
*/
public void setTarget(InputConnection target) {
if (mTarget != null && !mMutable) {
@@ -42,99 +57,195 @@ public class InputConnectionWrapper implements InputConnection {
}
mTarget = target;
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public CharSequence getTextBeforeCursor(int n, int flags) {
return mTarget.getTextBeforeCursor(n, flags);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public CharSequence getTextAfterCursor(int n, int flags) {
return mTarget.getTextAfterCursor(n, flags);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public CharSequence getSelectedText(int flags) {
return mTarget.getSelectedText(flags);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public int getCursorCapsMode(int reqModes) {
return mTarget.getCursorCapsMode(reqModes);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) {
return mTarget.getExtractedText(request, flags);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean deleteSurroundingTextInCodePoints(int beforeLength, int afterLength) {
return mTarget.deleteSurroundingTextInCodePoints(beforeLength, afterLength);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean deleteSurroundingText(int beforeLength, int afterLength) {
return mTarget.deleteSurroundingText(beforeLength, afterLength);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean setComposingText(CharSequence text, int newCursorPosition) {
return mTarget.setComposingText(text, newCursorPosition);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean setComposingRegion(int start, int end) {
return mTarget.setComposingRegion(start, end);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean finishComposingText() {
return mTarget.finishComposingText();
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean commitText(CharSequence text, int newCursorPosition) {
return mTarget.commitText(text, newCursorPosition);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean commitCompletion(CompletionInfo text) {
return mTarget.commitCompletion(text);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean commitCorrection(CorrectionInfo correctionInfo) {
return mTarget.commitCorrection(correctionInfo);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean setSelection(int start, int end) {
return mTarget.setSelection(start, end);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean performEditorAction(int editorAction) {
return mTarget.performEditorAction(editorAction);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean performContextMenuAction(int id) {
return mTarget.performContextMenuAction(id);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean beginBatchEdit() {
return mTarget.beginBatchEdit();
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean endBatchEdit() {
return mTarget.endBatchEdit();
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean sendKeyEvent(KeyEvent event) {
return mTarget.sendKeyEvent(event);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean clearMetaKeyStates(int states) {
return mTarget.clearMetaKeyStates(states);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean reportFullscreenMode(boolean enabled) {
return mTarget.reportFullscreenMode(enabled);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean performPrivateCommand(String action, Bundle data) {
return mTarget.performPrivateCommand(action, data);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public boolean requestCursorUpdates(int cursorUpdateMode) {
return mTarget.requestCursorUpdates(cursorUpdateMode);
}
/**
* {@inheritDoc}
* @throws NullPointerException if the target is {@code null}.
*/
public Handler getHandler() {
return mTarget.getHandler();
}