When several SuggestionSpans are available at a given position, their
content are merged, in creation time order.
As a result, the IME's suggestions are picked before the spell check, and
no add to dictionnary option is created.
This CL modifies the comparator to make easy correction spans appear first
(Voice IME), then misspelled words and then regular suggestions.
Also avoids the creation of a new comparator and length hash map on every display.
Change-Id: I1f9f031a6fdcbbc09f248a192b83051092765f8e
The increased size array was discarded in set. Reuse it instead if
possible to avoid more size increases later.
Change-Id: I9ab95ed0f4d4613dd1e28f02894bb19ecee7df41
Only the easy correction (i.e., voice ime corrections) will lose the underline, while the misspelled span will not.
Change-Id: If96c17473dd70c99b808739ddde800cc93551e2a
Text selection mode was started by two consecutive taps inside a
field with selectAllOnFocus.
ArrowKeyMovementMethod does not respect the possible cancelLongPress and handles up events.
As a result a scroll that happens to end up at its initial position will be considered a tap
and will move the cursor.
This is however not considered as a tap in TextView and a possible selection mode would not
be stopped in that case.
Fixed by making ArrowKeyMovementMethod aware of the cancel that happened in Touch.
Change-Id: I07372b703f250e1edc7ee0665318ce30441b9187
New background assets from Bug 5204807.
New text selection color and associated handles, bug 5217848.
Change-Id: I4eaea6be732843d8ff344400d029b4a1b80b084f
At the moment, EditTextShortcutSpan allows only the deletion of the text. In the future, we may decide to add extra functionality,
like "retry" where all the text is removed and a specific IME is triggered.
Fix the underline. The underline is not defined in thickness, and not as a multiplier of the default underline thickness.
Change the behaviour of SuggestionRangeSpan to match the specification.
Change-Id: I80437d9887c7a2ff8f62c38afbb0cb7add7ee9c8
- make the ellipsizing condition easier to read
- allow ellipsizing only and only if
- not MARQUEE
- single line
- END only on the last visible line when multiple lines
Change-Id: I6b08e4a735ebc4875a208f0538d9cf937240316e
- force TextView to LOCALE text heuristic when in "password" mode
- remove TEXT_LAYOUT_DIRECTION_UNKNOWN_DO_NOT_USE
- LocaleUtils.getLayoutDirectionFromLocale() returns "LTR" is locale is NULL or ROOT
Change-Id: I182c46aaf2d73c8b18967fffa230bfabec91ed06
But now the tap is not handled at all, as it was before. To do this, the popup window
is now focusable. As a result, the TextView's window loses focus. We hide the
cursor to prevent a non-blinking visible cursor. We should also fake the
state of the parent TextView to keep it visually focussed.
SuggestionRangeSpan and SpellCheckSpan had to made Parcelable since they are recreatedi
when the TextView is re-created when the popup is dismissed.
Change-Id: Ic99b2c4f02c282394f214938dd19168547af4886
New UX interactions (the Paste action is no longer displayed after a delay)
suggestionEnabled flag replaced by existing input type flag.
removeSpans fixed in SpannableStringBuilder to always send notifications
SuggestionSpan handled by TextView instead of SpannableStringBuilder
New span update algorithm to correctly handle edition around word boundaries.
Change-Id: I52c01172f19e595fa512e285a565a3fd97c3c50e
- use the real TextDirectionHeuristics constants
- make more formal that LayoutDirection should be resolved BEFORE TextDirection
- reset TextDirection if LayoutDirection is recomputed
- remove non used TextDirectionHeuristic.isRtl(CharSequence...)
Change-Id: I1d53a7e3ee324cfd27785bb4d715d93de8d9ff4d
SuggestionSpan can be accessed in two different ways:
- by tapping on the text (easy access)
- by tapping on "replace" pop-up (not easy and difficult to discover)
The "easy access" will be used for dictionary suggestions and voice recognition suggestions.
The suggestion span can be rendered into two different way:
- default, text is underlined in blue
- spelling error, text is underlined in red
Change-Id: I0af0fe6700d0ad588facb21c021dc6f59ef172f1
- force ellipsising when there are more lines found than maxLines
- do not care about lines when we have reached maxLines
- also fix relayouting when changing maxLines thru setMaxLines()
- do not allow START / MIDDLE ellipsis when there are multiple lines
(and print a log accordingly)
Change-Id: I90f5a7f5200a220aceee01fb7300bec2c4c3a075
- do not go to native if this is not needed (empty or null text)
- do expandMetricsFromPaint() in TextLine when needed instead of calling handleText()
with emty string just for doing expandMetricsFromPaint()
Change-Id: I1f566ccef66cbc990ebbb77ef149899119e37e84