From e3797a15fbf769a0abcbe121cfd33b4b658aea1e Mon Sep 17 00:00:00 2001 From: satok Date: Tue, 22 Mar 2011 06:34:48 +0900 Subject: Removed APIs for setCorrectionSpan from InputConnection ("setCorrectionSpan" was added in Id3abc9ea4d11753cd ) Also.. - Added a class java doc for CorrectionSpan - Removed FLAG_DEFAULT - Changed the return type of getSuggestions from Array to String[] Change-Id: If5eb091e307a7a40c5b4a70ec1fe6059ecd9fb2d --- api/current.xml | 105 +-------------------- core/java/android/text/style/CorrectionSpan.java | 46 +++++---- .../view/inputmethod/BaseInputConnection.java | 13 +-- .../android/view/inputmethod/InputConnection.java | 8 -- .../view/inputmethod/InputConnectionWrapper.java | 10 +- core/java/android/widget/TextView.java | 13 --- .../internal/view/IInputConnectionWrapper.java | 29 ------ .../com/android/internal/view/IInputContext.aidl | 3 - .../internal/view/InputConnectionWrapper.java | 14 +-- .../internal/widget/EditableInputConnection.java | 9 -- 10 files changed, 29 insertions(+), 221 deletions(-) diff --git a/api/current.xml b/api/current.xml index 059322d16f1f..555f8040d495 100644 --- a/api/current.xml +++ b/api/current.xml @@ -202139,7 +202139,7 @@ > - + @@ -202153,7 +202153,7 @@ > - + @@ -202169,7 +202169,7 @@ - + @@ -202241,8 +202241,8 @@ visibility="public" > - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - mSuggests = new ArrayList(); + private final String[] mSuggestions; private final String mLocaleString; private final String mOriginalString; /* @@ -58,35 +56,33 @@ public class CorrectionSpan implements ParcelableSpan { /** * @param context Context for the application - * @param suggests Suggests for the string under the span + * @param suggestions Suggestions for the string under the span * @param flags Additional flags indicating how this span is handled in TextView */ - public CorrectionSpan(Context context, List suggests, int flags) { - this(context, null, suggests, flags, null); + public CorrectionSpan(Context context, String[] suggestions, int flags) { + this(context, null, suggestions, flags, null); } /** * @param locale Locale of the suggestions - * @param suggests Suggests for the string under the span + * @param suggestions Suggestions for the string under the span * @param flags Additional flags indicating how this span is handled in TextView */ - public CorrectionSpan(Locale locale, List suggests, int flags) { - this(null, locale, suggests, flags, null); + public CorrectionSpan(Locale locale, String[] suggestions, int flags) { + this(null, locale, suggestions, flags, null); } /** * @param context Context for the application * @param locale locale Locale of the suggestions - * @param suggests suggests Suggests for the string under the span + * @param suggestions Suggestions for the string under the span * @param flags Additional flags indicating how this span is handled in TextView - * @param originalString originalString for suggests + * @param originalString originalString for suggestions */ - public CorrectionSpan(Context context, Locale locale, List suggests, int flags, + public CorrectionSpan(Context context, Locale locale, String[] suggestions, int flags, String originalString) { - final int N = Math.min(SUGGESTS_MAX_SIZE, suggests.size()); - for (int i = 0; i < N; ++i) { - mSuggests.add(suggests.get(i)); - } + final int N = Math.min(SUGGESTIONS_MAX_SIZE, suggestions.length); + mSuggestions = Arrays.copyOf(suggestions, N); mFlags = flags; if (context != null && locale == null) { mLocaleString = context.getResources().getConfiguration().locale.toString(); @@ -97,7 +93,7 @@ public class CorrectionSpan implements ParcelableSpan { } public CorrectionSpan(Parcel src) { - src.readList(mSuggests, null); + mSuggestions = src.readStringArray(); mFlags = src.readInt(); mLocaleString = src.readString(); mOriginalString = src.readString(); @@ -106,8 +102,8 @@ public class CorrectionSpan implements ParcelableSpan { /** * @return suggestions */ - public List getSuggests() { - return new ArrayList(mSuggests); + public String[] getSuggestions() { + return Arrays.copyOf(mSuggestions, mSuggestions.length); } /** @@ -135,7 +131,7 @@ public class CorrectionSpan implements ParcelableSpan { @Override public void writeToParcel(Parcel dest, int flags) { - dest.writeList(mSuggests); + dest.writeStringArray(mSuggestions); dest.writeInt(mFlags); dest.writeString(mLocaleString); dest.writeString(mOriginalString); diff --git a/core/java/android/view/inputmethod/BaseInputConnection.java b/core/java/android/view/inputmethod/BaseInputConnection.java index b95e7c91d90e..dd2d00de0ca7 100644 --- a/core/java/android/view/inputmethod/BaseInputConnection.java +++ b/core/java/android/view/inputmethod/BaseInputConnection.java @@ -20,7 +20,6 @@ import android.content.Context; import android.content.res.TypedArray; import android.os.Bundle; import android.os.Handler; -import android.os.IBinder; import android.os.SystemClock; import android.text.Editable; import android.text.NoCopySpan; @@ -30,7 +29,6 @@ import android.text.SpannableStringBuilder; import android.text.Spanned; import android.text.TextUtils; import android.text.method.MetaKeyKeyListener; -import android.text.style.CorrectionSpan; import android.util.Log; import android.util.LogPrinter; import android.view.KeyCharacterMap; @@ -191,15 +189,6 @@ public class BaseInputConnection implements InputConnection { return true; } - /** - * Default implementation does nothing and returns false. - */ - @Override - public boolean setCorrectionSpan(IBinder token, CorrectionSpan correctionSpan, int start, - int end, int flags) { - return false; - } - /** * The default implementation performs the deletion around the current * selection position of the editable text. @@ -655,7 +644,7 @@ public class BaseInputConnection implements InputConnection { lp.println("Composing text:"); TextUtils.dumpSpans(text, lp, " "); } - + // Position the cursor appropriately, so that after replacing the // desired range of text it will be located in the correct spot. // This allows us to deal with filters performing edits on the text diff --git a/core/java/android/view/inputmethod/InputConnection.java b/core/java/android/view/inputmethod/InputConnection.java index a8a53466c8f1..ea9e40245db9 100644 --- a/core/java/android/view/inputmethod/InputConnection.java +++ b/core/java/android/view/inputmethod/InputConnection.java @@ -17,8 +17,6 @@ package android.view.inputmethod; import android.os.Bundle; -import android.os.IBinder; -import android.text.style.CorrectionSpan; import android.view.KeyCharacterMap; import android.view.KeyEvent; @@ -355,10 +353,4 @@ public interface InputConnection { * valid. */ public boolean performPrivateCommand(String action, Bundle data); - - /** - * Add a correction span. - */ - public boolean setCorrectionSpan(IBinder token, CorrectionSpan correctionSpan, int start, - int end, int flags); } diff --git a/core/java/android/view/inputmethod/InputConnectionWrapper.java b/core/java/android/view/inputmethod/InputConnectionWrapper.java index fee88d97ecc4..690ea85306b8 100644 --- a/core/java/android/view/inputmethod/InputConnectionWrapper.java +++ b/core/java/android/view/inputmethod/InputConnectionWrapper.java @@ -17,8 +17,6 @@ package android.view.inputmethod; import android.os.Bundle; -import android.os.IBinder; -import android.text.style.CorrectionSpan; import android.view.KeyEvent; /** @@ -60,8 +58,7 @@ public class InputConnectionWrapper implements InputConnection { return mTarget.getCursorCapsMode(reqModes); } - public ExtractedText getExtractedText(ExtractedTextRequest request, - int flags) { + public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) { return mTarget.getExtractedText(request, flags); } @@ -128,9 +125,4 @@ public class InputConnectionWrapper implements InputConnection { public boolean performPrivateCommand(String action, Bundle data) { return mTarget.performPrivateCommand(action, data); } - - public boolean setCorrectionSpan(IBinder token, CorrectionSpan correctionSpan, int start, - int end, int flags) { - return mTarget.setCorrectionSpan(token, correctionSpan, start, end, flags); - } } diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index ed9dce912526..baf20a1eb9f5 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -8331,19 +8331,6 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener sLastCutOrCopyTime = SystemClock.uptimeMillis(); } - public boolean setCorrectionSpan(IBinder token, CorrectionSpan span, int start, int end, - int flags) { - if (getWindowToken() != token || !(mText instanceof Spannable)) return false; - Spannable spannable = (Spannable)mText; - CorrectionSpan[] spans = spannable.getSpans(start, end, CorrectionSpan.class); - final int N = spans.length; - for (int i = 0; i < N; ++i) { - spannable.removeSpan(spans[i]); - } - spannable.setSpan(span, start, end, flags); - return true; - } - /** * An ActionMode Callback class that is used to provide actions while in text selection mode. * diff --git a/core/java/com/android/internal/view/IInputConnectionWrapper.java b/core/java/com/android/internal/view/IInputConnectionWrapper.java index 8719fdedad78..c792d78405dd 100644 --- a/core/java/com/android/internal/view/IInputConnectionWrapper.java +++ b/core/java/com/android/internal/view/IInputConnectionWrapper.java @@ -18,11 +18,9 @@ package com.android.internal.view; import android.os.Bundle; import android.os.Handler; -import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.RemoteException; -import android.text.style.CorrectionSpan; import android.util.Log; import android.view.KeyEvent; import android.view.inputmethod.CompletionInfo; @@ -47,7 +45,6 @@ public class IInputConnectionWrapper extends IInputContext.Stub { private static final int DO_PERFORM_EDITOR_ACTION = 58; private static final int DO_PERFORM_CONTEXT_MENU_ACTION = 59; private static final int DO_SET_COMPOSING_TEXT = 60; - private static final int DO_SET_SECURE_CORRECTION_SPAN = 61; private static final int DO_SET_COMPOSING_REGION = 63; private static final int DO_FINISH_COMPOSING_TEXT = 65; private static final int DO_SEND_KEY_EVENT = 70; @@ -178,13 +175,6 @@ public class IInputConnectionWrapper extends IInputContext.Stub { dispatchMessage(obtainMessageOO(DO_PERFORM_PRIVATE_COMMAND, action, data)); } - @Override - public void setCorrectionSpan(IBinder token, CorrectionSpan correctionSpan, int start, - int end, int flags) { - dispatchMessage(obtainMessageOOIII(DO_SET_SECURE_CORRECTION_SPAN, token, correctionSpan, - start, end, flags)); - } - void dispatchMessage(Message msg) { // If we are calling this from the main thread, then we can call // right through. Otherwise, we need to send the message to the @@ -430,17 +420,6 @@ public class IInputConnectionWrapper extends IInputContext.Stub { (Bundle)args.arg2); return; } - case DO_SET_SECURE_CORRECTION_SPAN: { - InputConnection ic = mInputConnection.get(); - if (ic == null || !isActive()) { - Log.w(TAG, "setCorrectionSpan on inactive InputConnection"); - return; - } - SomeArgs args = (SomeArgs)msg.obj; - ic.setCorrectionSpan((IBinder)args.arg1, (CorrectionSpan)args.arg2, msg.arg1, - msg.arg2, args.seq); - return; - } } Log.w(TAG, "Unhandled message code: " + msg.what); } @@ -490,12 +469,4 @@ public class IInputConnectionWrapper extends IInputContext.Stub { args.arg2 = arg2; return mH.obtainMessage(what, 0, 0, args); } - - Message obtainMessageOOIII(int what, Object arg1, Object arg2, int arg3, int arg4, int arg5) { - SomeArgs args = new SomeArgs(); - args.arg1 = arg1; - args.arg2 = arg2; - args.seq = arg5; - return mH.obtainMessage(what, arg3, arg4, args); - } } diff --git a/core/java/com/android/internal/view/IInputContext.aidl b/core/java/com/android/internal/view/IInputContext.aidl index eb20d61ff44c..719a24f5ddf9 100644 --- a/core/java/com/android/internal/view/IInputContext.aidl +++ b/core/java/com/android/internal/view/IInputContext.aidl @@ -17,7 +17,6 @@ package com.android.internal.view; import android.os.Bundle; -import android.text.style.CorrectionSpan; import android.view.KeyEvent; import android.view.inputmethod.CompletionInfo; import android.view.inputmethod.CorrectionInfo; @@ -74,6 +73,4 @@ import com.android.internal.view.IInputContextCallback; void getSelectedText(int flags, int seq, IInputContextCallback callback); - void setCorrectionSpan(in IBinder token, in CorrectionSpan correctionSpan, int start, - int end, int flags); } diff --git a/core/java/com/android/internal/view/InputConnectionWrapper.java b/core/java/com/android/internal/view/InputConnectionWrapper.java index efe315f72e7a..a235d9a2346f 100644 --- a/core/java/com/android/internal/view/InputConnectionWrapper.java +++ b/core/java/com/android/internal/view/InputConnectionWrapper.java @@ -17,10 +17,8 @@ package com.android.internal.view; import android.os.Bundle; -import android.os.IBinder; import android.os.RemoteException; import android.os.SystemClock; -import android.text.style.CorrectionSpan; import android.util.Log; import android.view.KeyEvent; import android.view.inputmethod.CompletionInfo; @@ -253,7 +251,7 @@ public class InputConnectionWrapper implements InputConnection { } return value; } - + public ExtractedText getExtractedText(ExtractedTextRequest request, int flags) { ExtractedText value = null; try { @@ -415,14 +413,4 @@ public class InputConnectionWrapper implements InputConnection { return false; } } - @Override - public boolean setCorrectionSpan(IBinder token, CorrectionSpan correctionSpan, int start, - int end, int flags) { - try { - mIInputContext.setCorrectionSpan(token, correctionSpan, start, end, flags); - return true; - } catch (RemoteException e) { - return false; - } - } } diff --git a/core/java/com/android/internal/widget/EditableInputConnection.java b/core/java/com/android/internal/widget/EditableInputConnection.java index ea82bc79417a..5bf60269c0e9 100644 --- a/core/java/com/android/internal/widget/EditableInputConnection.java +++ b/core/java/com/android/internal/widget/EditableInputConnection.java @@ -146,13 +146,4 @@ public class EditableInputConnection extends BaseInputConnection { return success; } - - @Override - public boolean setCorrectionSpan(IBinder token, CorrectionSpan correctionSpan, int start, - int end, int flags) { - mTextView.beginBatchEdit(); - boolean retval = mTextView.setCorrectionSpan(token, correctionSpan, start, end, flags); - mTextView.endBatchEdit(); - return retval; - } } -- cgit v1.2.3-59-g8ed1b