Commit Graph

7138 Commits (0b5468a0dbd80f4cc861661092abcf1cc1d310a8)

Author SHA1 Message Date
Tadashi G. Takaoka 08199ec859 Clear PointerTracker state when more keys keyboard is dismissed
With accessibility mode on, hover events for a more keys keyboard are
handled among MoreKeysKeyboardAccessibilityDelegate and
MoreKeysKeyboardView. But the more keys keyboard is shown by
MainKeyboardAccessibilityDelegate that uses PointerTracker to handle
hover events. Thus we need to clear PointerTracker state when the more
keys keyboard is dismissed.

This is a workaround to resolve the issue. We should reconsider the
structure of those views and accessibility delegates in the future.

Bug: 15583751
Change-Id: Ida8c3e55194c59bdaa5bc4ff06068e699b888ced
2014-06-13 15:54:25 +09:00
Keisuke Kuroyanagi 4715baf93b Merge "Fix: Wrong name for ContextualDictionary." 2014-06-10 22:29:12 +00:00
Keisuke Kuroyanagi 3bedb9b3e6 Fix: Wrong name for ContextualDictionary.
Bug: 15557070
Change-Id: I5796df54a74c111d361da8c548e5597aba8e24d0
2014-06-11 19:58:22 +09:00
Tadashi G. Takaoka 6a96c508fd Fix logic to show suggestions
Bug: 15531465
Change-Id: Ic7fe5743ad3767cdaed699e5e2d1ebcaa75e22c2
2014-06-11 11:51:58 +09:00
Keisuke Kuroyanagi 447c19364a Merge "Enable Beginning-of-Sentence prediction for contextual dict." 2014-06-10 22:31:57 +00:00
Keisuke Kuroyanagi 22931cd941 Enable Beginning-of-Sentence prediction for contextual dict.
Bug: 14161647
Bug: 14119293
Change-Id: I0c00f13966db88e4de85e245e7bced43c9d474b2
2014-06-12 12:26:18 +09:00
Jean Chalard d979d416c1 Merge "Special case periods in the spell checker" 2014-06-10 11:57:21 +00:00
Keisuke Kuroyanagi cdfd2ce5a3 Merge "Add prefix to the arguments of getDictionary()." 2014-06-10 11:41:34 +00:00
Keisuke Kuroyanagi f36da2fdba Merge "Make dump dictionary settings easily extensible." 2014-06-10 11:08:38 +00:00
Keisuke Kuroyanagi a20432479d Make dump dictionary settings easily extensible.
This adds "Dump contextual dictionary".

Bug: 14161647
Change-Id: I41a6d6e131d9d8c300ac0120d903d46d88bb3346
2014-06-10 19:59:19 +09:00
Jean Chalard 4863a06544 Special case periods in the spell checker
Special case <valid word>.<valid word> to send as a suggestion
the same string where the periods is replaced by a space.

Bug: 10780091
Change-Id: I43c94675977f9ab5d7ee5671486cb742b39f3974
2014-06-10 19:52:58 +09:00
Keisuke Kuroyanagi 48b0074349 Merge "Purge dict reading code for 401 and create for 402." 2014-06-10 10:31:05 +00:00
Keisuke Kuroyanagi 07e1412631 Purge dict reading code for 401 and create for 402.
Change-Id: Ib0150b3306bb2db8aff443d1158fecc8464cbbdb
2014-06-10 19:22:40 +09:00
Keisuke Kuroyanagi 18df192535 Add prefix to the arguments of getDictionary().
Bug: 13630847
Change-Id: Ib4513b8cb6981e01dd33fd9703cc01646a2c7ccc
2014-06-10 18:05:10 +09:00
Jean Chalard 2d7feb5ad0 Merge "Split the sentences into words ourselves" 2014-06-10 08:18:36 +00:00
Keisuke Kuroyanagi 1ffb7cd448 Merge "Debug log when failed to add/remove n-gram entry." 2014-06-10 05:14:23 +00:00
Keisuke Kuroyanagi 354a59dfa4 Debug log when failed to add/remove n-gram entry.
Change-Id: Ibf0a4e01e1abc81b09aec104ba39d2ec18f4db8b
2014-06-10 13:04:57 +09:00
Jean Chalard e689d37f72 Remove a useless method
Change-Id: I21a4219f682f43f4a84b1ab12d00dd930b35caa1
2014-06-10 12:47:55 +09:00
Jean Chalard 264afb10bd Merge "Remove mPrevWordsInfo" 2014-06-10 03:21:47 +00:00
Jean Chalard 367c199de1 Remove mPrevWordsInfo
This member has outlived its usefulness. It's not clear now that it
makes things really faster, but it does bring a lot of complexity
that we can avoid by removing it.

Change-Id: Ifbc8094a45b56b958fe165b1930f4cc358a97721
2014-06-10 12:07:51 +09:00
Tadashi G. Takaoka 874a600dc8 Add audio and haptic feedback for Emoji and Suggestions
Bug: 15378862
Change-Id: Ia14929bd9eb63ad5735cae0ad98ad0e2ad301128
2014-06-10 09:15:59 +09:00
Tadashi G. Takaoka d022df49bd Merge "Set content descrition of words in suggestions strip" 2014-06-09 13:01:44 +00:00
Tadashi G. Takaoka f3c852efad Set content descrition of words in suggestions strip
Bug: 14849593
Change-Id: If020e2352c8e950ce87dc4711c39b8a6a41f66fc
2014-06-09 21:40:36 +09:00
Jean Chalard 43ea8f6e77 Merge "Use RichInputConnection to get the previous word." 2014-06-09 10:47:28 +00: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
Jean Chalard 7a6bc607ca Split the sentences into words ourselves
The framework's default split is not suitable for all
languages. Also it does not perform very well when space
is mistyped as period.

Bug: 9063355
Bug: 10780091
Change-Id: I400d790ff1c29f221697fd94d79bbf67c61c7b8a
2014-06-09 19:38:03 +09:00
Tadashi G. Takaoka 48b96a6a52 Fix TalkBack descriptions of keyboard shift mode transition
Bug: 14846348
Change-Id: I32435a31f919974a506e598d1f3cc1b55a0866ae
2014-06-09 17:28:49 +09:00
Tadashi G. Takaoka 402e847477 Merge "Use rectangle region to ignore hover events after long press" 2014-06-09 07:56:41 +00:00
Tadashi G. Takaoka 862d7ec32e Merge "Refactor KeyCodeDescriptionMapper class a bit" 2014-06-09 07:56:28 +00:00
Tadashi G. Takaoka 176f803176 Use rectangle region to ignore hover events after long press
Bug: 15500282
Bug: 15501718
Change-Id: Ia4771198c3120a980b0a2cdd210928a4f47f5b83
2014-06-09 16:32:19 +09:00
Tadashi G. Takaoka 24fab555f9 Refactor KeyCodeDescriptionMapper class a bit
This CL adds getDescriptionForCode() method.

Bug: 15500282
Change-Id: I3bb92c8f356ea623fc992c924506b11e09256e98
2014-06-09 16:28:30 +09:00
Keisuke Kuroyanagi 7f0316c27e Merge "Add distracter cache to optimize the distracter test." 2014-06-09 05:35:46 +00:00
Keisuke Kuroyanagi 9f02a67c77 Merge "Fix: NPE after turning on personalized suggestion." 2014-06-09 05:35:32 +00:00
Keisuke Kuroyanagi 104b582c35 Add distracter cache to optimize the distracter test.
Bug: 13142176
Bug: 15428247
Change-Id: Ia390b148ffb36ace6c2010daf0f14838492413e8
2014-06-09 12:39:06 +09:00
Keisuke Kuroyanagi 65cf23eb38 Fix: NPE after turning on personalized suggestion.
Bug: 13142176
Bug: 15428247
Change-Id: I236202e3c1b70a11d512c946798035087945c0ac
2014-06-09 12:26:59 +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
Keisuke Kuroyanagi 79e2e9fa8c Merge "Add Dictionary.isInDictionary()." 2014-06-09 02:40:39 +00:00
Keisuke Kuroyanagi 1910392eed Add Dictionary.isInDictionary().
Bug: 13142176
Bug: 15428247
Change-Id: If2d1c1fea7a69e41809a828da8dd032211ad144e
2014-06-09 11:04:28 +09:00
Tadashi G. Takaoka dec599d172 Fix overwriting accessibility delegate in setKeyboard
A keyboard accessibility delegate object should be a singleton for
each keyboard view.

Bug: 15437933
Bug: 15419386
Change-Id: Ia70853c644d950ea6130c1f209b89929b1cb1ee5
2014-06-08 22:12:52 +09:00
Tadashi G. Takaoka 2385314be0 Merge "Refactor logic to determine showing suggestions strip or not" 2014-06-06 10:48:00 +00:00
Keisuke Kuroyanagi 7640bb1505 Merge "Make Distracter filter use getMaxFrequencyOfExactMatches()." 2014-06-06 10:44:04 +00: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
Keisuke Kuroyanagi 166d8c2293 Make Distracter filter use getMaxFrequencyOfExactMatches().
Bug: 13142176
Bug: 15428247

Change-Id: I5c23fbea2851f891f76f19d9da2cb70ae964569b
2014-06-06 19:38:44 +09:00
Keisuke Kuroyanagi 8cae9f50b4 Merge "Implement getMaxProbabilityOfExactMatches()." 2014-06-06 08:39:40 +00:00
Keisuke Kuroyanagi d9b8602f48 Implement getMaxProbabilityOfExactMatches().
Bug: 13142176
Bug: 15428247
Change-Id: I5be6d683be95505412615ca7c88260de1ea05f54
2014-06-06 17:37:46 +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
Tadashi G. Takaoka b7206b6bca Merge "Add action key test for Lxx theme" 2014-06-06 04:08:40 +00:00
Tadashi G. Takaoka c5dc740673 Add action key test for Lxx theme
Change-Id: I849cec7deb5607e8ce8fb25c1f903f15328fb611
2014-06-06 12:56: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
Keisuke Kuroyanagi 0ee8644666 Merge "Add getMaxFrequencyOfExactMatches() to Dictionary." 2014-06-05 10:07:59 +00:00
Keisuke Kuroyanagi d988fcc93d Add getMaxFrequencyOfExactMatches() to Dictionary.
Bug: 13142176
Bug: 15428247
Change-Id: I93b44ef40cafb6b811c68fa79f3a4971fc3916a5
2014-06-05 19:05:58 +09:00
Tadashi G. Takaoka 0dbf15f152 Merge "Rename some boolean variables for readability" 2014-06-05 09:33:05 +00:00
Tadashi G. Takaoka a12d431c86 Merge "Refactor show voice key preferece migration code" 2014-06-05 09:33:03 +00:00
Tadashi G. Takaoka 2e32e37d5b Rename some boolean variables for readability
Change-Id: I434cf507e68349b9893ac084645986d6b3d7da91
2014-06-05 18:18:46 +09:00
Keisuke Kuroyanagi d6b89e17a6 Add jni method for getMaxFrequencyOfExactMatches().
Bug: 13142176
Bug: 15428247
Change-Id: I2ae25090b67ad0c6df97dec7712e2f7e0bb08c40
2014-06-05 18:16:11 +09:00
Tadashi G. Takaoka fcaf47f007 Refactor show voice key preferece migration code
Change-Id: I4f13e85a3db1ba4adf36c596cb23827bdcf93ae7
2014-06-05 15:23:58 +09:00
Jean Chalard 9d4d61f9c1 Merge "Allow multiple shortcuts for a personal dictionary word" 2014-06-04 13:32:45 +00:00
Tadashi G. Takaoka aea429200e Support more suggestions accessibility mode
Bug: 12491371
Change-Id: Ib01452b6a2a53faa591b05e62014f356e0511308
2014-06-04 19:45:38 +09:00
Tadashi G. Takaoka 86e1e1f97c Merge "Support more keys accessibility mode" 2014-06-04 10:23:16 +00:00
Tadashi G. Takaoka 62316d7e82 Support more keys accessibility mode
Bug: 12491371
Change-Id: Ib1fc8affbccfbaca3424ecdc2812f47047106aa2
2014-06-04 19:13:41 +09:00
Jean Chalard f8b4524c0e Allow multiple shortcuts for a personal dictionary word
Bug: 13869301
Change-Id: Icd77a308f85cc16dccffe65a532471c738d6fbc5
2014-06-04 18:01:50 +09:00
Tadashi G. Takaoka 70a1352cb9 Merge "Add onRegisterHoverKey to accessibility delegate" 2014-06-04 08:56:48 +00:00
Tadashi G. Takaoka 1a0cd0869d Add onRegisterHoverKey to accessibility delegate
Bug: 12491371
Change-Id: I8c5b1e91f41146a023edcc405e6120c0bf33f49b
2014-06-04 17:49:48 +09:00
Jean Chalard 4c91142771 Merge "Don't recapitalize just at the start of input" 2014-06-04 08:29:20 +00:00
Jean Chalard 07706dc347 Merge "Refactoring" 2014-06-04 07:43:31 +00:00
Jean Chalard c84b10840e Don't recapitalize just at the start of input
Bug: 13283555
Change-Id: Iab0466425dc44779d110f2cd29d725d22eb04827
2014-06-04 16:29:31 +09:00
Jean Chalard 4a1113b6b0 Refactoring
Rename `initialize' to `start' and `deactivate' to `stop' for ease
of understanding. It's completely bizarre that you can "deactivate"
a recapitalization and that will just restart a new one the next time
you press shift. Start and stop are easier to understand.

Change-Id: I455175aebfcfe11198c6c61bf2c6b19efc3f82df
2014-06-04 16:29:29 +09:00
Tadashi G. Takaoka a2b7c07e68 Merge "Revert "Pass hover event to accessibility key handling methods"" 2014-06-04 07:20:21 +00:00
Tadashi G. Takaoka 2c35f3bdd5 Revert "Pass hover event to accessibility key handling methods"
It turns out passing hover event to accessibility key handling methods
isn't necessary. This parically reverts I1f7feef707.

Bug: 12491371
Change-Id: I9d71cd29723344433427795e44cb22ac41faace6
2014-06-04 16:04:36 +09:00
Yohei Yukawa 5a3a7e3d8a Merge "Add a preference item for metrics logging" 2014-06-04 05:07:03 +00:00
Tadashi G. Takaoka 6e00de046a Merge "Reorder keys around the spacebar" 2014-06-04 04:04:28 +00:00
Yohei Yukawa 28c7b262aa Add a preference item for metrics logging
BUG: 14324207
Change-Id: Idc8582655bc73cb24e416e8ba78470209b2ff702
2014-06-04 13:02:42 +09:00
Tadashi G. Takaoka dc62c711aa Reorder keys around the spacebar
This CL reorders keys around the spacebar.
- On phone's symbols and symbols shift layout, the comma key is moved
  to the left of the spacebar to aligned with main layout.
- On tablet's layout, the comma key is moved to the left of the
  spacebar on all layout to aligned with the same layout of
  phone's. Also the comma key has "settings" as more keys.
- In Arabic and Perisan, the comma key of tablet already has some more keys
  This CL remove "/" and add "settings" instead.

Bug: 15281451
Change-Id: I6e0e75e4d4abfb1f356e7499be91424c7c57c58b
2014-06-04 00:45:25 +09:00
Tadashi G. Takaoka ae0fab9550 Load KeyCodeDescriptionMapper class lazily
Change-Id: I2cba2bb5b2f449ed29895365b9c6ca285a7640fe
2014-06-03 18:15:59 +09:00
Tadashi G. Takaoka 9a2162e6f2 Merge "Fix synthesizing MotionEvent" 2014-06-03 07:32:52 +00:00
Tadashi G. Takaoka 2351b4f74f Fix synthesizing MotionEvent
KeyboardAccessibilityDelegate.synthesizeTouchEvent() wrongly passed
pointer's id as a 6th argument of MotionEvent.obtain method that
should be metaState.

Change-Id: I822f9647a1ba27ee8cee39f373f6a1c003ebf665
2014-06-03 14:46:36 +09:00
Tadashi G. Takaoka 7a750ca50d Fix PointerTracker debug output to reflect new KeyDetector
Change-Id: I913ec290ddfd0ae4cc6e600ba95b7442167f0989
2014-06-03 14:32:40 +09:00
Tadashi G. Takaoka a32803cefe More concise Key.toString()
Change-Id: I0ef983f54e828193e9c7e4a10c888f72702d499c
2014-06-03 13:32:42 +09:00
Tadashi G. Takaoka d427d3b0fa Merge "Create AccessibilityDelegate only when accessibility mode is on" 2014-06-02 10:12:52 +00:00
Jean Chalard 28538d916c Merge "Fix an IOOB exception" 2014-06-02 10:07:12 +00:00
Tadashi G. Takaoka d78b586976 Create AccessibilityDelegate only when accessibility mode is on
Change-Id: I4cbae476d16723778b46ff765dd97832f279785f
2014-06-02 18:53:58 +09:00
Jean Chalard d660f3bec9 Fix an IOOB exception
Bug: 14602663
Change-Id: Ie2060931df911b44230d5a5ba268f687cbdd0dc8
2014-06-02 18:21:50 +09:00
Tadashi G. Takaoka a021395e84 Pass hover event to accessibility key handling methods
Bug: 12491371
Change-Id: I1f7feef707b95e8862db71cbc4f6f5585a2441dd
2014-06-02 17:13:47 +09:00
Tadashi G. Takaoka d0b79cc12a Add verbalization of symbols that are unsupported by TTS/TalkBack
Bug: 13336905
Change-Id: Iefd117fa7b30b8ba240590b13b03d7044fd37ede
2014-06-02 17:02:38 +09:00
Tadashi G. Takaoka 82674ca81c Fix to clear on hover visual cue
Bug: 12491371
Change-Id: Ib7ca91ae73aa40e45ea5f6d4e53348a261a4b823
2014-06-02 14:57:52 +09:00
Tadashi G. Takaoka fa9b9578d4 Refactor MoreKeysKeyboardView a bit
Bug: 12491371
Change-Id: I3ce1e6557e41a94146b882751f75ae4b5f6bc73d
2014-06-02 12:41:50 +09:00
Tadashi G. Takaoka 509d07c764 am 61a8a66c: Merge "Workaround to draw spacebar icon of emoji palettes" into lmp-preview-dev
* commit '61a8a66ccac1de7e146344dd77c8be84aa8daf33':
  Workaround to draw spacebar icon of emoji palettes
2014-05-30 15:03:10 +00:00
Tadashi G. Takaoka 3558505bee Workaround to draw spacebar icon of emoji palettes
Bug: 15321822
Change-Id: Iab7cef83ffdf91c877c3ed2e59d412496b516e1c
2014-05-30 22:53:24 +09:00
Keisuke Kuroyanagi 8f71fab2ed Make prevWord = null if the next word starts from a connector.
This fixes PunctuationTests#
testAutoCorrectionWithSingleQuotesAround.

Bug: 14119293
Bug: 15334309

Change-Id: I604c21a21e89a5fc431fd56ab7b6ad03f4736b01
2014-05-30 20:30:17 +09:00
Jean Chalard fa0e76dde6 Limit recapitalization for reasonable performance.
At 100k text, it's reasonably fast (less than 1s on latest hardware).

Bug: 12913404
Change-Id: I426b918b2610af24364934a1c37a7314f1142ad0
2014-05-30 18:04:39 +09:00
Tadashi G. Takaoka 6fe326ae42 am 761a6812: Don\'t reuse main keyboard\'s spacebar icon for Emoji palette
* commit '761a6812312c48d04bcb91e5c4448364c4925731':
  Don't reuse main keyboard's spacebar icon for Emoji palette
2014-05-29 15:06:36 +00:00
Tadashi G. Takaoka 761a681231 Don't reuse main keyboard's spacebar icon for Emoji palette
Bug: 15321822
Change-Id: I6a5a865364fb98e0ebb6206d80d5629bbcb817b8
2014-05-29 23:32:03 +09:00