This change also introduces MiniKeyboardKeyDetector and
mini_keyboad_slide_allowance parameter to tune the key detection
behavior.
Bug: 2993769
Change-Id: I1932b0a382e172cb77b9e098ae182049c834dfe0
The newly added SharedPreferencesCompat adapter class does apply() when available (Gingerbread+), else do commit().
This change incorporates I4eca20fb and I39f6aa04.
bug: 2983837
Change-Id: Iec4e8b69840ad71dbbd6098eeba349934d8248ff
Merge commit '65dab9078dd0c77adcc49d08c46039dad2a950f6'
* commit '65dab9078dd0c77adcc49d08c46039dad2a950f6':
Fix a bug in y-axis offset for sliding finger key detection for mini popup keyboard.
Also, tentatively added key detection allowance for below of the keys in mini popup keyboard.
bug: 2979407
Change-Id: I84794969facd929c84df23e0120d46dff71c6efb
Merge commit 'd73d267f34efb131467d9103bb9a56c18f9623b7'
* commit 'd73d267f34efb131467d9103bb9a56c18f9623b7':
Mini popup keyboard adjustment: Have the leftmost number right above the key.
Also fixed an issue when the mini popup keyboard hits the right edge of the view.
A few code cleanups as well.
bug: 2980864
Change-Id: I95f8392521e57560907d54b662e3483ebaf6f7ce
On a device that has distinct multi-touch panel, pressing '123?' key
will change keyboard layout to symbol mode. While pressing '123?'
key, you can press other symbol key to input. Then releasing '123?'
key will change keyboard layout back to alphabet mode.
Bug: 2973383
Change-Id: I3b069fb19141820def8060db4766a08c7c0a6ff0
Merge commit 'dacc927a57b0c7adfbdf244441b9b2495c959980'
* commit 'dacc927a57b0c7adfbdf244441b9b2495c959980':
Update strings for the settings access - based on the latest GB IME spec (ver 03).
Merge commit 'e5abf25d4b57ecdfc01ca3ddf94753d5bcb07fea'
* commit 'e5abf25d4b57ecdfc01ca3ddf94753d5bcb07fea':
Dismiss mini keyboard when finger is released outside mini keyboard
Merge commit 'bc1a0354ef1cac0319cab63822c66203f1fa2c24'
* commit 'bc1a0354ef1cac0319cab63822c66203f1fa2c24':
Fixed extra periods when chording with shift and space
Actually it was caused by canceling repeat key (space and delete) when
multiple pointer are touching.
Bug: 2975041
Change-Id: If82183b9225efdace7b5418860b9664f1705b7ec
This change also disable the special behavior of long press a key that
has only one digit alternate. If the visual design of both the pop-up
preview and the mini keyboard will look like same, I think that
showing mini keyboard is enough for the key that has one digit
alternate.
Bug: 2973546
Change-Id: I04f138c120aa58526fe054626dac856171fb7a58
Merge commit 'd5bcbf8156fdba8199452b8f95ed1940b7e96d31'
* commit 'd5bcbf8156fdba8199452b8f95ed1940b7e96d31':
Support multi-touch only when device has distinct multi-touch panel
Merge commit '232b039496ef95c543bac5128e6378b38760de21'
* commit '232b039496ef95c543bac5128e6378b38760de21':
One alternate is treated as key action, not open mini keyboard
Merge commit 'c93ac9db7129f935425f79d5a460e7b926cb4a22'
* commit 'c93ac9db7129f935425f79d5a460e7b926cb4a22':
Move inflating mini keyboard code into separate method
Merge commit '6654653562d0ec5d46a74f8c49eab2488e273cf2'
* commit '6654653562d0ec5d46a74f8c49eab2488e273cf2':
Change symbol on space bar when autocompletion is activated
This change also refactors some mini-keyboard related methods in
LatinKeyboardBaseView and PointerTracker class.
Bug: 2973236
Change-Id: I3190fe89ea3ac3c6d351ed4b6d77de98a0aa65db
TODO:
- Remove close button on mini-keyboard
- Dismiss mini-keyboard when finger leave the screen while no key is selected
This change also renames some instance variables to have more meaningful name.
Bug: 2959169
Change-Id: I9fd79116a647d7be82415c6e9e7cdaf6edcb2bf6
Merge commit 'a4397ce38af2e1ac3a8284bc078bd1e9cb4fecf4'
* commit 'a4397ce38af2e1ac3a8284bc078bd1e9cb4fecf4':
Add PointerTracker argument to long press related methods
Merge commit 'd0457eae17d10535023a02579d16ede7bfcc6bec'
* commit 'd0457eae17d10535023a02579d16ede7bfcc6bec':
Queuing PointerTracker to support n-key roll-over and shift modifier.
Merge commit 'c5363012b846733e9a3b7ce7de5b04e58644bedc'
* commit 'c5363012b846733e9a3b7ce7de5b04e58644bedc':
Change the preference name for a theme and remove a preference settings
Merge commit '308acfa714a3a0aae073871e76e753b5a98096d1'
* commit '308acfa714a3a0aae073871e76e753b5a98096d1':
Change background color for functional keys in LatinIME
Merge commit 'c354167c84b06b572067efaddfbd3667ffdadb98'
* commit 'c354167c84b06b572067efaddfbd3667ffdadb98':
Correction improvements - use the new InputConnection APIs for underlining and
fetching the selected text.
Bug: 2950652
Some refinements to correction behavior, such as retaining the tap-to-save
when in correction mode.
Use reflection to access the new InputConnection APIs with fallbacks, in case
we run on older OS versions.
Some refactoring to separate lookup for voice alternatives and typed alternatives.
Change-Id: I7c4178bf7e6b47ee274c49fa7a694f8c2d50cea7
Merge commit '2c7583f6c3c24202492b9404955b1aee2dc5ce94'
* commit '2c7583f6c3c24202492b9404955b1aee2dc5ce94':
Add new public attribute mPointerId to PointerTracker
The KeyDetector abstracts key detection algorithm. The
ProximityKeyDetector is one of its concrete implementations. Another
one that might be called XAxisKeyDetector will follow to realize the
pop-up mini-keyboard behavior described in bug#2959169.
Bug: 2959169
Change-Id: Idd3fc53282e6b721ec7a4ce500af8aba21ce07a3
- Add a layout for popup for new theme
- Change the color of language bar
- Fix a drawable for settings feedback
Change-Id: I7c0c9e238c8223554a62f7b0c8092d074cf9743f
Merge commit 'ad60fe2e80878e1b1caa2c9207d8f601e203560f'
* commit 'ad60fe2e80878e1b1caa2c9207d8f601e203560f':
Make KeyDebounce class a top-level class and rename it to PointerTracker
This change moves the following methods into KeyDebounce class.
- MotionEvent handling methods (onDownEvent etc.).
- Keyboard action event generator method (detectAndSendKey).
- Multi-tap key support methods (resetMultiTap etc.).
- Key preview text generator method (getPreviewText).
The change that makes KeyDebounce a top-level class will follow.
Bug: 2910379
Change-Id: I1526c0461e247d97f0c4b3bd580330f137c787be
Extract key press and release handling out of previewKey() to
KeyDebouncer class. And pass Key object as argument of previewKey()
instead of key index.
Bug: 2910379
Change-Id: Ifec39cfc4845bd92da2f62eba2b26ac6a5cbb341
Log which voice-based alternates were selected, and what
word in the recognition results were replaced.
Change-Id: I1527dc794902a18a226ca45e186ecf84841094c8
Conflicts:
java/src/com/android/inputmethod/latin/LatinIME.java
These three conditions assign true to the mAbortKey flag.
1. setKeyboard() sets the new keyboard layout.
2. long press shows the pop-up mini keyboard.
3. ACTION_CANCEL event is occurred.
In the case 1, in LatinIME so far, only "symbol key" and "language
switch" cause keyboard layout change. In both cases, the event is
occurred in onUpEvent(), so we do not need to worry about aborting
event.
In the case 2, long press is used only to pop-up mini-keyboard and at that
time mMiniKeyboardOnScreen could be used as a flag.
In the case 3, though I'm not sure when this case occurs, in
onCancelEvent() all the things that should be canceled are canceled
in onCancelEvent().
Bug: 2910379
Change-Id: I12377c5f3e808f1c017ce980e12b1513895047bc
This change will display the key board preview instantaneously when
the key is pressed. Dismissing the key preview will be delayed
slightly after the key is released, as we do now.
Because in multi touch mode, we should instantaneously change keyboard
layout when modifier key, such as shit and symbol, is pressed.
Change-Id: I49348d563ca0f40f5a0a236bdcd0bb07eedd599b
Long-press on shift and symbol keys will conflict with press-and-hold
these keys and press normal key (a.k.a. multi touch support).
Bug: 2910379
Change-Id: I27007b55a30a3699bf63fd8f64d58c4b23d97d9f
This change eliminates the need of extra MotionEvent allocation. Also
this will lead to the easy way to handle multi touch events.
Bug: 2910379
Change-Id: Ibcfcba554b732c13105f91877b41b553ee6928ba
This change moves SwipeTracker out from LatinKeyboardBaseView. Also
this introduces EventBuffer class for swipe tracking buffer.
Bug: 2910379
Change-Id: I48ff714226a248ca063cbaf9755cf45e458f7402
GestureDetector listener's onFling method will not call detectAndSendKey
anymore.
Make gesture detector be ignoring multitouch. Refactoring
GestureDetector out of LatinKeyboardBaseView class change will follow.
Bug: 2910379
Change-Id: I0b2a9c4cf7d432f89f9085f3c2bdf3a3757a8903
This change encapsulates mInKeyRepeat (former mRepeatKeyIndex) into
UIHandler class. Also this eliminates mCurrentKey and mLastTapTime
dependency from repeatKey method.
Bug: 2910379
Change-Id: I9351a558be2ebc04de4ebb0d323af4be33bd470c
This change simplifies onModifierTouchEvent to focus on handling
motion event related to a key event.
Other refactoring will follow in order to support multi touch.
Bug: 2910379
Change-Id: I036be64168d951a535600a7910b36bc109f88490
Merge commit '6558253160e2039c87f424bd814f402ecd31de3b' into gingerbread
* commit '6558253160e2039c87f424bd814f402ecd31de3b':
Fix a bug in backspace handling for the "Tap again to save"
Merge commit 'f02964264f196447b03a88591a2964b67c318718' into froyo-plus-aosp
* commit 'f02964264f196447b03a88591a2964b67c318718':
Don't auto-select the system language in IME language selection screen.
Fixes http://b/2650378
On entering the selection screen, don't add the system language in addition
to other selected languages.
Change-Id: Id7a3b45df39a8493d17be668029eee139bf00ff3
Sometimes the only motion event that is above the keyboard is the UP
event. In that case we can't expect one more event to come that will
dismiss the extension. So don't show the extension if the only Y < 0
event is an UP event.
Change-Id: I04a8b742dea03cd700006dc5df740ac7d9620c0b
Merge commit 'f9d0f3a81ad4220672f90a8799a79e63e53c46d3' into froyo-plus-aosp
* commit 'f9d0f3a81ad4220672f90a8799a79e63e53c46d3':
Fix for: For Voice IME busy circle displayed below waveform
bugfix for: http://b/issue?id=2568048
[Sapphire] ]For Voice IME busy circle displayed below waveform.
STEPS TO REPRODUCE:
1. launch Calendar . -> Select menu -> New Event.
2. Switch soft keyboard to Number view.
3. Tap on mic symbol of to speak
4. Speak any word to enter in Text field .
5. Verify busy icon ( circular icon ) displayed in "working " screen.
EXPECTED RESULTS:
Busy circle should be displayed in center of waveform
OBSERVED RESULTS:
Busy circle displayed below waveform
ADDITIONAL INFORMATION:
Spoken word is enetering in text field correctly.
Change-Id: I043ce6a985f526cade0e9f63525619a92d918485
Merge commit 'c2b8c16bdf392c81785031483d21740c5e883046' into froyo-plus-aosp
* commit 'c2b8c16bdf392c81785031483d21740c5e883046':
Possible fix for monkey bug: 2529350
Merge commit '3e0c82ec80a69c4adbd60546c3c56c83c43ec7eb' into froyo-plus-aosp
* commit '3e0c82ec80a69c4adbd60546c3c56c83c43ec7eb':
Fix for 2568664 : Slide gesture on spacebar is not reliable anymore
This was due to the multi-touch error correction code that was recently
added. Make sure that one of the move points is in the upper 3 rows
to allow for fast swipe on spacebar.
Change-Id: I420bdb83a4cd8833c4158bc37a2d806b8c83b948
Detect sudden moves that have a large delta that would not be a typical drag
by the user when hunting for a key. Drop move events until the user releases
the touch and register both starting and ending keys instead of only the
ending key. This reduces the frequency of dropped keys on touch hardware that
isn't able to detect multi-touch reliably.
This also takes into account diagonal moves or right angled moves due to
pseudo-multi-touch.
It weakens the swipe gestures (to swipe, you'll need to swipe slowly and fully,
otherwise it will trigger 2 keys)
Change-Id: Ieba3a0bef4c8910f0f17aa20baedb3581d1de12b
Keep a reference to the openhelper around across locale and input language
changes. Also, share the openhelper between the queries and updates. Creating
a new one in a separate thread could cause it to be closed at the wrong time.
Monkey bugs, probably dupes.
Bug: 2560471
Bug: 2544169
Change-Id: I6eb39145de7191732ddde455728bf147a2d1ba31
Also don't highlight quickfixes when in suggest-only mode
In general, reduce the situations where words are auto-added. It was
too eagerly adding even words that were in the dictionary.
This might also fix the keyboard closing suddenly when using the extension.
Re-enable bubble for landscape extension keyboard, since the framework can
now display it to the side.
Also add a summary text in the input language list for languages with
a dictionary so that users don't feel cheated when they pick a language
that doesn't happen to have a dictionary. Remove greek as it isn't an
extension of the QWERTY keyboard.
We were overlogging the TextMoified action because the old
implementation would log a cursor change as a text
modification. This CL logs 4 specific actions (choose
suggestion, delete text, insert text, insert punctuation)
as a text modification rather than any action in the textbox
I also add in logging of the length of the recognition result
so that we can get some more context around the scope of the
editing of the ime result.
Change-Id: I172df24ddc0a7b62bcc5ed806fd70ef7e1c42310
Bug: 2513996
The array of adjacent letters did not have the primary code in the first
position. Swap the codes around to make the primary the first one.
Change-Id: Id753254c88d440d3d76dbc048d123dfc78edf58d
This is to avoid ANRs during bootup, as some of the providers
may not have been initialized yet.
Refactored the ContactsDictionary and moved the async loading
code to ExpandableDictionary to share with the other dicts.
Bug: 2501133
Change-Id: I20393edb6fdf5df2f54ebac8dd04419a592177a2
Move java code to a different directory so that the unbundled
version doesn't try to compile the native code again.
Change-Id: I05cf9e643824ddc448821f69805ccb0240c5b986