This increases the chance of hitting the correct letter when typing a word
that exists in the dictionary, rather than only correct it after the fact.
It is most effective after 2 or 3 letters of a word have been typed and gets
more accurate with more typed letters in the word.
If 2 adjacent letters have similar probabilities of occuring, then there is no
hit correction applied.
When there is more than one instance of a name in the Contacts, it
gets a very high weightage and can override corrections for very
high frequency words such as "the".
This fix prevents multiple occurences from increasing the frequency
of a contact and also from bumping it above 255, which is the frequency
of "the", "is", etc.
Makes the user/contacts dictionary lookup faster. This is necessary because
there's more in these dictionaries now and it's written in Java.
Fix an auto-caps issue when moving the cursor. And do it a little lazily.
Fixed a bug that was causing user dictionary words to get a much
higher weightage than the main dictionary.
First pass at automatically adding new words that the user types and deliberately
accepts.
After typing the word 4 times, the word gets promoted to being valid.
After typing the word 7 times, the word gets added into the UserDictionary and can
be removed from the UserDictionary Settings UI.
Also add a second row of symbols to the period popup.