* commit 'aaabce8d30fd0eb6e217359c839a846037f8e091':
Do not merge. Revert emoji key position to JB-mr2
Fix: Native crash when an empty attribute is written. DO NOT MERGE
Use reentrant lock for main dictionaries. DO NOT MERGE
Stop reading dictionary while regenerating. (DO NOT MERGE)
* commit '46742367fbc484de6e0433eb9f5b5862c3f7d9cc':
Do not merge. Revert emoji key position to JB-mr2
Fix: Native crash when an empty attribute is written. DO NOT MERGE
Use reentrant lock for main dictionaries. DO NOT MERGE
Stop reading dictionary while regenerating. (DO NOT MERGE)
* commit '09ecfc062b756e4a452e04f55df49023b5f0eae9':
Do not merge. Revert emoji key position to JB-mr2
Fix: Native crash when an empty attribute is written. DO NOT MERGE
Use reentrant lock for main dictionaries. DO NOT MERGE
Stop reading dictionary while regenerating. (DO NOT MERGE)
* commit 'cf0a94fa9a7c8a5b259507cab616239f79349444':
Do not merge. Revert emoji key position to JB-mr2
Fix: Native crash when an empty attribute is written. DO NOT MERGE
Use reentrant lock for main dictionaries. DO NOT MERGE
Stop reading dictionary while regenerating. (DO NOT MERGE)
The only use of mDeleteCount is to implement delete
acceleration. It's reset at each non-delete code point, and
is guarded by a timer.
Plus, ultimately we want to remove this completely :
acceleration should be implemented by actually deleting
stuff faster, not by deleting several code points at a time.
Change-Id: Ia3144860b3aa2499034f2a2a7c81f32087af9598
We don't support LOG_FULL_TEXTVIEW_CONTENTS any more, nor do
we have any plans to support it again in the future.
This also is a prelude to removing mIsExpectingUpdateSelection.
Bug: 11226045
Change-Id: Ib68c6daf52993b87225a7ea9e71a414caaecfdb7
cherripick of I9c6a948331726a821bd3ccec9c1d02dec2c4703a
(forward cherrypicking this because the automerger is stuck now.)
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: I1cbf444d8d105416e7de75c16d80b3797f470495