This bug was leading to corrupted rendering of surrogate pairs in the following
scenario.
1. Type some emojis
2. Move the cursor at the beginning of the text field
3. Hit backspace even though there's nothing to delete
4. Move the cursor after some emoji
5. Hit backspace
The root cause of this issue was the out-of-sync mExpectingUpdateSelection if
handleBackspace() gets called when the cursor reaches at the beginning of the
TextView. In such case, mExpectingUpdateSelection shouldn't be set true because
there's nothing to delete, so there will be no onUpdateSelection() calls associated
with it. Due to this bug, the cache in RichInputConnection could get stale at step 4
described above. Then the following handleBackspace() that should delete a surrogate
pair was not working correctly because of the stale cache.
bug: 11181913
Change-Id: I9c6a948331726a821bd3ccec9c1d02dec2c4703a
The available space was not computed correctly. This makes the
decision to ellipsize/expand the middle suggestion correct.
Also, the scale was not applied correctly in some cases.
Finally, for some reason ellipsize does not work as we expect.
I'm not sure how to get it to work like we want it to, but
this works around the problem in a simple manner.
Bug: 11158757
Change-Id: I083e7ac56e157f100923733e67b92a6368a526c9
This adds all those popup keys that were included in commit
b1cb13292f when the Swedish keyboard was
first added. Many of these definitions were later removed by commit
79b965e04f but most likely by mistake, as
that commit log message doesn't mention anything about removing these.
To help making this file more maintainable, this commit also moves a few
definitions around so that all definitions now appear in alphabetical
order.
Change-Id: Iadef9e3dd1dc7b39fe87b2fc75210d0697b24361
We want to use StringUtils here, but it's full of references to
stuff not accessible host-side like JsonReader and TextUtils
and SettingsValues :/
Bug: 11061476
Change-Id: I3c0194979833ede283b4f9190335dba5376fe6fc
Since loadKeyboard relies on the input connection being
available to give it the auto-caps state, but also can't
be called twice in a row because it needs to save and
restore its state and invalidates it after the restore,
we need to wait until we know we have a valid input
connection to call it.
Bug: 11107229
Change-Id: I1c7baf3215682df6f6ceb357bd37254f9e7418c7
- GC gets failure when the dictionary become empty.
- Useless unigrams are sometimes not removed.
Bug: 10197478
Change-Id: I8d1479c01efba61a81f03bc077da6bcb4797a940
This is not the right way to do it, but it's simple and will kill the
regression. We should investigate why the return values are
wrong in this case.
Bug: 10780091
Change-Id: I808727242c9cb1598df00a7426358dc3a658add4