Commit Graph

1714 Commits (19a7012db59efdc45d58c86085c2e8c871806761)

Author SHA1 Message Date
Tadashi G. Takaoka 6a96c508fd Fix logic to show suggestions
Bug: 15531465
Change-Id: Ic7fe5743ad3767cdaed699e5e2d1ebcaa75e22c2
2014-06-11 11:51:58 +09:00
Jean Chalard 453711abe2 Use RichInputConnection to get the previous word.
We don't need the optimization of storing the old words now
that the RichInputConnection can supply it without IPC.

Bug: 13703802
Change-Id: I37ccb8d5fba879fb04b4f23d33571849736d897c
2014-06-09 19:43:20 +09:00
Keisuke Kuroyanagi a2a4ee2765 Merge "Check isInDictionary() before the distracter test." 2014-06-09 02:53:33 +00:00
Keisuke Kuroyanagi bdf745da32 Check isInDictionary() before the distracter test.
Bug: 13142176
Bug: 15428247
Change-Id: I7ce2c09ebbef6ca8c056807c2a35f2f987fd436e
2014-06-09 11:43:45 +09:00
Tadashi G. Takaoka 987bff9136 Refactor logic to determine showing suggestions strip or not
The logic to determine when the suggestions strip (a.k.a. the
contextual strip) should be shown is already complex. In addition to
that the voice input key get shown on the strip as well. There are a
several factors to be considered and a few things to control.

- The password input field shouldn't have the strip.
- Show voice input key on the strip or not.
  - User preference settings "Show Voice Input Key".
  - A voice IME exists and is enabled.
  - The input field may have a private IME option to prevent the voice
    input key from being displayed.
- Application can specify auto completions.
  - Full screen mode or not.
- User preference settings "Show correction suggestions".
  - Always show, Show in portrait mode, Always hide.
- The input field may have flags to prevent showing suggestions or
  auto corrections.
- Suggestions is empty or not.
- An important notice may be shown.

Bug: 14981852
Bug: 15436479
Change-Id: I3050fd53ee6271fc64a8f17b6b12d9581d37b750
2014-06-06 19:41:21 +09:00
Jean Chalard 6464d73ad9 Merge "When starting input, include the literal word in suggestions" 2014-06-06 07:27:40 +00:00
Tadashi G. Takaoka bd3b20ce73 Merge "Always update voice key visibility" 2014-06-06 07:14:28 +00:00
Jean Chalard fca2c4b439 When starting input, include the literal word in suggestions
This change also includes a fix that has suggestions re-computed
when the typed word is included but no prior suggestions were
found in spans.

Bug: 2349475
Change-Id: Ic06e6ac492507126ffc1e96a5f396c971b567272
2014-06-06 16:00:18 +09:00
Jean Chalard eb771b9dc4 Merge "Fix a small bug with rotation." 2014-06-06 06:34:00 +00:00
Jean Chalard c69ba5630d Fix a small bug with rotation.
Bug: 2349475
Change-Id: Id4aa5ce56b1a545e4cb88ca1b01cf24642deade2
2014-06-06 14:06:29 +09:00
Tadashi G. Takaoka aa4b2c7127 Always update voice key visibility
Bug: 15128166
Change-Id: Ie15724c323efa3b102f6aebddc3bda210aad1727
2014-06-06 13:18:41 +09:00
Tadashi G. Takaoka 3ca65c8fd5 Remove unused supportsSwitchingToShortcutIme attribute
Change-Id: I51c5247ac925a158facb79057f704b763b903552
2014-06-06 13:11:57 +09:00
Jean Chalard 70ff0c2122 Merge "Fix a bug on rotation with selection." 2014-06-06 03:12:12 +00:00
Jean Chalard 9fd9a68d87 Fix a bug on rotation with selection.
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
2014-06-06 11:18:23 +09:00
Tadashi G. Takaoka 2e32e37d5b Rename some boolean variables for readability
Change-Id: I434cf507e68349b9893ac084645986d6b3d7da91
2014-06-05 18:18:46 +09:00
Tadashi G. Takaoka 51ee5a47b8 Remove LatinImeLogger and UsabilityStudyLogUtils
This CL must be checked in together with Ie52007dc5c.

Bug: 15318007
Change-Id: Ie665f296e43b5485ae8ba7e949aa262794ee0dcc
2014-05-29 18:03:03 +09:00
Tadashi G. Takaoka bbf556e8e1 Remove researcher logger
This CL must be checked in together with I5cc76807e3.

Bug: 15318007
Change-Id: I61423c3377ddc299fb332e742d6626c2e47145bb
2014-05-29 15:10:28 +09:00
Tadashi G. Takaoka 9df51d10fa Keep showing important notice when "show correction suggestions" is off
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
2014-05-26 14:11:41 +09:00
Tadashi G. Takaoka a91561aa58 Use Java 7 diamond operator
Change-Id: If16ef50ae73147594615d0f49d6a22621eaf1aef
2014-05-24 01:05:42 +09:00
Keisuke Kuroyanagi f498e53933 Make DistracterFilter interface.
Bug: 13142176
Bug: 15094186
Change-Id: If94b0a155b5ea2ff6b839e7da9d12a9cc6553931
2014-05-23 18:12:37 +09:00
Keisuke Kuroyanagi 1fa3e9044f Move distracter filter to dictionary facilitator.
Bug: 13142176
Bug: 15094186
Change-Id: Ib9e42f8e25538009f3ba62cf1e034cae3f6823c7
2014-05-23 16:10:36 +09:00
Keisuke Kuroyanagi a1035be6d8 Have DictionaryFacilitator in LatinIME.
Bug: 13142176
Bug: 15094186
Change-Id: I9da67352ff2abcd289fa5885389895ced878a413
2014-05-23 09:30:55 +09:00
Keisuke Kuroyanagi a2ce9a49ac Fix NPE happening in unit tests.
Change-Id: I2fc0dba53e18883755ff77351c152a9d3534c92b
2014-05-22 21:57:07 +09:00
Keisuke Kuroyanagi 5e2c4c0297 Merge "Use enabled subtypes for Keyboard in DistracterFilter." 2014-05-22 04:50:47 +00:00
Keisuke Kuroyanagi 17f326b745 Add beginning of sentence information in PrevWordsInfo.
Bug: 14119293
Bug: 14425059
Change-Id: I65320920e840082b0b697bb621676716d0933e0c
2014-05-21 15:40:08 +09:00
Keisuke Kuroyanagi 17ae0eb7e7 Use enabled subtypes for Keyboard in DistracterFilter.
Bug: 13142176
Bug: 15094186
Change-Id: I142eeaa11f838080a4fc5a342155e5d470eab3d4
2014-05-21 14:08:39 +09:00
Keisuke Kuroyanagi 83c40a2301 Use PrevWordsInfo instead of String in Java side.
Bug: 14119293
Bug: 14425059

Change-Id: I3d5da84881a49a04550180dd9aac2c37da2ed762
2014-05-19 13:55:40 +09:00
Keisuke Kuroyanagi 23246ed18d Use dedicated DictionaryFacilitator for DistracterFilter
Bug: 15002249
Change-Id: Ic77eaa7d627d406daad7dcd15cb4884d9f647312
2014-05-17 01:18:08 +09:00
Keisuke Kuroyanagi f9377c8920 Revert "Use dedicated DictionaryFacilitator for DistracterFilter"
This reverts commit 7122fe76e3.

Change-Id: I341089864a2b58de6e0f35844a12fb632bd1eabb
2014-05-16 11:16:54 +00:00
Keisuke Kuroyanagi 7122fe76e3 Use dedicated DictionaryFacilitator for DistracterFilter
Bug: 15002249
Change-Id: I2ebf1941fb0453ea4b97c0e539f8b36e5e0262c1
2014-05-16 18:39:31 +09:00
Tadashi G. Takaoka 2ddaf9543d Remove unused auto correction led for spacebar feature
Change-Id: Ie1544bd0d28684d9b7887fddff37b224ed4f8201
2014-05-15 17:53:43 +09:00
Yohei Yukawa f0fc320b4e Merge "Simplify StatsUtils" 2014-05-15 06:35:42 +00:00
Xiaojun Bi 3686bdfcc1 Fix off-device build
This CL fixed the breakage caused by DistracterFilter.
It should be checked in together with I8f53e9481c0f

Bug: 14911612
Bug: 13142176
Change-Id: I33c3526165cea58926d10404552f1fadc385c2e5
2014-05-14 17:39:02 -07:00
Yohei Yukawa 9aa7f66a15 Simplify StatsUtils
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
2014-05-15 00:11:13 +09:00
Xiaojun Bi 25ec32f635 Merge "Implement the distracter filter" 2014-05-13 23:08:40 +00:00
Xiaojun Bi ac20253806 Implement the distracter filter
Bug: 13142176

Change-Id: I85a048cdcbbad3d6020a25f900250d8d7a0fe3da
2014-05-13 15:52:14 -07:00
Jean Chalard be99616afa Create the path for specifying combining rules in the subtype
Also add the skeleton of the combining rules for Myanmar
reordering as a pilot.

Bug: 13945569
Change-Id: Iabeb6838f45f1efff482143595ce5b48543e0c43
2014-05-12 15:58:51 +09:00
Tadashi G. Takaoka 3903e0d6e8 Merge "Make AccessibleKeyboardViewProxy not singleton" 2014-05-01 03:29:30 +00:00
Tadashi G. Takaoka bca7e4e9a2 Make AccessibleKeyboardViewProxy not singleton
This CL also renames AccessibleKeyboardViewProxy and
AccessibilityEntityProvider to MainKeyboardAccessibilityDelegate and
MainKeyboardAccessibilityNodeProvider.

Change-Id: I2b0ec091a11aa8a495794d633efecb6d8b818f42
2014-05-01 12:24:54 +09:00
Keisuke Kuroyanagi a9f0a96377 Merge "Handle user dict as an ExpandableBinaryDictionary." 2014-04-30 12:44:25 +00:00
Keisuke Kuroyanagi 9ed7e47539 Handle user dict as an ExpandableBinaryDictionary.
Bug: 13755213
Change-Id: I2d242a3332e9633d4e41e08c0bbfafcefd814ecd
2014-04-30 20:35:08 +09:00
Tadashi G. Takaoka 24536580bf TalkBack correct shift state
Change-Id: I3097805c6c8b4a4ac19fbe062f763e2639eb5cbf
2014-04-30 18:46:46 +09:00
Yohei Yukawa 8ba4f33709 Use shouldOfferSwitchingToNextInputMethod when available
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
2014-04-28 15:11:19 +09:00
Keisuke Kuroyanagi 169acbf9f0 Add null check in createDistracterFilter().
Change-Id: Iff2b73081d48f32b1d3a5d5b32c9734979362c23
2014-04-25 13:36:46 -07:00
Xiaojun Bi 281dd99346 Prepare to implement distracter filter
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
2014-04-25 09:13:22 -07:00
Jean Chalard 86ff9d6dda Merge "Fix a wrong parameter passed." 2014-04-17 07:39:52 +00:00
Jean Chalard 26611120c9 Fix a wrong parameter passed.
Bug: 14120001
Change-Id: I8258304bc500fe28870fb8a5c11c15d97795423c
2014-04-17 15:44:55 +09:00
Jean Chalard ba635ad30d Merge "Restart suggestions when restarting input" 2014-04-16 10:43:28 +00:00
Jean Chalard 3aba6263f0 Restart suggestions when restarting input
Bug: 6851364
Change-Id: I3052924053f37f56c9c3953051aa1b22224a2b2e
2014-04-16 17:02:08 +09:00
Jean Chalard 66e509b1d4 Fix some failing tests
Bug: 13968927
Change-Id: I7e5e075535e38bf0fa24af98ed6e2cdfd6de6556
2014-04-15 21:44:46 +09:00
Jean Chalard 1ee443d848 Merge "[IL135] Make getCurrentAutoCapsState private" 2014-04-15 02:27:52 +00:00
Jean Chalard 82d3a56b09 Merge "[IL134] Add an alternative path to getCurrentAutoCapsState" 2014-04-15 02:24:41 +00:00
Jean Chalard 2282e8520a Fix updating the shift state upon backspace
Bug: 13514349
Change-Id: If4c9db12b0ab5be676f7a2f72715f469066ee537
2014-04-14 21:28:24 +09:00
Jean Chalard f091c491ea [IL135] Make getCurrentAutoCapsState private
Bug: 8636060
Change-Id: I800aefe6fee4c14df6fe5abe21b2387c69abb8f5
2014-04-14 21:09:32 +09:00
Jean Chalard ddc163988a [IL134] Add an alternative path to getCurrentAutoCapsState
Bug: 8636060

Change-Id: I959e13d34910adad028ed6174f92029ff690eeeb
2014-04-14 21:09:32 +09:00
Tadashi G. Takaoka 30d5ed67d6 Keep ImportantNoticeDialog showing after orientation changed
Bug: 13951402
Change-Id: Ia6340d48843abca68ebadd299827cbe43516cc39
2014-04-14 15:48:19 +09:00
Yohei Yukawa da498229f4 Merge "Plumbing for ProductionFlag.USES_CURSOR_ANCHOR_MONITOR" 2014-04-13 12:56:43 +00:00
Yohei Yukawa fab4ce43f8 Plumbing for ProductionFlag.USES_CURSOR_ANCHOR_MONITOR
With this CL, LatinIME starts calling
InputMethodService#setCursorAnchorMonitorMode in #onStartInput()
when ProductionFlag.USES_CURSOR_ANCHOR_MONITOR flag is explicitly
set to true.

BUG: 13891796
Change-Id: Ib2fb0c3521b61859d4cc530155ccaaee7ee16cbc
2014-04-11 12:26:33 +09:00
Jean Chalard cb05dc1d1b Merge "[IL133] Avoid calling a dangerous method from outside." 2014-04-10 09:15:13 +00:00
Jean Chalard 4370ff0998 Fix some flaky tests.
In tests, we create many instances of LatinIME, but we never
destroy them. That means we never close the dictionaries nor
the handlers.
This change calls onDestroy, which closes all dictionaries, and
adds some code to finish the handlers.

Change-Id: I942517a2a940c54256b08763f6b38f5b55809f55
2014-04-10 17:32:05 +09:00
Yohei Yukawa c9539f42f6 Merge "Add StatsUtils for checking state" 2014-04-08 10:23:41 +00:00
Yohei Yukawa dc0f7ca167 Add StatsUtils for checking state
BUG: 11746191
Change-Id: I0218dd07dde1d09321009ea1497258fc4235a1e8
2014-04-08 19:09:49 +09:00
Jean Chalard f9516b00ec Merge "[IL132] Remove some calls that let a value escape." 2014-04-04 13:33:26 +00:00
Tadashi G. Takaoka 9b46ddc1d5 Use platform default theme for activities and dialogs
Bug: 13698528
Change-Id: Ib904c911452525e3749c0eb287434b504576db5f
2014-04-04 17:13:54 +09:00
Jean Chalard 8ab4ae4377 [IL133] Avoid calling a dangerous method from outside.
We want to remove all calls to this as it lets internal values
escape, but there is some refactoring to do to finish this.

Bug: 8636060
Change-Id: Iedba6afe4719bc0add868714a1ee5a04b7ead33e
2014-04-03 15:36:15 +09:00
Jean Chalard 9320553ab9 [IL132] Remove some calls that let a value escape.
Bug: 8636060
Change-Id: I696514934586ee71e734fd974026af8b2c866127
2014-04-03 15:36:15 +09:00
Jean Chalard a777c1c460 [IL129] Change some confusing method names.
Bug: 8636060
Change-Id: I2f55fc23d7e05b63582a3f0660b58635eae5ec59
2014-04-02 18:10:18 +09:00
Jean Chalard 6bd3723e73 [IL128] Remove passing some handlers.
Bug: 8636060
Change-Id: I088be9a7555265ca097667523defd73be4cbe37f
2014-03-27 17:51:32 +09:00
Keisuke Kuroyanagi adfb262797 Remove logic related to dictionary loading from LatinIME.
Make mSuggest final and give DictionaryFacilitator the
responsibility to manage dictionary loading state.
This can simplify the logic to decide how to deal with
additional dictionaries when loading settings or language
switching.

Bug: 13273534
Change-Id: I9f3d328272f25addfa186fbeedaaf8417455ba99
2014-03-25 15:35:20 +09:00
Jean Chalard 4df6bc0853 Merge "[CB10] Add an event for string input" 2014-03-20 11:34:16 +00:00
Jean Chalard 058a38988b [CB10] Add an event for string input
Change-Id: Ie5da6c73d4df4553067c58cd0dce9abb34534250
2014-03-20 19:47:01 +09:00
Jean Chalard 350d73932d [IL127] Move the double space countdown to InputLogic
Bug: 8636060
Change-Id: Ie193b747bd9d0b5ba6a986b9a3c746c2182742ed
2014-03-19 17:47:03 +09:00
Jean Chalard 554346e94c [IL126] Move a setting value to SettingsValues
Bug: 8636060
Change-Id: I7cb082df13a10cf5a3aa5786e6a9599376652dee
2014-03-19 17:47:03 +09:00
Jean Chalard 46e17983c6 [IL125] Remove arg to onPickSuggestionManually
Bug: 8636060

Change-Id: I55332c22897e97148621cbd367acf5175b5b3d04
2014-03-19 17:47:03 +09:00
Jean Chalard 1110adad11 [CB07] Small refactoring
Bug: 8689779
Change-Id: I2cf10c690c7e4a9c6bf27211d1fccc1f9d4a9249
2014-03-17 21:26:36 +09:00
Jean Chalard 5eac728b4a [CB06] Fix a design error.
The event interpreter should intervene later, after decoding.
Decoding should happen first, and then the Event should
be passed to the InputLogic.

For the time being, we will leave the (unused) EventInterpreter
class and its friends, because we'll use them again later.

Bug: 13406701
Change-Id: I7582d486724311e39e6692e606cca50c78800643
2014-03-17 20:49:29 +09:00
Jean Chalard a79a3265db [CB02] Pass an Event to onCodeInput.
Bug: 13406701
Change-Id: Id82e9aab6544ca308e6ac6dee2cfa018b9ce2d8f
2014-03-13 18:41:02 +09:00
Jean Chalard a1bf550294 [IL124] Remove the KeyboardSwitcher arg to onCodeInput
Bug: 8636060
Change-Id: I29ce4c82ea880a937b1c9e5daf494fcdbbdd1336
2014-03-06 14:20:41 +09:00
Jean Chalard 151761a276 [IL120] Cleanup
Remove useless arguments, local vars, make stuff private

Change-Id: I7cc6c19e9c1703304d593e02be31eb9569cc7b4e
2014-03-04 17:52:14 +09:00
Jean Chalard 0e489d1ba3 [IL118] Factorize a method
If we can't get the right locale from the subtype switcher, we
should fallback in all cases.

Change-Id: I46a53a67927a793d9d3592a996a5a4392a36c6ff
2014-03-04 17:52:14 +09:00
Jean Chalard 129ca9e7eb [IL117] Simplification
Change-Id: Id4d4f30ecdc80dd59543f90fe2525f4bcc5afb9d
2014-03-04 17:52:11 +09:00
Jean Chalard 2ca916c215 [IL116] Inline a method
Change-Id: I6af8f2bd6b4917f9b119ff78a0f299b2f6fb921e
2014-03-04 14:46:04 +09:00
Jean Chalard e110018e2a [IL114] Move a method to InputLogic
Bug: 8636060
Change-Id: I0d8f93985ddc6e93ce9af0d92a8056620351a498
2014-03-04 14:46:04 +09:00
Jean Chalard 5d8f6660bf [IL113] More cleanup
We should not test punctuation with this equality test any more.
Also, whether the suggestion strip is displayed or not, or whether
the hint is displayed or not, has nothing to do with this method
and should be handled elsewhere rather than here -- and as a
matter of fact, it is, which makes this useless.

Bug: 8636060
Change-Id: I6a54ee87e4e9f81bc33158acf4a264c3abd5829d
2014-03-04 14:46:04 +09:00
Jean Chalard 145e8568f4 [IL112] Cleanup
Bug: 8636060
Change-Id: Ic7c2dec2521613d52707457463691bec383177ff
2014-03-04 14:32:02 +09:00
Jean Chalard 32c6d4caea [IL111] Remove a member.
...and improve encapsulation and readability.

Bug: 8636060
Change-Id: I36407630b307df0721ea7fdb7e7a22cdf2b018b3
2014-03-04 14:31:47 +09:00
Keisuke Kuroyanagi e76c273502 Merge changes I20ce61c4,I2edab4e3
* changes:
  Remove "Use only personalization dictionary".
  Remove redundant creation of dictionary facilitator.
2014-03-03 04:00:24 +00:00
Ken Wakasa 98534dc065 Add missing null checks for getOwnerInstance()
It may just return null.

Change-Id: I778fb48262ef8af28a4af50b70bb94ace75a488c
2014-02-28 16:13:51 +09:00
Keisuke Kuroyanagi e9926b0d11 Remove redundant creation of dictionary facilitator.
Change-Id: I2edab4e3ba4ea0b9b13f9bb224aac86cac9b9f31
2014-02-27 22:31:57 +09:00
Jean Chalard bd1caac16a [IL110] Remove an unused interface function
...and make a method private.

Bug: 8636060
Change-Id: If16f7e8ef3779f77a9db23fb7c54e7c23b043b86
2014-02-26 17:46:20 +09:00
Jean Chalard 23e22613d7 Remove useless args and processing.
Bug: 13062385
Change-Id: I426545d1fe8fd76bcf4d1dce19e6b571a55c79ae
2014-02-26 11:40:43 +09:00
Jean Chalard 296adf5710 Merge "Change a heuristic and add a log." 2014-02-21 11:58:16 +00:00
Tadashi G. Takaoka d73044a249 Add ImportantNoticeDialog
Change-Id: Icaeb7dddd16362cd4a6384d295f89c7fbabc8b35
2014-02-21 16:36:15 +09:00
Tadashi G. Takaoka fe39d576dc Support versioned important notice
This change must be checked in together with If38a754d00.

Bug: 10587358
Change-Id: I91580f9468bc5ee7ed1694d7852a60dc6793dac0
2014-02-21 09:54:08 +09:00
Jean Chalard 3b4c1d3056 Change a heuristic and add a log.
The heuristic in RichInputConnection makes little sense
when textLength > mExpectedSelStart but we have
more than 1024 characters of text. If there are that many,
it's about 100% sure that 1024 is not the correct cursor
position. With no good guess, we'll just continue trusting
the app, even though we know it's lying : at least it will
make the problem visible to the app author.

Also, there have been a lot of confusion about initialSelStart
and initialSelEnd. The keyboard should log them so that
it helps us and editor authors debug more easily these
common problems.

Issue #65170 in AOSP and
Bug: 12772035
Change-Id: I6665a16c9f2832d33ee323f033bb38bcc092a3b4
2014-02-20 23:49:20 +09:00
Jean Chalard a118d19f6c Merge "Don't distrust the cursor pos so much as to bug on IPC delay" 2014-02-20 14:22:48 +00:00
Jean Chalard 3c84eb8822 Don't distrust the cursor pos so much as to bug on IPC delay
When the cursor is moved by the user, the RichInputConnection
is told about it. However, to work around a framework bug, it
also looks at how many characters are in the buffer before the
cursor, and if that's more than the value it's been passed, it
deduces that's a framework bug and there are at least as many
characters as seen before the cursor, so it puts the expected
cursor position there.

When you move the cursor, TextView calls onUpdateSelection,
and when you move it fast, you'll get rapid-fire calls to
onUpdateSelection. This is fine, the RIC is equipped to
deal with that.

However, these calls take some time to make it to the IME. In
this instance, when the first call gets through and the IME
calls TextView (synchronously) for text before the cursor, the
cursor has already moved in the app, and TextView returns more
characters than the cursor position was declared to be in this
instance, so the RIC sets that as the expected cursor position.
Sure enough, a split second later, the second call to
onUpdateSelection arrives, with the new cursor position set
where the RIC had found it too early. The RIC takes that as an
"expected" cursor move, and the input does not get reset.

Luckily, we have a way out. As far as we know, the framework bug
only manifests itself upon rotation, which means we should only
have to adjust for it in onStartInputView. Doing it in
onUpdateSelection is too zealous (and probably too distrustful of
the app to send the correct cursor positions).

So we should just take care of the rotation case (by calling
tryFixLyingCursorPosition in onStartInputView) and remove the
compensating code in resetCachesUponCursorMoves.

Bug: 12982502
Change-Id: Ic3c1408a1ec45deaea63b01d98376a79ae567d77
2014-02-20 23:13:14 +09:00
Keisuke Kuroyanagi d36328cecf Add test only methods to test personalized dicts.
Bug: 11122480
Change-Id: I79a4a73ff09a2d34d4ca094d705e901fb4bc855c
2014-02-20 22:20:43 +09:00
Keisuke Kuroyanagi a514ea7e1b Merge "Check all enabled IME's subtypes to enable personalization." 2014-02-20 09:33:21 +00:00
Tadashi G. Takaoka 1672ccbbb6 Change important notice version preference file
This CL also reset the notice version to 1.
This CL must be checked in together with Iea8d9ff038.

Change-Id: I838f7b5b295388d64d6aba90f50b06654eba16e5
2014-02-20 16:50:34 +09:00