Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7af1f966 authored by Gilles Debunne's avatar Gilles Debunne
Browse files

Fix for IOOB when suggestions have disappeared

This new test is required since the suggestion popup is now triggered by a
Runnable. We have to make sure there is still at least one SuggestionSpan
at that position.

Change-Id: I5c84ba0ca412f51a0201bee5c2e63b5bd3717338
parent 3f696b26
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -9754,12 +9754,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
        public void show() {
            if (!(mText instanceof Editable)) return;

            updateSuggestions();
            if (updateSuggestions()) {
                mCursorWasVisibleBeforeSuggestions = mCursorVisible;
                setCursorVisible(false);
                mIsShowingUp = true;
                super.show();
            }
        }

        @Override
        protected void measureContent() {
@@ -9814,11 +9815,13 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
            super.hide();
        }

        private void updateSuggestions() {
        private boolean updateSuggestions() {
            Spannable spannable = (Spannable) TextView.this.mText;
            SuggestionSpan[] suggestionSpans = getSuggestionSpans();

            final int nbSpans = suggestionSpans.length;
            // Suggestions are shown after a delay: the underlying spans may have been removed
            if (nbSpans == 0) return false;

            mNumberOfSuggestions = 0;
            int spanUnionStart = mText.length();
@@ -9904,6 +9907,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
                    Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

            mSuggestionsAdapter.notifyDataSetChanged();
            return true;
        }

        private void highlightTextDifferences(SuggestionInfo suggestionInfo, int unionStart,