diff options
Diffstat (limited to 'core/java/android/widget/SelectionActionModeHelper.java')
| -rw-r--r-- | core/java/android/widget/SelectionActionModeHelper.java | 21 |
1 files changed, 12 insertions, 9 deletions
diff --git a/core/java/android/widget/SelectionActionModeHelper.java b/core/java/android/widget/SelectionActionModeHelper.java index 1f2b90a11616..8f1f1ab2e5c0 100644 --- a/core/java/android/widget/SelectionActionModeHelper.java +++ b/core/java/android/widget/SelectionActionModeHelper.java @@ -70,7 +70,6 @@ public final class SelectionActionModeHelper { private final Editor mEditor; private final TextView mTextView; private final TextClassificationHelper mTextClassificationHelper; - private final TextClassificationConstants mTextClassificationSettings; @Nullable private TextClassification mTextClassification; private AsyncTask mTextClassificationAsyncTask; @@ -84,7 +83,6 @@ 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, @@ -92,7 +90,7 @@ public final class SelectionActionModeHelper { 0, 1, mTextView.getTextLocales()); mSelectionTracker = new SelectionTracker(mTextView); - if (mTextClassificationSettings.isSmartSelectionAnimationEnabled()) { + if (getTextClassificationSettings().isSmartSelectionAnimationEnabled()) { mSmartSelectSprite = new SmartSelectSprite(mTextView.getContext(), editor.getTextView().mHighlightColor, mTextView::invalidate); } else { @@ -105,7 +103,7 @@ public final class SelectionActionModeHelper { */ public void startSelectionActionModeAsync(boolean adjustSelection) { // Check if the smart selection should run for editable text. - adjustSelection &= mTextClassificationSettings.isSmartSelectionEnabled(); + adjustSelection &= getTextClassificationSettings().isSmartSelectionEnabled(); mSelectionTracker.onOriginalSelection( getText(mTextView), @@ -212,6 +210,10 @@ public final class SelectionActionModeHelper { return mSmartSelectSprite != null && mSmartSelectSprite.isAnimationActive(); } + private TextClassificationConstants getTextClassificationSettings() { + return TextClassificationManager.getSettings(mTextView.getContext()); + } + private void cancelAsyncTask() { if (mTextClassificationAsyncTask != null) { mTextClassificationAsyncTask.cancel(true); @@ -245,7 +247,7 @@ public final class SelectionActionModeHelper { if (result != null && text instanceof Spannable && (mTextView.isTextSelectable() || mTextView.isTextEditable())) { // Do not change the selection if TextClassifier should be dark launched. - if (!mTextClassificationSettings.isModelDarkLaunchEnabled()) { + if (!getTextClassificationSettings().isModelDarkLaunchEnabled()) { Selection.setSelection((Spannable) text, result.mStart, result.mEnd); mTextView.invalidate(); } @@ -906,7 +908,6 @@ public final class SelectionActionModeHelper { private static final int TRIM_DELTA = 120; // characters private final Context mContext; - private final boolean mDarkLaunchEnabled; private Supplier<TextClassifier> mTextClassifier; /** The original TextView text. **/ @@ -942,8 +943,6 @@ public final class SelectionActionModeHelper { CharSequence text, int selectionStart, int selectionEnd, LocaleList locales) { init(textClassifier, text, selectionStart, selectionEnd, locales); mContext = Preconditions.checkNotNull(context); - mDarkLaunchEnabled = TextClassificationManager.getSettings(mContext) - .isModelDarkLaunchEnabled(); } @UiThread @@ -982,7 +981,7 @@ public final class SelectionActionModeHelper { mTrimmedText, mRelativeStart, mRelativeEnd, mDefaultLocales); } // Do not classify new selection boundaries if TextClassifier should be dark launched. - if (!mDarkLaunchEnabled) { + if (!isDarkLaunchEnabled()) { mSelectionStart = Math.max(0, selection.getSelectionStartIndex() + mTrimStart); mSelectionEnd = Math.min( mText.length(), selection.getSelectionEndIndex() + mTrimStart); @@ -1010,6 +1009,10 @@ public final class SelectionActionModeHelper { } } + private boolean isDarkLaunchEnabled() { + return TextClassificationManager.getSettings(mContext).isModelDarkLaunchEnabled(); + } + private SelectionResult performClassification(@Nullable TextSelection selection) { if (!Objects.equals(mText, mLastClassificationText) || mSelectionStart != mLastClassificationSelectionStart |
