diff options
| author | Abodunrinwa Toki <toki@google.com> | 2018-02-26 21:37:51 +0000 |
|---|---|---|
| committer | Abodunrinwa Toki <toki@google.com> | 2018-02-28 14:35:49 +0000 |
| commit | db8fc314d2ac9a2ce3209fe9e842c985e6f57d06 (patch) | |
| tree | cc89a5b65d65e7ef1576d2434459328ca7adf592 /core/java/android/widget/SelectionActionModeHelper.java | |
| parent | 9371be3b88e2bcd6da6223b4cf59a00d32147133 (diff) | |
Associate TCconstants with the TCM instead of TCImpl
Also updates flags list.
Bug: 72946306
Bug: 72946123
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationManagerTest
Test: bit FrameworksCoreTests:android.view.textclassifier.TextClassificationConstantsTest
Test: bit CtsWidgetTestCases:android.widget.cts.TextViewTest
Test: bit FrameworksCoreTests:android.widget.TextViewActivityTest
Change-Id: I8af9d3d1da01836fbadcbbf6ce7c1c0db7456a05
Diffstat (limited to 'core/java/android/widget/SelectionActionModeHelper.java')
| -rw-r--r-- | core/java/android/widget/SelectionActionModeHelper.java | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/core/java/android/widget/SelectionActionModeHelper.java b/core/java/android/widget/SelectionActionModeHelper.java index 6ab09d6cbe74..12ab0ee7d56a 100644 --- a/core/java/android/widget/SelectionActionModeHelper.java +++ b/core/java/android/widget/SelectionActionModeHelper.java @@ -34,6 +34,8 @@ import android.text.TextUtils; import android.util.Log; import android.view.ActionMode; import android.view.textclassifier.TextClassification; +import android.view.textclassifier.TextClassificationConstants; +import android.view.textclassifier.TextClassificationManager; import android.view.textclassifier.TextClassifier; import android.view.textclassifier.TextLinks; import android.view.textclassifier.TextSelection; @@ -65,12 +67,10 @@ public final class SelectionActionModeHelper { private static final String LOG_TAG = "SelectActionModeHelper"; - // TODO: Make this a configurable flag. - private static final boolean SMART_SELECT_ANIMATION_ENABLED = true; - private final Editor mEditor; private final TextView mTextView; private final TextClassificationHelper mTextClassificationHelper; + private final TextClassificationConstants mTextClassificationSettings; private TextClassification mTextClassification; private AsyncTask mTextClassificationAsyncTask; @@ -84,6 +84,7 @@ public final class SelectionActionModeHelper { SelectionActionModeHelper(@NonNull Editor editor) { mEditor = Preconditions.checkNotNull(editor); mTextView = mEditor.getTextView(); + mTextClassificationSettings = TextClassificationManager.getSettings(mTextView.getContext()); mTextClassificationHelper = new TextClassificationHelper( mTextView.getContext(), mTextView.getTextClassifier(), @@ -91,7 +92,7 @@ public final class SelectionActionModeHelper { 0, 1, mTextView.getTextLocales()); mSelectionTracker = new SelectionTracker(mTextView); - if (SMART_SELECT_ANIMATION_ENABLED) { + if (mTextClassificationSettings.isSmartSelectionAnimationEnabled()) { mSmartSelectSprite = new SmartSelectSprite(mTextView.getContext(), editor.getTextView().mHighlightColor, mTextView::invalidate); } else { @@ -104,9 +105,7 @@ public final class SelectionActionModeHelper { */ public void startSelectionActionModeAsync(boolean adjustSelection) { // Check if the smart selection should run for editable text. - adjustSelection &= !mTextView.isTextEditable() - || mTextView.getTextClassifier().getSettings() - .isSuggestSelectionEnabledForEditableText(); + adjustSelection &= mTextClassificationSettings.isSmartSelectionEnabled(); mSelectionTracker.onOriginalSelection( getText(mTextView), @@ -249,7 +248,7 @@ public final class SelectionActionModeHelper { || mTextView.isTextEditable() || actionMode == Editor.TextActionMode.TEXT_LINK)) { // Do not change the selection if TextClassifier should be dark launched. - if (!mTextView.getTextClassifier().getSettings().isDarkLaunch()) { + if (!mTextClassificationSettings.isModelDarkLaunchEnabled()) { Selection.setSelection((Spannable) text, result.mStart, result.mEnd); mTextView.invalidate(); } @@ -450,7 +449,6 @@ public final class SelectionActionModeHelper { selectionEnd = mTextView.getSelectionEnd(); } mTextClassificationHelper.init( - mTextView.getContext(), mTextView.getTextClassifier(), getText(mTextView), selectionStart, selectionEnd, @@ -882,7 +880,8 @@ public final class SelectionActionModeHelper { private static final int TRIM_DELTA = 120; // characters - private Context mContext; + private final Context mContext; + private final boolean mDarkLaunchEnabled; private TextClassifier mTextClassifier; /** The original TextView text. **/ @@ -917,13 +916,15 @@ public final class SelectionActionModeHelper { TextClassificationHelper(Context context, TextClassifier textClassifier, CharSequence text, int selectionStart, int selectionEnd, LocaleList locales) { - init(context, textClassifier, text, selectionStart, selectionEnd, locales); + init(textClassifier, text, selectionStart, selectionEnd, locales); + mContext = Preconditions.checkNotNull(context); + mDarkLaunchEnabled = TextClassificationManager.getSettings(mContext) + .isModelDarkLaunchEnabled(); } @UiThread - public void init(Context context, TextClassifier textClassifier, - CharSequence text, int selectionStart, int selectionEnd, LocaleList locales) { - mContext = Preconditions.checkNotNull(context); + public void init(TextClassifier textClassifier, CharSequence text, + int selectionStart, int selectionEnd, LocaleList locales) { mTextClassifier = Preconditions.checkNotNull(textClassifier); mText = Preconditions.checkNotNull(text).toString(); mLastClassificationText = null; // invalidate. @@ -956,7 +957,7 @@ public final class SelectionActionModeHelper { mSelectionOptions.getDefaultLocales()); } // Do not classify new selection boundaries if TextClassifier should be dark launched. - if (!mTextClassifier.getSettings().isDarkLaunch()) { + if (!mDarkLaunchEnabled) { mSelectionStart = Math.max(0, selection.getSelectionStartIndex() + mTrimStart); mSelectionEnd = Math.min( mText.length(), selection.getSelectionEndIndex() + mTrimStart); |
