Loading core/api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -38202,6 +38202,7 @@ package android.service.textservice { ctor public SpellCheckerService.Session(); method public android.os.Bundle getBundle(); method public String getLocale(); method public int getSupportedAttributes(); method public void onCancel(); method public void onClose(); method public abstract void onCreate(); Loading Loading @@ -51796,7 +51797,8 @@ package android.view.textservice { method @Nullable public android.view.textservice.SpellCheckerSubtype getCurrentSpellCheckerSubtype(boolean); method @Nullable public java.util.List<android.view.textservice.SpellCheckerInfo> getEnabledSpellCheckersList(); method public boolean isSpellCheckerEnabled(); method public android.view.textservice.SpellCheckerSession newSpellCheckerSession(android.os.Bundle, java.util.Locale, android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener, boolean); method @Nullable public android.view.textservice.SpellCheckerSession newSpellCheckerSession(@Nullable android.os.Bundle, @Nullable java.util.Locale, @NonNull android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener, boolean); method @Nullable public android.view.textservice.SpellCheckerSession newSpellCheckerSession(@Nullable android.os.Bundle, @Nullable java.util.Locale, @NonNull android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener, boolean, int); } } core/java/android/service/textservice/SpellCheckerService.java +30 −8 Original line number Diff line number Diff line Loading @@ -16,11 +16,6 @@ package android.service.textservice; import com.android.internal.textservice.ISpellCheckerService; import com.android.internal.textservice.ISpellCheckerServiceCallback; import com.android.internal.textservice.ISpellCheckerSession; import com.android.internal.textservice.ISpellCheckerSessionListener; import android.app.Service; import android.content.Intent; import android.os.Bundle; Loading @@ -34,6 +29,11 @@ import android.view.textservice.SentenceSuggestionsInfo; import android.view.textservice.SuggestionsInfo; import android.view.textservice.TextInfo; import com.android.internal.textservice.ISpellCheckerService; import com.android.internal.textservice.ISpellCheckerServiceCallback; import com.android.internal.textservice.ISpellCheckerSession; import com.android.internal.textservice.ISpellCheckerSessionListener; import java.lang.ref.WeakReference; import java.text.BreakIterator; import java.util.ArrayList; Loading Loading @@ -231,6 +231,18 @@ public abstract class SpellCheckerService extends Service { public Bundle getBundle() { return mInternalSession.getBundle(); } /** * Returns result attributes supported for this session. * * <p>The session implementation should not set attributes that are not included in the * return value of {@code getSupportedAttributes()} when creating {@link SuggestionsInfo}. * * @return The supported result attributes for this session */ public @SuggestionsInfo.ResultAttrs int getSupportedAttributes() { return mInternalSession.getSupportedAttributes(); } } // Preventing from exposing ISpellCheckerSession.aidl, create an internal class. Loading @@ -239,13 +251,16 @@ public abstract class SpellCheckerService extends Service { private final Session mSession; private final String mLocale; private final Bundle mBundle; private final @SuggestionsInfo.ResultAttrs int mSupportedAttributes; public InternalISpellCheckerSession(String locale, ISpellCheckerSessionListener listener, Bundle bundle, Session session) { Bundle bundle, Session session, @SuggestionsInfo.ResultAttrs int supportedAttributes) { mListener = listener; mSession = session; mLocale = locale; mBundle = bundle; mSupportedAttributes = supportedAttributes; session.setInternalISpellCheckerSession(this); } Loading Loading @@ -303,6 +318,10 @@ public abstract class SpellCheckerService extends Service { public Bundle getBundle() { return mBundle; } public @SuggestionsInfo.ResultAttrs int getSupportedAttributes() { return mSupportedAttributes; } } private static class SpellCheckerServiceBinder extends ISpellCheckerService.Stub { Loading @@ -323,11 +342,14 @@ public abstract class SpellCheckerService extends Service { * {@link Session#onGetSuggestionsMultiple(TextInfo[], int, boolean)} and * {@link Session#onGetSuggestions(TextInfo, int)} * @param bundle bundle to be returned from {@link Session#getBundle()} * @param supportedAttributes A union of {@link SuggestionsInfo} attributes that the spell * checker can set in the spell checking results. * @param callback IPC channel to return the result to the caller in an asynchronous manner */ @Override public void getISpellCheckerSession( String locale, ISpellCheckerSessionListener listener, Bundle bundle, @SuggestionsInfo.ResultAttrs int supportedAttributes, ISpellCheckerServiceCallback callback) { final SpellCheckerService service = mInternalServiceRef.get(); final InternalISpellCheckerSession internalSession; Loading @@ -337,8 +359,8 @@ public abstract class SpellCheckerService extends Service { internalSession = null; } else { final Session session = service.createSession(); internalSession = new InternalISpellCheckerSession(locale, listener, bundle, session); internalSession = new InternalISpellCheckerSession( locale, listener, bundle, session, supportedAttributes); session.onCreate(); } try { Loading core/java/android/view/textservice/SuggestionsInfo.java +24 −4 Original line number Diff line number Diff line Loading @@ -16,17 +16,37 @@ package android.view.textservice; import android.annotation.IntDef; import android.os.Parcel; import android.os.Parcelable; import com.android.internal.util.ArrayUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * This class contains a metadata of suggestions from the text service */ public final class SuggestionsInfo implements Parcelable { private static final String[] EMPTY = ArrayUtils.emptyArray(String.class); /** * An internal annotation to indicate that one ore more combinations of * <code>RESULT_ATTR_</code> flags are expected. * * @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(flag = true, prefix = { "RESULT_ATTR_" }, value = { RESULT_ATTR_IN_THE_DICTIONARY, RESULT_ATTR_LOOKS_LIKE_TYPO, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, RESULT_ATTR_LOOKS_LIKE_GRAMMAR_ERROR, RESULT_ATTR_DONT_SHOW_UI_FOR_SUGGESTIONS, }) public @interface ResultAttrs {} /** * Flag of the attributes of the suggestions that can be obtained by * {@link #getSuggestionsAttributes}: this tells that the requested word was found Loading Loading @@ -63,7 +83,7 @@ public final class SuggestionsInfo implements Parcelable { */ public static final int RESULT_ATTR_DONT_SHOW_UI_FOR_SUGGESTIONS = 0x0010; private final int mSuggestionsAttributes; private final @ResultAttrs int mSuggestionsAttributes; private final String[] mSuggestions; private final boolean mSuggestionsAvailable; private int mCookie; Loading @@ -85,8 +105,8 @@ public final class SuggestionsInfo implements Parcelable { * @param cookie the cookie of the input TextInfo * @param sequence the cookie of the input TextInfo */ public SuggestionsInfo( int suggestionsAttributes, String[] suggestions, int cookie, int sequence) { public SuggestionsInfo(@ResultAttrs int suggestionsAttributes, String[] suggestions, int cookie, int sequence) { if (suggestions == null) { mSuggestions = EMPTY; mSuggestionsAvailable = false; Loading Loading @@ -152,7 +172,7 @@ public final class SuggestionsInfo implements Parcelable { * in its dictionary or not and whether the spell checker has confident suggestions for the * word or not. */ public int getSuggestionsAttributes() { public @ResultAttrs int getSuggestionsAttributes() { return mSuggestionsAttributes; } Loading core/java/android/view/textservice/TextServicesManager.java +52 −14 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view.textservice; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.SystemService; import android.annotation.UserIdInt; import android.compat.annotation.UnsupportedAppUsage; Loading Loading @@ -139,21 +140,58 @@ public final class TextServicesManager { } /** * Get a spell checker session for the specified spell checker * @param locale the locale for the spell checker. If {@code locale} is null and * referToSpellCheckerLanguageSettings is true, the locale specified in Settings will be * returned. If {@code locale} is not null and referToSpellCheckerLanguageSettings is true, * the locale specified in Settings will be returned only when it is same as {@code locale}. * Exceptionally, when referToSpellCheckerLanguageSettings is true and {@code locale} is * only language (e.g. "en"), the specified locale in Settings (e.g. "en_US") will be * Get a spell checker session from the spell checker. * * <p>{@link SuggestionsInfo#RESULT_ATTR_IN_THE_DICTIONARY}, * {@link SuggestionsInfo#RESULT_ATTR_LOOKS_LIKE_TYPO}, and * {@link SuggestionsInfo#RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS} will be passed to the spell * checker as supported attributes. * * @see #newSpellCheckerSession(Bundle, Locale, SpellCheckerSessionListener, boolean, int) * @param bundle A bundle to pass to the spell checker. * @param locale The locale for the spell checker. * @param listener A spell checker session lister for getting results from the spell checker. * @param referToSpellCheckerLanguageSettings If true, the session for one of enabled * languages in settings will be used. * @return A spell checker session from the spell checker. */ @Nullable public SpellCheckerSession newSpellCheckerSession(@Nullable Bundle bundle, @Nullable Locale locale, @NonNull SpellCheckerSessionListener listener, boolean referToSpellCheckerLanguageSettings) { return newSpellCheckerSession(bundle, locale, listener, referToSpellCheckerLanguageSettings, SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY | SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO | SuggestionsInfo.RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS); } /** * Get a spell checker session from the spell checker. * * <p>If {@code locale} is null and {@code referToSpellCheckerLanguageSettings} is true, the * locale specified in Settings will be used. If {@code locale} is not null and * {@code referToSpellCheckerLanguageSettings} is true, the locale specified in Settings will be * returned only when it is same as {@code locale}. * Exceptionally, when {@code referToSpellCheckerLanguageSettings} is true and {@code locale} is * language only (e.g. "en"), the specified locale in Settings (e.g. "en_US") will be * selected. * @param listener a spell checker session lister for getting results from a spell checker. * @param referToSpellCheckerLanguageSettings if true, the session for one of enabled * languages in settings will be returned. * @return the spell checker session of the spell checker * * @param bundle A bundle to pass to the spell checker. * @param locale The locale for the spell checker. * @param listener A spell checker session lister for getting results from a spell checker. * @param referToSpellCheckerLanguageSettings If true, the session for one of enabled * languages in settings will be used. * @param supportedAttributes A union of {@link SuggestionsInfo} attributes that the spell * checker can set in the spell checking results. * @return The spell checker session of the spell checker. */ public SpellCheckerSession newSpellCheckerSession(Bundle bundle, Locale locale, SpellCheckerSessionListener listener, boolean referToSpellCheckerLanguageSettings) { @Nullable public SpellCheckerSession newSpellCheckerSession(@Nullable Bundle bundle, @SuppressLint("UseIcu") @Nullable Locale locale, @NonNull SpellCheckerSessionListener listener, @SuppressLint("ListenerLast") boolean referToSpellCheckerLanguageSettings, @SuppressLint("ListenerLast") @SuggestionsInfo.ResultAttrs int supportedAttributes) { if (listener == null) { throw new NullPointerException(); } Loading Loading @@ -210,7 +248,7 @@ public final class TextServicesManager { try { mService.getSpellCheckerService(mUserId, sci.getId(), subtypeInUse.getLocale(), session.getTextServicesSessionListener(), session.getSpellCheckerSessionListener(), bundle); session.getSpellCheckerSessionListener(), bundle, supportedAttributes); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading core/java/android/widget/SpellChecker.java +5 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,11 @@ public class SpellChecker implements SpellCheckerSessionListener { mSpellCheckerSession = mTextServicesManager.newSpellCheckerSession( null /* Bundle not currently used by the textServicesManager */, mCurrentLocale, this, false /* means any available languages from current spell checker */); false /* means any available languages from current spell checker */, SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY | SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO | SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_GRAMMAR_ERROR | SuggestionsInfo.RESULT_ATTR_DONT_SHOW_UI_FOR_SUGGESTIONS); mIsSentenceSpellCheckSupported = true; } Loading Loading
core/api/current.txt +3 −1 Original line number Diff line number Diff line Loading @@ -38202,6 +38202,7 @@ package android.service.textservice { ctor public SpellCheckerService.Session(); method public android.os.Bundle getBundle(); method public String getLocale(); method public int getSupportedAttributes(); method public void onCancel(); method public void onClose(); method public abstract void onCreate(); Loading Loading @@ -51796,7 +51797,8 @@ package android.view.textservice { method @Nullable public android.view.textservice.SpellCheckerSubtype getCurrentSpellCheckerSubtype(boolean); method @Nullable public java.util.List<android.view.textservice.SpellCheckerInfo> getEnabledSpellCheckersList(); method public boolean isSpellCheckerEnabled(); method public android.view.textservice.SpellCheckerSession newSpellCheckerSession(android.os.Bundle, java.util.Locale, android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener, boolean); method @Nullable public android.view.textservice.SpellCheckerSession newSpellCheckerSession(@Nullable android.os.Bundle, @Nullable java.util.Locale, @NonNull android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener, boolean); method @Nullable public android.view.textservice.SpellCheckerSession newSpellCheckerSession(@Nullable android.os.Bundle, @Nullable java.util.Locale, @NonNull android.view.textservice.SpellCheckerSession.SpellCheckerSessionListener, boolean, int); } }
core/java/android/service/textservice/SpellCheckerService.java +30 −8 Original line number Diff line number Diff line Loading @@ -16,11 +16,6 @@ package android.service.textservice; import com.android.internal.textservice.ISpellCheckerService; import com.android.internal.textservice.ISpellCheckerServiceCallback; import com.android.internal.textservice.ISpellCheckerSession; import com.android.internal.textservice.ISpellCheckerSessionListener; import android.app.Service; import android.content.Intent; import android.os.Bundle; Loading @@ -34,6 +29,11 @@ import android.view.textservice.SentenceSuggestionsInfo; import android.view.textservice.SuggestionsInfo; import android.view.textservice.TextInfo; import com.android.internal.textservice.ISpellCheckerService; import com.android.internal.textservice.ISpellCheckerServiceCallback; import com.android.internal.textservice.ISpellCheckerSession; import com.android.internal.textservice.ISpellCheckerSessionListener; import java.lang.ref.WeakReference; import java.text.BreakIterator; import java.util.ArrayList; Loading Loading @@ -231,6 +231,18 @@ public abstract class SpellCheckerService extends Service { public Bundle getBundle() { return mInternalSession.getBundle(); } /** * Returns result attributes supported for this session. * * <p>The session implementation should not set attributes that are not included in the * return value of {@code getSupportedAttributes()} when creating {@link SuggestionsInfo}. * * @return The supported result attributes for this session */ public @SuggestionsInfo.ResultAttrs int getSupportedAttributes() { return mInternalSession.getSupportedAttributes(); } } // Preventing from exposing ISpellCheckerSession.aidl, create an internal class. Loading @@ -239,13 +251,16 @@ public abstract class SpellCheckerService extends Service { private final Session mSession; private final String mLocale; private final Bundle mBundle; private final @SuggestionsInfo.ResultAttrs int mSupportedAttributes; public InternalISpellCheckerSession(String locale, ISpellCheckerSessionListener listener, Bundle bundle, Session session) { Bundle bundle, Session session, @SuggestionsInfo.ResultAttrs int supportedAttributes) { mListener = listener; mSession = session; mLocale = locale; mBundle = bundle; mSupportedAttributes = supportedAttributes; session.setInternalISpellCheckerSession(this); } Loading Loading @@ -303,6 +318,10 @@ public abstract class SpellCheckerService extends Service { public Bundle getBundle() { return mBundle; } public @SuggestionsInfo.ResultAttrs int getSupportedAttributes() { return mSupportedAttributes; } } private static class SpellCheckerServiceBinder extends ISpellCheckerService.Stub { Loading @@ -323,11 +342,14 @@ public abstract class SpellCheckerService extends Service { * {@link Session#onGetSuggestionsMultiple(TextInfo[], int, boolean)} and * {@link Session#onGetSuggestions(TextInfo, int)} * @param bundle bundle to be returned from {@link Session#getBundle()} * @param supportedAttributes A union of {@link SuggestionsInfo} attributes that the spell * checker can set in the spell checking results. * @param callback IPC channel to return the result to the caller in an asynchronous manner */ @Override public void getISpellCheckerSession( String locale, ISpellCheckerSessionListener listener, Bundle bundle, @SuggestionsInfo.ResultAttrs int supportedAttributes, ISpellCheckerServiceCallback callback) { final SpellCheckerService service = mInternalServiceRef.get(); final InternalISpellCheckerSession internalSession; Loading @@ -337,8 +359,8 @@ public abstract class SpellCheckerService extends Service { internalSession = null; } else { final Session session = service.createSession(); internalSession = new InternalISpellCheckerSession(locale, listener, bundle, session); internalSession = new InternalISpellCheckerSession( locale, listener, bundle, session, supportedAttributes); session.onCreate(); } try { Loading
core/java/android/view/textservice/SuggestionsInfo.java +24 −4 Original line number Diff line number Diff line Loading @@ -16,17 +16,37 @@ package android.view.textservice; import android.annotation.IntDef; import android.os.Parcel; import android.os.Parcelable; import com.android.internal.util.ArrayUtils; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; /** * This class contains a metadata of suggestions from the text service */ public final class SuggestionsInfo implements Parcelable { private static final String[] EMPTY = ArrayUtils.emptyArray(String.class); /** * An internal annotation to indicate that one ore more combinations of * <code>RESULT_ATTR_</code> flags are expected. * * @hide */ @Retention(RetentionPolicy.SOURCE) @IntDef(flag = true, prefix = { "RESULT_ATTR_" }, value = { RESULT_ATTR_IN_THE_DICTIONARY, RESULT_ATTR_LOOKS_LIKE_TYPO, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, RESULT_ATTR_LOOKS_LIKE_GRAMMAR_ERROR, RESULT_ATTR_DONT_SHOW_UI_FOR_SUGGESTIONS, }) public @interface ResultAttrs {} /** * Flag of the attributes of the suggestions that can be obtained by * {@link #getSuggestionsAttributes}: this tells that the requested word was found Loading Loading @@ -63,7 +83,7 @@ public final class SuggestionsInfo implements Parcelable { */ public static final int RESULT_ATTR_DONT_SHOW_UI_FOR_SUGGESTIONS = 0x0010; private final int mSuggestionsAttributes; private final @ResultAttrs int mSuggestionsAttributes; private final String[] mSuggestions; private final boolean mSuggestionsAvailable; private int mCookie; Loading @@ -85,8 +105,8 @@ public final class SuggestionsInfo implements Parcelable { * @param cookie the cookie of the input TextInfo * @param sequence the cookie of the input TextInfo */ public SuggestionsInfo( int suggestionsAttributes, String[] suggestions, int cookie, int sequence) { public SuggestionsInfo(@ResultAttrs int suggestionsAttributes, String[] suggestions, int cookie, int sequence) { if (suggestions == null) { mSuggestions = EMPTY; mSuggestionsAvailable = false; Loading Loading @@ -152,7 +172,7 @@ public final class SuggestionsInfo implements Parcelable { * in its dictionary or not and whether the spell checker has confident suggestions for the * word or not. */ public int getSuggestionsAttributes() { public @ResultAttrs int getSuggestionsAttributes() { return mSuggestionsAttributes; } Loading
core/java/android/view/textservice/TextServicesManager.java +52 −14 Original line number Diff line number Diff line Loading @@ -18,6 +18,7 @@ package android.view.textservice; import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.SuppressLint; import android.annotation.SystemService; import android.annotation.UserIdInt; import android.compat.annotation.UnsupportedAppUsage; Loading Loading @@ -139,21 +140,58 @@ public final class TextServicesManager { } /** * Get a spell checker session for the specified spell checker * @param locale the locale for the spell checker. If {@code locale} is null and * referToSpellCheckerLanguageSettings is true, the locale specified in Settings will be * returned. If {@code locale} is not null and referToSpellCheckerLanguageSettings is true, * the locale specified in Settings will be returned only when it is same as {@code locale}. * Exceptionally, when referToSpellCheckerLanguageSettings is true and {@code locale} is * only language (e.g. "en"), the specified locale in Settings (e.g. "en_US") will be * Get a spell checker session from the spell checker. * * <p>{@link SuggestionsInfo#RESULT_ATTR_IN_THE_DICTIONARY}, * {@link SuggestionsInfo#RESULT_ATTR_LOOKS_LIKE_TYPO}, and * {@link SuggestionsInfo#RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS} will be passed to the spell * checker as supported attributes. * * @see #newSpellCheckerSession(Bundle, Locale, SpellCheckerSessionListener, boolean, int) * @param bundle A bundle to pass to the spell checker. * @param locale The locale for the spell checker. * @param listener A spell checker session lister for getting results from the spell checker. * @param referToSpellCheckerLanguageSettings If true, the session for one of enabled * languages in settings will be used. * @return A spell checker session from the spell checker. */ @Nullable public SpellCheckerSession newSpellCheckerSession(@Nullable Bundle bundle, @Nullable Locale locale, @NonNull SpellCheckerSessionListener listener, boolean referToSpellCheckerLanguageSettings) { return newSpellCheckerSession(bundle, locale, listener, referToSpellCheckerLanguageSettings, SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY | SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO | SuggestionsInfo.RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS); } /** * Get a spell checker session from the spell checker. * * <p>If {@code locale} is null and {@code referToSpellCheckerLanguageSettings} is true, the * locale specified in Settings will be used. If {@code locale} is not null and * {@code referToSpellCheckerLanguageSettings} is true, the locale specified in Settings will be * returned only when it is same as {@code locale}. * Exceptionally, when {@code referToSpellCheckerLanguageSettings} is true and {@code locale} is * language only (e.g. "en"), the specified locale in Settings (e.g. "en_US") will be * selected. * @param listener a spell checker session lister for getting results from a spell checker. * @param referToSpellCheckerLanguageSettings if true, the session for one of enabled * languages in settings will be returned. * @return the spell checker session of the spell checker * * @param bundle A bundle to pass to the spell checker. * @param locale The locale for the spell checker. * @param listener A spell checker session lister for getting results from a spell checker. * @param referToSpellCheckerLanguageSettings If true, the session for one of enabled * languages in settings will be used. * @param supportedAttributes A union of {@link SuggestionsInfo} attributes that the spell * checker can set in the spell checking results. * @return The spell checker session of the spell checker. */ public SpellCheckerSession newSpellCheckerSession(Bundle bundle, Locale locale, SpellCheckerSessionListener listener, boolean referToSpellCheckerLanguageSettings) { @Nullable public SpellCheckerSession newSpellCheckerSession(@Nullable Bundle bundle, @SuppressLint("UseIcu") @Nullable Locale locale, @NonNull SpellCheckerSessionListener listener, @SuppressLint("ListenerLast") boolean referToSpellCheckerLanguageSettings, @SuppressLint("ListenerLast") @SuggestionsInfo.ResultAttrs int supportedAttributes) { if (listener == null) { throw new NullPointerException(); } Loading Loading @@ -210,7 +248,7 @@ public final class TextServicesManager { try { mService.getSpellCheckerService(mUserId, sci.getId(), subtypeInUse.getLocale(), session.getTextServicesSessionListener(), session.getSpellCheckerSessionListener(), bundle); session.getSpellCheckerSessionListener(), bundle, supportedAttributes); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } Loading
core/java/android/widget/SpellChecker.java +5 −1 Original line number Diff line number Diff line Loading @@ -129,7 +129,11 @@ public class SpellChecker implements SpellCheckerSessionListener { mSpellCheckerSession = mTextServicesManager.newSpellCheckerSession( null /* Bundle not currently used by the textServicesManager */, mCurrentLocale, this, false /* means any available languages from current spell checker */); false /* means any available languages from current spell checker */, SuggestionsInfo.RESULT_ATTR_IN_THE_DICTIONARY | SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_TYPO | SuggestionsInfo.RESULT_ATTR_LOOKS_LIKE_GRAMMAR_ERROR | SuggestionsInfo.RESULT_ATTR_DONT_SHOW_UI_FOR_SUGGESTIONS); mIsSentenceSpellCheckSupported = true; } Loading