The symptom : when text is selected and the device is rotated,
sometimes the keyboard sets the word as being composed around
the start of the selection. Upon the next rotation this ends up
with the keyboard committing some text in place of the selection.
The cause : another bug in the framework with rotation >.>
The keyboard receives a call to startInput with a wrong cursor
position, namely one that does not represent a selection. The
keyboard sets a composition according to this wrong data. When
the keyboard is rotated again, it commits the text, which takes
the place of the selection.
The solution : actually when restarting input the keyboard
realizes that the cursor position is wrong. We cancel composition
at that time.
For robustness, this change also implements two other defensive
changes : upon call to onUpdateSelection, we actually realize
that the previous values were wrong, so we also fix it at that
time, and in addition, when rotating, we finishComposingText()
instead of commitText() which is less dangerous. Implementing
this later change also allows us to let less internal variables
from InputLogic escape to LatinIME, so it's also a good change
for design.
Bug: 14140799
Change-Id: Ib10de18e53e376ac1bbc8487e13d969828483346
When
1. The important notice message is shown on the suggestions strip.
2. And the "Show correction suggestions" settings is off.
we will keep showing the important notice message on the suggestion
strip.
Bug: 13741460
Change-Id: I411007ab1e5e6959b6cdba7a6601a84635259313
This CL fixed the breakage caused by DistracterFilter.
It should be checked in together with I8f53e9481c0f
Bug: 14911612
Bug: 13142176
Change-Id: I33c3526165cea58926d10404552f1fadc385c2e5
With this CL, the implementation of StatsUtils no longer
needs to know how to read settings from the system.
Insted, the LatinIME class is now responsible for notifying
StatsUtils whenever the settings is changed.
BUG: 14324207
Change-Id: Ic3d26ec31c8d2c082d3e7487b578b323aad2f960
This CL also renames AccessibleKeyboardViewProxy and
AccessibilityEntityProvider to MainKeyboardAccessibilityDelegate and
MainKeyboardAccessibilityNodeProvider.
Change-Id: I2b0ec091a11aa8a495794d633efecb6d8b818f42
With this CL, LatinIME starts using
InputMethodManager#shouldOfferSwitchingToNextInputMethod when
available and API level is higher than 19 (KitKat).
Note that relevant settings of LatinIME will be ignored if
InputMethodManager#shouldOfferSwitchingToNextInputMethod is
considered to be available at the moment. We will revisit
here to reorganize the user visible settings before the
new global IME switching mechanism becomes publicly
available.
BUG: 12965588
Change-Id: I0188fa56cba8e983c61cef3ae3400a0e3821f718
It was implemented according to the Plan B in the
design doc:
http://go/ime-misspelling-filter
This CL is to create a DistracterFilter instance
and pass it to PersonalizationDictionarySessionRegistrar.
This patch should be checked in together with
Id633b4fd45693
Bug: 13142176
Change-Id: Ia4957e64218c9619fcf9bb91795a187617c72a2e