The basic idea is that in some situations, we would restart
suggestions, but before evaluating them we would bail out
because suggestions were not requested. This would lead to
the "correction" set to null, so we would commit a null word.
This fix does two things:
- Do not restart suggestions when not requested.
- If we still end up with a composing word when suggestions
are not requested, we select the typed word as the
correct version.
Bug: 5846646
Change-Id: Ic35351841d0cb20afa99092ef681ecb7bd68bec6
The method deleteWordAtCursor would call finishComposingText,
which is a very unexpected state change and would probably cause
surprising bugs to any parent that would call it.
As it happens, it's not used anywhere any more so let's just
remove it.
Change-Id: Iaa9200866e40b4e914f76baa987279948300679c
We need revised scoring test because dictionary look up algorithm has
been changed significantly since this SuggestTests was made.
Change-Id: I69d527a6bfa24ed0dc189fddad1afab0566c6eb8
Check if any character is both a magic space swapper and
a magic space stripper for the current language, and throw
an exception if found. Since this is expensive, it's done
only in debug mode.
Change-Id: Ibd166db87c91495b76878ea0e4f420a62c7bb276
This would crash the program when inputting a punctuation
symbol that should not swap with a weak space through the
suggestion strip, then press backspace.
Those include all two-part punctuation symbols in French for
example, as well as magic space strippers like the dash in
English. For English all suggestion strips symbols happen to
be magic space swappers so this would not happen in English
by default.
Also fix a typo.
Change-Id: Ia40678c264e978509b5786290a75a3c57181648e
This was introduced by a badly-rebased commit. The culprit was
I103d6851. There was also another bug lurking there introduced
by a previous commit that this fixes.
Bug: 5775347
Change-Id: I133b54a5159e19714f4bcae8ffbb4824cff9f466
As a consequence,
* Add Key.iconDisabledKey has been introduced and Key.getIcon honors
the enabled state of the key.
* The attribute id of disabled icon for shortcut key,
Keyboard_iconShortcutKeyDisabled, is renamed to
Keyboard_iconDisbledShortcutKey
* KeyboardIconsSet has getIconByIconId and getIconByAttrId methods
instead of getIcon.
Bug: 5778201
Change-Id: Ica93b073b9a04acd18ead7a33b60e3c6d813e7a1
Also this change moves LatinKeyboard attributes,
autoCorrectionSpacebarLedEnabled, autoCorrectionSpacebarLedIcon,
spacebarTextRatio, spacebarTextColor, and spacebarTextShadowColor to
LatinKeyboardView.
Change-Id: I7cc27ce1fc550e9f620a9ed0fbe4b8172902d5a1
* Get rid of Key.keyIconShifted attribute.
Add Keyboard.iconShiftKeyShifted to KeyboardIconsSet.
* Get rid of LatinKeyboardView.disabledShortcutIcon attribute.
Add Keyboard.iconShortcurKeyDisabled to KeyboardIconsSet.
* Add Keyboard.iconSpaceKeyForNumber to KeyboardIconsSet.
* Fix misplaced autoCorrectionSpacebarLedIcon resources.
Change-Id: I381bff3789254977ab3cb18f58f95b3c433b1e1a
As a result, this change moves shortcut related update code to
LatinKeyboardView from LatinKeyboard.
Change-Id: I1882672577f61e73c90d6c018b7dbb61f3fe21e4
In deriving various shift stated alphabet keyboards from base/main
keyboard, almost all keys should be shared among variants. Grouping
keys in Set instead of List is a essential refactor to have.
Bug: 5002108
Bug: 5679585
Change-Id: Idd5644d1c45a3276a24b61c984619c03d4e4c54c
This is the last one (whew)
Also move a somewhat unrelated initialization out of the
input attribute initialization function.
Change-Id: Icc77b32fd16b112ab43786715061b1c9dca31c04
The ultimate intent is to make these variables final,
which will allow to move the computing function to the
InputAttributes class.
Change-Id: Ifb1fc7321a19b10d60aa63fa0daaa2708deda2cf
...instead of the hard-to-understand mHasUncommittedTypedChars.
This is possible because now the word composer is actually aware
of commits.
Change-Id: I36b664ce8402a280f801e87b9ebe161f416b0853
Currently, these variables hold the info about the composing
word, or maybe some outdated info, and it's not very clear
which it is. LatinIME is maintaining the freshness info in
a separate boolean, and uses it throughout the code for many,
many things, leading to much confusion.
The idea in grouping this info is, it can be saved in another
instance and restored later. It can be tested against to know
whether there is actually outdated but kept info or not, and
it should allow to straighten out what is actually currently
being typed. Ultimately, it will eliminate the need for
LatinIME to keep track of the status of the info in the
word composer.
Change-Id: I00e2c690f303f8320c9be35590a6df4583e9e456