TextView uses a sub-display list to 'cache' the rendering of its
text. This saves time when drawing an editable text, where the blinking
cursor forces a re-draw twice per second, which creates pauses during
scrolling.
Added a sub-display list invalidation when an appearance span is
modified/added/removed.
Also added an invalidation of the display list when selection range
is changed.
Change-Id: I41e8068a12902b8a745c5bb77de8c77def76a270
Adding a view above the currently displayed child in a ViewAnimator
will cause the displayed child index to become stale, because it is
not incremented to reflect the new position of the currently displayed
view. This fix adds logic to the addView() override to increment the
index correctly.
Change-Id: I9c756ce51a8e8dcbeef8f0e4fbb3704482c21e9d
Bug 5755099
In extracted text mode, we spell check the background and the foreground
edit text. All changes in the background are already propagated to the
foreground, and updates on the foreground may trigger a spell check
of the entire text since we use setText.
Change-Id: Ie44c3d9113258082ac6df5890851d0e21c702ea2
Bug 5738416
This problem was introduced in
https://android-git.corp.google.com/g/#/c/152599
The invalidated cursor region is no longer expanded to include the
cursor drawable (different from the handles' drawables).
Added that code back. Added a flag, since invalidateRegion is also
used to invalidate text span regions in spell check (assumes the decorated
span bounds are not bigger that text boundaries), which is fine in case
of underline.
When the cursor is moved on a single line, invalidate the whole line
(same as what was done before). This is sub-optimal, will file a bug
to fix this. The core problem is that we should invalidate the previous
and the new cursor's positions. We only have one of these.
Change-Id: I9ada9340fb52aad3d80c39efd021fd3f9ec0cc4d
Limit each parse to batches of a few words, to keep the UI thread
responsive.
Possible optimizations for the future:
- SpellCheck in a thread, but that requires some locking mecanism
- Only spell check what is visible on screen. Will require additional
spans to tag the pieces of text.
This is a cherry pick of 145656 into ICS-MR1
Patch Set 2: Make the Runnable shared and stop it when detached.
Change-Id: Ibf8e98274bda84b7176aac181ff267fc1f1fa4cb
1. If the number picker was not wrapping the selector wheel
it was incorrectly initializing the fling scroller and
the error was proportional to the difference of the
current value and the max size. As a result if the number
picker gets stuck for a very long time.
2. The alpha of the selector wheel paint was not reset on
every subsequent fling so if the wheel was fading out
and a new fling is performed the selector wheel is
dimmed during the fling, rather bright.
bug:5728363
Change-Id: Ia90a6af86f162bda1b28f43f7ba7e4a9f5051b78
* commit 'a21ce1f1107e1aad19335bebe4aed915158b5ca6':
Workaround for issue where the notifyDatasetChanged call chain is broken when Launcher is killed. (Bug 5703782)
Bug 5709546
Change 1a22db29 created a potential leak: setText calls
sendOnTextChange that now calls updateSpellCheckSpans.
The original call to updateSpellCheckSpans made sure the
View had been attached to a window, through the existence
of the SpellChecker object.
The mSpellChecker object will now only be created when the
View is attached, all other spell related method will do
nothing if it has not been initialized.
Change-Id: I8885c12be6395e2346c0ed057bb6a275256f012b
This fixes a bug where a word would be entered in the user
dictionary with the wrong locale.
Bug: 5667272
Change-Id: I219d5461f8f8c74b6ab34f9bb157a4b977f00e68
Bug 5555929
This problem only happens when in landscape extracted text mode.
A suggestion pick from the popup window replaces the text in the ExtractedText,
when it should do it in the underlying source EditText instead.
When the replacement text is longer than the replaced text and is at the end
of the text, an IOOB occurs because the ExtractedText was not modified (we now
correctly change the source text using replaceText_internal).
This is basically an implementation of the TODO comment next to setSpan in
TextView.
Change-Id: I6575137530e0bb5c9ac7e40cc2bba9c66dc254d2
Test for a change in the spell checker activate state on every
spell check. Add/remove suggestion spans accordingly.
Change-Id: I750f30b81464b85cebc695bdb0449ec038fc17df