| /* |
| * Copyright (C) 2007-2008 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); you may not |
| * use this file except in compliance with the License. You may obtain a copy of |
| * the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
| * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
| * License for the specific language governing permissions and limitations under |
| * the License. |
| */ |
| |
| package android.view.inputmethod; |
| |
| import android.os.Bundle; |
| import android.view.KeyEvent; |
| |
| /** |
| * <p>Wrapper class for proxying calls to another InputConnection. Subclass |
| * and have fun! |
| */ |
| public class InputConnectionWrapper implements InputConnection { |
| private InputConnection mTarget; |
| final boolean mMutable; |
| |
| public InputConnectionWrapper(InputConnection target, boolean mutable) { |
| mMutable = mutable; |
| mTarget = target; |
| } |
| |
| /** |
| * Change the target of the input connection. |
| */ |
| public void setTarget(InputConnection target) { |
| if (mTarget != null && !mMutable) { |
| throw new SecurityException("not mutable"); |
| } |
| mTarget = target; |
| } |
| |
| public CharSequence getTextBeforeCursor(int n, int flags) { |
| return mTarget.getTextBeforeCursor(n, flags); |
| } |
| |
| public CharSequence getTextAfterCursor(int n, int flags) { |
| return mTarget.getTextAfterCursor(n, flags); |
| } |
| |
| public CharSequence getSelectedText(int flags) { |
| return mTarget.getSelectedText(flags); |
| } |
| |
| public int getCursorCapsMode(int reqModes) { |
| return mTarget.getCursorCapsMode(reqModes); |
| } |
| |
| public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) { |
| return mTarget.getExtractedText(request, flags); |
| } |
| |
| public boolean deleteSurroundingText(int beforeLength, int afterLength) { |
| return mTarget.deleteSurroundingText(beforeLength, afterLength); |
| } |
| |
| public boolean setComposingText(CharSequence text, int newCursorPosition) { |
| return mTarget.setComposingText(text, newCursorPosition); |
| } |
| |
| public boolean setComposingRegion(int start, int end) { |
| return mTarget.setComposingRegion(start, end); |
| } |
| |
| public boolean finishComposingText() { |
| return mTarget.finishComposingText(); |
| } |
| |
| public boolean commitText(CharSequence text, int newCursorPosition) { |
| return mTarget.commitText(text, newCursorPosition); |
| } |
| |
| public boolean commitCompletion(CompletionInfo text) { |
| return mTarget.commitCompletion(text); |
| } |
| |
| public boolean commitCorrection(CorrectionInfo correctionInfo) { |
| return mTarget.commitCorrection(correctionInfo); |
| } |
| |
| public boolean setSelection(int start, int end) { |
| return mTarget.setSelection(start, end); |
| } |
| |
| public boolean performEditorAction(int editorAction) { |
| return mTarget.performEditorAction(editorAction); |
| } |
| |
| public boolean performContextMenuAction(int id) { |
| return mTarget.performContextMenuAction(id); |
| } |
| |
| public boolean beginBatchEdit() { |
| return mTarget.beginBatchEdit(); |
| } |
| |
| public boolean endBatchEdit() { |
| return mTarget.endBatchEdit(); |
| } |
| |
| public boolean sendKeyEvent(KeyEvent event) { |
| return mTarget.sendKeyEvent(event); |
| } |
| |
| public boolean clearMetaKeyStates(int states) { |
| return mTarget.clearMetaKeyStates(states); |
| } |
| |
| public boolean reportFullscreenMode(boolean enabled) { |
| return mTarget.reportFullscreenMode(enabled); |
| } |
| |
| public boolean performPrivateCommand(String action, Bundle data) { |
| return mTarget.performPrivateCommand(action, data); |
| } |
| } |