Use the word the same way for suggestion and prediction. It makes
little logical sense that the trailing single quotes be removed
for suggestion lookup but not for prediction lookup.
Change-Id: I0de4b5f7c5b4c1b4ba1817ff9653d7c03967146d
Avoid special casing the whitelist dictionary by having it implement
the interface it pretends it implements
Change-Id: I8b873cb0f3fe13cefd32c8cb756a25c8ae16a2b4
The user history dictionary should be the one knowing it does not suggest words
beyond 2 characters, not Suggest.
Change-Id: Ie85ec6116eb495e0c7f51108e4620c5ae536f4bf
Many methods were public but could have been private: change them
to private. Also, add a comment above public methods that don't
come from the IMF to make it clearer why they are necessary.
Change-Id: I574154b015d09c0f8542b81763f497691afdc3c1
If !mWordComposer.isComposingWord(), then mWordComposer.getTypedWord()
will always return an empty string.
Change-Id: Ife66d0abc44c743cbc30d31724e833cda168fd5c
This is not exactly the same logically speaking, because it's
theoretically possible that the composing state changed in between
the message enqueueing and it's retrieval. However in the practice,
if the composing state changed the message *must* have been
cancelled and resent, else the behavior breaks. So this actually
is more robust, and removes some obscure requirements on the
calling code.
In the practice, it should also make the cancelUpdateSuggestionStrip
message useless, although this change does not yet remove it.
Change-Id: I75141920ce64e38e2f92e9c02b6c979936eee9a9
We just resetted the composing state - updating suggestions
is sure to yield no results. We may as well not call
updateSuggestions at all.
We should however still cancel any lingering timer from a
previous input field, to avoid this useless processing.
Change-Id: Ic1a19d577903d792bb797c837cc517ea8d430e75
If the separator is not a space, then we will always call
setPunctuationSuggestions and reset the suggestion strip anyway.
If the separator is a space, then the cursor has a space on
the left, which means isCursorTouchingWord depends only on
whether it touches a word on the right. If we were displaying
the "add to dictionary hint", it means a suggestion was just
chosen, so it had to be displayed, and that requires a composing
word and no non-separator at the right of the cursor.
In the end, if we go through this postUpdateSuggestions call,
we are sure we will reset the suggestions later in this method,
either by calling postUpdateBigramPredictions, or
setPunctuationSuggestions.
Change-Id: I95d5f77a5d0ac6d1a6ced8d67d6ac8f650db4a32