- 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
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
Check for null on arguments to Time#compare(Time, Time) before passing
it down to JNI code.
Bug: 5073949
Change-Id: I077e9d5194a89206d1e51fc89a72c8a72e29f8f1
Bug: 4443922
- Instantiating other package's class for the name is complicated, so we changed the internal value for the notification target class from Class to String.
- Implement equals
Change-Id: Iaf7682be777f0027d33c9a3be4609ac01b6950ad
This is the type returned by event.getX/Y methods. Conversion
to ints is only performed when needed. Low performance impact
since there is only a minimal amount of computations on these
values.
Change-Id: I53a56efe5e3a1a96911adc25fedaab7f40f1ba8e
This is the exception case: text replacement should NOT remove SuggestionSpans
when this is the result of a Suggestion pick in the popup.
Save them and restore them after the text replacement.
Only spans that entirely englobe the replaced region make sense after the
text replacement.
Change-Id: Ib18eb6437c3a63fd0e788ebd4565c8f42e83503b
SuggestionSpans do not make sense anymore when the text they
refer to is modified. Removed these at the lowest possible common
level: In the SpannableStringBuilder that is used to back the Editable.
This way, IME do not have to care about removing these when they change
text. And they cannot forget to so either.
Also fixed a bug in TextView's paste with multi-item paste text (never
exercised, since we have no source for such a thing).
Change-Id: I08ed921f8c04ffb1a00936a3e554a85ee82f103c