Commit Graph

395 Commits

Author SHA1 Message Date
Gilles Debunne
59ba2b2fab Merge "Bug 5250788: LatinIME slows down as amount of Text increases" 2011-10-10 10:54:51 -07:00
satok
9ca4b4377c Add a hidden flag for the auto correction indicator in SuggestionSpan
Bug: 5245468

Change-Id: Ic111554da86fefd47dd9a26c1bd41e4ee57dc552
2011-10-10 16:38:33 +09:00
Gilles Debunne
287d6c6e12 Bug 5250788: LatinIME slows down as amount of Text increases
Removed unnecessary CharSequenceIterator and made the WordIterator
work on String instead of CharSequence

Submit words to the spell checker by batches.

Refactored WordIterator to make it intrinsically local.

Change-Id: Ie9e30691985a130fa55cd052005ddb22a21761cb
2011-10-07 13:27:52 -07:00
Fabrice Di Meglio
e921572bda Merge "Revert "Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)"" 2011-10-04 17:24:37 -07:00
Fabrice Di Meglio
ad0b051b13 Revert "Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)"
This reverts commit a130e5f59d
2011-10-04 17:21:26 -07:00
Gilles Debunne
67ed574cdb Merge "Bug 5250788: EditText gets slower has the entered text gets longer" 2011-09-30 10:57:51 -07:00
Fabrice Di Meglio
46c78b4de1 Merge "Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)" 2011-09-29 17:53:09 -07:00
Fabrice Di Meglio
a130e5f59d Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)
- make DynamicLayout honor max lines
- make StaticLayout.generate() take maxLines as a parameter instead of using the field mMaximumVisibleLineCount

Change-Id: I9eafb1be4b8bb2aa881514955a6903f559cb6a1e
2011-09-29 12:44:16 -07:00
Gilles Debunne
f4314dffbd Merge "Too many SpellCheckSpans are created." 2011-09-29 10:20:46 -07:00
Scott Main
31e04656e7 docs: add some more info to Time javadocs
Change-Id: I3c5ca668acda734f8a0da0ffbbc1bfa77ed72c2a
2011-09-28 21:36:51 -07:00
Gilles Debunne
d5ea0a1bc2 Bug 5250788: EditText gets slower has the entered text gets longer
Profiling showed that the bottle neck was in the word iterator.
Now initializing the word iteerator to only a window around the region
of interest to reduce the text analysis.

Change-Id: Ibfa4952cbf52a1b36726f965143ac7a6dc63673e
2011-09-28 19:04:30 -07:00
Gilles Debunne
b062e81e3a Too many SpellCheckSpans are created.
Removed the Runnable in SpellChecker, spell check is triggered at the end
of updateSpellCheckSpans instead of when a new SpellCheckSpan is created.

Cache the spans in updateSpellCheckSpans to limit the calls to getSpans.

When typing, every new letter in a word will create a SpellCheckSpan
(this is needed in case the user taps somewhere else on the screen)
The SpellCheckSpans are pooled in SpellChecker to limit unnecessary new
SpellCheckSpan creation.

Minor optimization on test order in getSpans to avoid some calculation.

Spell check is not started everytime the selection is changed (would be
triggered when the insertion handle is moved). Explicitely do that only
on tap.

Change-Id: Ibacf80dd4ba098494e0b5ba0e58a362782fc8f71
2011-09-27 15:06:52 -07:00
Gilles Debunne
52edaa9cfb Merge "Bug 5250788: TextView gets slower as the text length grows" 2011-09-26 14:18:14 -07:00
Fabrice Di Meglio
8013290dd0 Merge "Fix bug #5366547 TruncateAt.MARQUEE should be replaces with "two dot" ellipsis on hardware that dont support MARQUEE" 2011-09-26 12:16:41 -07:00
Fabrice Di Meglio
09175735c5 Fix bug #5344067 android.text.DynamicLayout.sStaticLayout can hold onto an Activity, potential memory leak
- make the StaticLayout constructor not depending on the text as we just need the "generate()" call to be done

Change-Id: I65249e65ed6446b6ac13dbf8c8f58fcdf54046cb
2011-09-25 16:48:04 -07:00
Fabrice Di Meglio
cb332649e4 Fix bug #5366547 TruncateAt.MARQUEE should be replaces with "two dot" ellipsis on hardware that dont support MARQUEE
- introduce TruncateAt.END_SMALL
- code refactoring for suppressing use of hardcoded constants

Change-Id: I70e24857cd5d6bd012a743cbc0ba46fbd06d5457
2011-09-25 14:39:27 -07:00
Fabrice Di Meglio
ba7bc59101 Merge "Fix bug #5349461 TextView: text that ends with an ImageSpan causes line height to shrink to ImageSpan height" 2011-09-23 15:18:37 -07:00
Fabrice Di Meglio
8a5137a5ae Fix bug #5349461 TextView: text that ends with an ImageSpan causes line height to shrink to ImageSpan height
- save current metrics values before updating them

Change-Id: I2d88dd7d30e8e01d0c5e2328973f256b689672b2
2011-09-23 13:40:58 -07:00
Gilles Debunne
945ee9b166 Bug 5250788: TextView gets slower as the text length grows
getSpans was called too many times in handleRun. Pre-compute the
subset of intersected spans and iterate over a subset of it instead.

Moving the instanceof test in getSpans after the other tests also
speeds things up a lot.

On a text with ~300 words, all with a span attached, getSpans went down
from 78% to 14% of the CPU usage.

Change-Id: I59bc44f610e9a548e0dcec68b180934da9e5c559
2011-09-23 11:00:27 -07:00
Gilles Debunne
b2beb92073 Bug 5279842: mis alignment after scroll
Refactored.

Original problem was the ALIGN_RIGHT case that was not handled.

Change-Id: Id01b75ac404b7ee92143e8cf6e3a3a838b794da8
2011-09-21 19:08:02 -07:00
Gilles Debunne
c9fd978da6 Bug 5281947: add to dictionnary option promoted in suggestions.
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
2011-09-09 17:01:31 -07:00
Gilles Debunne
5132273273 Hide method to fix the build
Change-Id: I5a556454a722bf037932632fa7e6ee6a2832a68d
2011-09-09 16:46:42 -07:00
Gilles Debunne
fa4e2d994b Bug 5278456: text highlight color depends on the type of suggestion spans.
Change-Id: I76ac02b7688a297c0e83d593f446a4cf2ee36015
2011-09-08 18:35:54 -07:00
Gilles Debunne
63c885f881 Bug 5250788: Fix memory consumption issues in TextPaint.
The increased size array was discarded in set. Reuse it instead if
possible to avoid more size increases later.

Change-Id: I9ab95ed0f4d4613dd1e28f02894bb19ecee7df41
2011-09-07 14:27:38 -07:00
Fabrice Di Meglio
c6fc20a91b Merge "Fix bug #5262565 Need to remove CharCount TextDirectionHeuristics" 2011-09-06 15:12:25 -07:00
Fabrice Di Meglio
be724dbc45 Merge "Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it" 2011-09-06 11:13:40 -07:00
Fabrice Di Meglio
e3bf88da23 Fix bug #5262565 Need to remove CharCount TextDirectionHeuristics
- update unit tests too

Change-Id: I7c518f58a9f17cb679bc3913bdd38243f7ad2195
2011-09-06 11:08:45 -07:00
Romain Guy
d3462ad713 Merge "Prevent crash when using <em> or <strong> in spanned strings Bug #5258853" 2011-09-06 10:55:53 -07:00
Romain Guy
dd808c0bd4 Prevent crash when using <em> or <strong> in spanned strings
Bug #5258853

Change-Id: Ifde1efe9ba3b44cfa0be55d51b2c9696cbe096f5
2011-09-06 10:54:46 -07:00
Fabrice Di Meglio
34d2eba560 Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it
Part 2

- make selection handles aware of the run direction

Change-Id: Idf41036de53d8968e7ae27eb87aea09e86bcd652
2011-09-02 18:03:21 -07:00
Gilles Debunne
572527f2c3 Merge "Remove the suggestion underline when the TextView loses focus." 2011-09-02 13:54:48 -07:00
Gilles Debunne
f3d78eac0f Merge "Added an add to dictionary option in suggestions for misspelled words" 2011-09-02 13:19:24 -07:00
Luca Zanolin
fe5e9834a3 Remove the suggestion underline when the TextView loses focus.
Only the easy correction (i.e., voice ime corrections) will lose the underline, while the misspelled span will not.

Change-Id: If96c17473dd70c99b808739ddde800cc93551e2a
2011-09-02 19:41:42 +01:00
Gilles Debunne
70a6312f09 Fixes around text selection
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
2011-09-02 11:26:46 -07:00
Gilles Debunne
e90bed18cc Added an add to dictionary option in suggestions for misspelled words
Change-Id: I031f17a76b4a81ae375b778046b8c391f9b8b2b2
2011-09-02 09:04:26 -07:00
Gilles Debunne
8a16f92270 Merge "Using ListView for Suggestion popup window" 2011-09-01 11:42:23 -07:00
Fabrice Di Meglio
be566b488a Merge "Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it" 2011-08-31 14:14:11 -07:00
Fabrice Di Meglio
3716601573 Fix bug #5243493 TextView selection is not working correctly when there is some RTL run into it
- make the selection green highlight work

Change-Id: I4e3b88e3720288f973b1b9e68afa8f800ad13779
2011-08-31 13:56:37 -07:00
Gilles Debunne
0eea668151 Using ListView for Suggestion popup window
New background assets from Bug 5204807.
New text selection color and associated handles, bug 5217848.

Change-Id: I4eaea6be732843d8ff344400d029b4a1b80b084f
2011-08-31 11:18:52 -07:00
Gilles Debunne
b5305007a6 Merge "Add EditTextShortcutSpan to provide edit short cut in the text view." 2011-08-30 15:53:33 -07:00
Fabrice Di Meglio
c6f19da0ff Merge "Fix bug #5197549 android.text.cts.StaticLayoutTest#testGetEllipsisCount fails on IRK49E mysid-userdebug" 2011-08-30 13:42:34 -07:00
Luca Zanolin
e6d3682189 Add EditTextShortcutSpan to provide edit short cut in the text view.
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
2011-08-30 18:04:34 +01:00
Fabrice Di Meglio
aef455fd5b Fix bug #5197549 android.text.cts.StaticLayoutTest#testGetEllipsisCount fails on IRK49E mysid-userdebug
- 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
2011-08-29 16:07:05 -07:00
Gilles Debunne
474cac1c21 Merge "Suggestions popup window is dismissed on tap outside." 2011-08-29 12:58:36 -07:00
Romain Guy
94d5e9ad65 Italic should be italic and bold should be bold.
Change-Id: I68933a7d7c32951c4d52d945baaedcb2583caef4
2011-08-29 11:12:19 -07:00
Fabrice Di Meglio
d32f27aec0 Merge "Fix bug #5199577 TextView with android:password="true" is showing the "dots" on the left even if the password chars are RTL" 2011-08-26 14:05:09 -07:00
Fabrice Di Meglio
7810b5f8cf Fix bug #5199577 TextView with android:password="true" is showing the "dots" on the left even if the password chars are RTL
- 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
2011-08-25 18:43:37 -07:00
Gilles Debunne
28294cc744 Suggestions popup window is dismissed on tap outside.
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
2011-08-25 11:45:09 -07:00
Gilles Debunne
6435a56a8c Spell checking in TextViews
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
2011-08-23 13:13:54 -07:00
Fabrice Di Meglio
c2d256b415 Merge "Improve TextDirection resolution" 2011-08-22 16:24:43 -07:00