Commit Graph

78 Commits (e09520290fbcaff9a143e8c8bce80161b0e2c5a1)

Author SHA1 Message Date
Jean Chalard a9876980c8 Fix a possible deadlock.
Bug: 5359873
Change-Id: I80ae901c43b6ae59879e3c8b1a9dd8a937d558c1
2011-09-26 18:16:24 +09:00
Jean Chalard e897e4d342 Have the spell checker report IN_DICT correctly
...even if the word is filtered out.
This also contains minor refactoring.

Bug: 5329658
Change-Id: I397a2a74f819a51df3bd07c6b94e8d29244389c4
2011-09-16 18:26:02 +09:00
Jean Chalard 97ec205504 Merge "Add an option to user dict to match more precise locales" 2011-09-15 02:28:20 -07:00
Jean Chalard cfed273922 Add an option to user dict to match more precise locales
This should not be used lightly, as it violates the general
contract of locale, and does kill some legitimate (albeit
alledgedly rare) use patterns.
Currently, the spell checker uses this because it uses a
negative logic: it should match broadly, and when in doubt,
match even more broadly, which is almost never the case of
something that uses the locale.
In other words: don't use this option unless you are
very, VERY sure that's what you want. Hint: it isn't

Bug: 5280929
Change-Id: Ib3cae319c692161d653630038c5bcde1f4340c05
2011-09-15 18:01:13 +09:00
Jean Chalard 199dc5e0e4 Don't kill LatinIME if the spellchecker crashes.
If the spellchecker encounters a bug and happens to crash,
it may be sensible to avoid killing the keyboard in response.
This is a possible way to do it, which comes with the big
drawback of making bugs in the spell checker harder to find.

Change-Id: Idb26fb592b9718e1dbdadeda8fbd1a8a1d805c28
2011-09-15 16:01:21 +09:00
Jean Chalard 88fa53b840 Filter out of spellchecking words that don't look like words
Note that this affects only the results of the spell checker if
actually passed such a word. For example, the spell checker will
not flag "http://oju" as a typo, because it looks like a URL.
But in the current implementation, TextView passes "http" and
"oju" separately, so "oju" is still flagged as a typo.

Bug: 5281875
Change-Id: I9d721fd3af34edc51b11908cf2e8fe994b164242
2011-09-14 17:46:06 +09:00
Jean Chalard 63e55cd55e Don't report 1-char words as typos
Bug: 5281875
Change-Id: If6b6d057e18390bf01dcd31c46104b6856fbdbda
2011-09-13 21:45:19 +09:00
Jean Chalard f5ef30dfc6 Have the spell checker honor case
Bug: 5281103
Change-Id: I415c84dbb55f1eeb5deb9f248b4056881982ee13
2011-09-12 12:25:25 +09:00
Jean Chalard af3b56c887 Fix a bug where the wrong suggestion score would matter.
Also introduce a few debug prints.

Bug: 5240463
Change-Id: Iea2fffa3be9d7bd69da751ece9e67e94e9819ee1
2011-09-08 21:17:24 +09:00
Jean Chalard 59b501a050 Only set LOOKS_LIKE_TYPO if the max score meets a threshold
Bug: 5240463
Change-Id: I51e85edae57789d638aa1e12b82e6a75c49d33c7
2011-09-05 12:31:43 +09:00
Jean Chalard f019d505d7 Fix a bug with synchronicity of spell checking/user dict
This fixes a race condition that would end up with the spell
checker not finding some words in the user dictionary when it
just booted.

Bug: 5194627
Change-Id: I1ba911cc53e6ae3b111d54a6f91d1d5feef3f5de
2011-08-29 18:33:20 +09:00
Jean Chalard ef35cb631c Move locale-related utility methods to LocaleUtils.
Change-Id: I7e9e6e5bc4486d8618d0213b112308c3d305c15e
2011-08-29 12:29:35 +09:00
Jean Chalard 6b166a1933 Remove duplicates from the spell checker suggestions.
Bug: 5175740
Change-Id: I592401b3b8c3074d70e06dc3a9919cc3cb47ba49
2011-08-22 18:44:04 +09:00
Jean Chalard 5d4c5692f1 Fix case sensitivity for the spell checker.
The new behavior is as follows:
- If the word in the dictionary is not fully lower case, then the
exact case is required to match.
- If the word in the dictionary is fully lower case, then any of
the following patterns match:
  - fully lower case
  - only the first char capitalized
  - all caps
Any other capitalization is rejected.

This is probably what people want. If you type a name in all lower
case, it should be marked as a typo, but if you type a word with a
capital for emphasis or just because it's the start of the sentence,
it should match a lower case word in the dictionary. If you have
a spurious capital letter in the middle of a word because of a typo,
it should be marked as such.

Accents are not affected, and should not be. An accented letter
is a different letter and a missing accent should be reported.
We should maybe consider again for some common transpositions
like the "ue" digraph for German, which is now considered a typo,
but will suggest the correct diacritics as the first suggestion.

Bug: 5145751
Change-Id: I651e24f13c90fb94700a1674ad380e95336e7dca
2011-08-22 14:02:57 +09:00
Jean Chalard 150bad6fd4 Have the spell checker use the User dictionary.
Bug: 5175868
Change-Id: I165eee4c865caa5ee1daf3e0b1acde8788b996ef
2011-08-19 17:19:49 +09:00
Jean Chalard c160373b6a Close dictionary pools when they are not used any more.
Bug: 5156851
Change-Id: Icaba54734eb790b40dc2012aac25df5b2af71dbb
2011-08-16 20:04:57 +09:00
Jean Chalard a562767a14 Have a pool of dictionaries to check spelling.
The dictionaries and proximities are not thread-safe. In order to
be able to check spelling in parallel, make a dictionary pool to
call upon when a spelling check is necessary.

Bug: 5156851
Change-Id: Ie3796164187dd7b7abf5ccd5d014073d43d74408
2011-08-16 18:13:12 +09:00
Jean Chalard 70b9c5d991 Make the spell checker re-entrant.
Until the dictionary itself is re-entrant, unfortunately we have
to synchronize accesses to it.

Bug: 5156851
Change-Id: I1629a160d707e6fa1ad80cba828798abb24b68b1
2011-08-16 13:58:37 +09:00
Jean Chalard 31fd54c53f Add a settings activity for the spell checker.
Bug: 5156940
Change-Id: I762de1296f861abce2d0413404bca54571e0ea0a
2011-08-12 19:07:51 +09:00
Jean Chalard f098fbbef3 Add proximity info for the spell checker.
Bug: 5119987
Change-Id: I35700fd8b0ffa6bced428cc6d46b3f64eb251281
2011-08-09 17:24:28 +09:00
satok 5bcf8ee66c Update the spell checker according to API cleanup
Change-Id: Ia95a63963c16265bc9bc7e1fcecf120e17bf8636
2011-08-05 19:57:47 +09:00
Jean Chalard 3234123fba Implement the spell checker.
Bug: 4176026
Change-Id: I297c47202e96ce0db74d703f30709777f26b93ac
2011-08-04 21:27:14 +09:00
Jean Chalard 043f784198 Create a way to pass the proximity info to the dictionary
This is a preparative change for inserting the spell checker.

Change-Id: Ie441879cac4f67078ec27a95f1fcbbf3ef373df7
2011-08-04 19:46:21 +09:00
satok 55d1c5efab Temporary don't use "looks type" for comming rename cl.
Change-Id: If016a61f9e303b615c59c0035724256535aec817
2011-08-03 18:42:56 +09:00
satok a90992e562 Modified the test spell checker
Change-Id: Ib64fac8672a4107638cd05a0232d46b49fc4aa8c
2011-07-28 20:55:00 +09:00
satok 022c1cc203 [step3] Add spell checker service.
Change-Id: Ib13b3a524e0f0b90de40a3e255040b3158d49258
2011-07-25 11:05:24 +09:00
Tadashi G. Takaoka acd1a1c7a8 Add ArraysCompatUtils.binarySearch
Until API version 9, java.util.Arrays.binarySearch(int[], int, int,
int) doesn't exist.

Change-Id: Ife0ed4fbac642eda069e7b6f6b8dd30e0cd5fdee
2011-06-21 17:02:38 +09:00
Jean Chalard 8fd75b3147 Add spell checking core methods.
Bug: 4176026
Change-Id: Ic6ea3e084b3ebacfc5fd998d2c7b0130f7b0ec48
2011-06-03 17:11:16 +09:00