This change is a followup of I948ef26f
Automatic Temporary Upper Case mode acts like Normal mode until shift
key is pressed. However, after shift key is pressed, it acts like
Manual Temporary Upper Case mode.
Bug: 3193390
Change-Id: Id3d7a38a1f5905322cd46ded36b1db26576d49af
With this change,
- Shift and Shift lock state of keyboard is maintained by
LatinKeyboard.ShiftState.
- Shift key state is maintained by ShiftKeyState object in
KeyboardSwitcher.
- LatinIME informs KeyboardSwitcher that shift key press, release and
long press and KeyboardSwitcher determines which state LatinKeyboard
and ShiftLeyState should be.
Bug: 3193390
Change-Id: I948ef26fda512eb1cb0ebddc89d322c4f4f4d670
This change partially implements the requested feature. The following
are not supported yet.
- Non-letter key handling on automatic temporary upper case layout.
- Non-letter key handling on shift chording in caps lock layout.
- Hint icons for manual temporary upper case layout are not final ones.
Bug: 3193390
Change-Id: I636da99d1be05b1337935d87c6f4d140661e1cc8
This change also eliminates KeyboardSwitcher.refreshKeyboardCache,
LatinIME.reloadKeyboards() and LanguageSwicther.getLocales().
Change-Id: I5fd4914660ea1c955ddfa0ca62b920f9bcd53e1b
This change defers determining which keyboard should be loaded and
holds the information in KeyboardId object as much as possible. At
keyboard loading time, the determination deferred will be made
depending on the information of KeyboardId.
Change-Id: Ice2455d9e5b21671a250c342c06c043e4baa5355
Because there may be very long key, such as space bar on tablet, we
should not use the distance between the touch point and the center of
key as proximity detection. Instead of that, this change uses the
distance between the point and the nearest edge of key as proximity
detection.
Also this change fixes the bug that space key (code 32) was not
counted in proximity detection.
Bug: 3164020
Bug: 3168138
Change-Id: I687f1ce94a8e944c3f6eea0fe00e18ed6e68e278
This change also fixes that the popup preview of ALT on symbol
keyboard is not showing.
Bug: 3122877
Bug: 3127255
Change-Id: I978cb30a0d05298274d8ab6541b91323a0fef211
Gesture detector, for closing keyboard by swiping down, must be
disabled not only when mini-keyboard is on the screen, but also in the
mini-keyboard itself.
Bug: 3105595
Change-Id: I548501f7117ca2310943cabb678c1e250e5012ce
Cherrypick I44f3b2eef8086d6e0b0db53d38f08487549060c6 from Gingerbread
This change also introduces the key background drawables which has no
fixed bottom padding. Instead of relying on bottom padding in
drawable, this change also specifies Keyboard.verticalGap with
physical unit. Other keyboard related length, distance and size are
also specified by physical unit.
Bug: 3066107
Change-Id: Ib38355ebfc2f8d5b1d26c4e90eba87196fbeddfa
LatinKeyboardBaseView should have removed "long pressed" pointer tracker from the multi-touch pointer queue.
bug: 3099130
Change-Id: I3d358a373b0de07558a204e9ff5a95e9ece38bcc
This is follow up change of I8b38e2803eb32469653484701882af35108eb69a
This change fixes the following when "Voice input on symbols keyboard"
option is selected.
- LatinIME.onCreateInputView fails to show "123mic" icon.
- Email and URL variation keyboard fails to show "123mic" icon.
Bug: 3084022
Change-Id: Ia3929bb0cc5c5c8651af816718c21d1f20e8f016
This change also introduces the key background drawables which has no
fixed bottom padding. Instead of relying on bottom padding in
drawable, this change also specifies Keyboard.verticalGap with
physical unit. Other keyboard related length, distance and size are
also specified by physical unit.
Bug: 3066107
Change-Id: I44f3b2eef8086d6e0b0db53d38f08487549060c6
bug: 3035228 This change will reduce the number of times VoiceSearch app
is called to log IME events. This is because it 1) only
flushes the logs when there is relevant logging information
available and 2) sets a flag in UserHappinessSignals so
that other apps (eg: gmail/sms) can know if there is
relevant logging information before sending the logging
intent to voice search.
Change-Id: I708fea5a38f854091f1101e4f6a3db46296f3e92
Merge commit '938c0a3722a9c597931e6f75408dc7ab636d7052'
* commit '938c0a3722a9c597931e6f75408dc7ab636d7052':
Fix - "Touch again to save" not working for manually picked suggestion when re-correction is enabled.
master was still using the deleted constants in different places and
Java 6 didn't like the imports.
Change-Id: If9472a2acb029e56790dc4d19ab62e608c970175
We'll merge this to master for now, but we should have new attr (such as popupCharWidth) to handle this reasonably in the newly created BaseKeyboard class.
bug: 3082178
Change-Id: I024b946aafbbeb07b865a09f489dacb56f0478d0
Merge commit '644445868f1023b3263a149f2faf617b88341d20'
* commit '644445868f1023b3263a149f2faf617b88341d20':
Addressed bug: 3058217 "-" key not working at beginning of line
To avoid a corner case of bug#3070963, in toggleShift() method of
KeyboardSwitcher, the shifted symbol keyboard will be set if current
keyboard is symbol keyboard or is not shifted symbol keyboard.
This change also implements mini keyboard cache with WeakHashMap.
Bug: 3070963
Change-Id: I868fc072e2f21bddded1622b800a53b9a6a43e91
Before this change, the delay was 500 ms that came from
ViewConfiguration.getLongPressTimeout(). This change reduces the
delay to 400 ms.
Bug: 3074984
Change-Id: Ia5af5e877a3c4bb29211ef4040c728ac09a9fe85
Keyboard XML file can include other keyboard XML file using directive
<include keyboardLayout="@xml/...">. The keyboard XML file which is
included must have <merge> tag as root element.
Change-Id: I06c35fe7b3db5232acdb33f73a79f38d31261b32
Also fixed related issues below:
* Punc suggestions list was sometimes not displayed after cursor move which follows re-correction
* Punc suggestions list was disappearing with words which contains certain punc chars (but not word separator) such as ' and -
Change-Id: I36faf679321782fa8eaf318411308a4a6b89cc25
Merge commit 'c0fc4bf9932caf536af5d5d86bb61ec6d8a44a99'
* commit 'c0fc4bf9932caf536af5d5d86bb61ec6d8a44a99':
Long press mic/comma key bring mini keyboard with settings
Merge commit '8e6a92703d1bdf530d32c8cdf90deefc6bc3a878'
* commit '8e6a92703d1bdf530d32c8cdf90deefc6bc3a878':
Dismiss orange highlight after suggestion has been selected
Merge commit '105f7c36b7fa1845b9edbf47ca55b4a6660303b6'
* commit '105f7c36b7fa1845b9edbf47ca55b4a6660303b6':
Long pressing mic/comma key will show settings menue
Merge commit '93176d869a496051344d80ef03573bc6bb99035a'
* commit '93176d869a496051344d80ef03573bc6bb99035a':
Display feedback popup for saving word while the word is pressing.
Merge commit '4d158dc2779ffff8c92a41f32e6885bd0f155fc3'
* commit '4d158dc2779ffff8c92a41f32e6885bd0f155fc3':
Check recorrection on focusing into a text field that has text already.
This change also fixes tha the touch slop value is applyed only for
initial movement of scrolling suggestion bar.
Bug: 3004920
Change-Id: I62afdedc210156e41e8c84c48cade442f9d5a1aa
Merge commit 'fcd5f2b9b4229c00a6589aad1fda9b727759d343'
* commit 'fcd5f2b9b4229c00a6589aad1fda9b727759d343':
Mini keyboard works even while shift is being pressed
Merge commit '0ea7e504887702bace7b2e765704d08e737ab1b5'
* commit '0ea7e504887702bace7b2e765704d08e737ab1b5':
Fixed key code and key coordinates when move debounce has been in action
This change refactors a key index and pointer position variables into
a separate static inner class KeyState . This change also disables
time debouncing.
Bug: 3033737
Change-Id: Ie4fc37316c260330d8f0861e0771ea903a99cfce
Merge commit '7f2a6a056b67efa2a1fb623ca4cf73f7fb6c7d8c'
* commit '7f2a6a056b67efa2a1fb623ca4cf73f7fb6c7d8c':
Capitalize the displayed text in the suggestion bar when all of the user typed chars are upper case
This keyboard layout is tentative for UX study.
This change added xlarge keyboard layouts only for "regular text",
"symbol/number mode" and "symbol/number mode shifted".
TODO other text mode variants should have dedicated layout.
Change-Id: I36077efcec4b57c3b5cada0a851e1409a289eeb9
Merge commit 'ca2fba71086b3832998ee9039723b66cce3be300'
* commit 'ca2fba71086b3832998ee9039723b66cce3be300':
Keep addWordToDictionary from doing disk I/O on main thread
Merge commit 'bf03559f7e38cd51cb5fd6b0afa937982cbffc67'
* commit 'bf03559f7e38cd51cb5fd6b0afa937982cbffc67':
Add enter/exit animation style to prevew and mini keyboard
TODO This animation style API of PopupWindow can be called only in
Gingrebread or later. We should refactor this using reflection to be
able to be compatible with Froyo.
Bug: 3004787
Bug: 2973989
Change-Id: I2abfcc853b1a0af2bccee7bdf5fbd723456b7d34
Merge commit '27bddbe67f00953dc82a8543fe610c9010f7077c'
* commit '27bddbe67f00953dc82a8543fe610c9010f7077c':
Move RingCharBuffer as a singleton in Util
Merge commit 'ec8b7360161f37d00d178bef37c30352982cd007'
* commit 'ec8b7360161f37d00d178bef37c30352982cd007':
Tune left and right padding of popup mini keyboard
Merge commit '1241be7e8498b8cca348d74363ece68b3ade730c'
* commit '1241be7e8498b8cca348d74363ece68b3ade730c':
Use SystemClock.uptimeMillis() for event time
Merge commit '8957296f066b1f624dc4fae71d3eeb5a0fec1b4f'
* commit '8957296f066b1f624dc4fae71d3eeb5a0fec1b4f':
Choose smaller or shorter language name for space bar
To fit a language name to the space bar or the language switcher, this
change chooses smaller text size or shorter language name
appropriately.
This change also tunes the vertical position of a language name in the
space bar by parameter SPACEBAR_LANGUAGE_BASELINE.
Bug: 3004640
Bug: 3001021
Change-Id: Idb3adcb6fac1a23836510912d35312fa11b4f259
Merge commit '7c120ce4872398ea4f61a67aba1d069e45f1c012'
* commit '7c120ce4872398ea4f61a67aba1d069e45f1c012':
Fix issue space key preview remains on screen and would not dismiss
The space key preview should be displayed one of the following case.
- Popup preview is enabled
- Language switcher is in action, whether popup preview is enabled or
not.
For phone number keyboard, popup preview is never displayed even if
popup preview is enabled.
Bug: 3006612
Bug: 3021091
Change-Id: I5385c776d0e8e3981fc8d8851db9140d92599ce5
This change adds lightweight visual hints of alternate numeric characters on the top row - e.g. having a light gray '1' on the upper right corner of letter 'q'
Note that MDPI resources are tentative (the same as HDPI for now, until we get fixed MDPI visual assets).
bug: 3004632
Change-Id: I7a25cf90b702433a844c88f5c47bf914706af9bc
Merge commit 'c01d978f56f90425f070d57a66968aa77ef69a7d'
* commit 'c01d978f56f90425f070d57a66968aa77ef69a7d':
Draw language label on space key of symbol+alt mode
Merge commit '9c822ec48de0e6839a861212d8b7143f70b29fd1'
* commit '9c822ec48de0e6839a861212d8b7143f70b29fd1':
Fix mini keyboard display position when preview is disabled
The residual time was formerly 150ms by
Ia63662a549481d18046a46ef8292c0a4438b5588, and originally was 70ms.
Bug: 3004787
Change-Id: If60a74c51e9a68f008711cca2423094e8204755f
Merge commit '300362f20982974d07876dee01b4550b8e54d449'
* commit '300362f20982974d07876dee01b4550b8e54d449':
Use the phone keyboard for NUMBER and DATETIME until we get a dedicated number entry keypad.
Merge commit '8ef27577da17f4203db00d5df96c3d2ed32ac713'
* commit '8ef27577da17f4203db00d5df96c3d2ed32ac713':
Default puctuation suggestions have same color
Merge commit '13a6c8c1f8691b753cd1a6b7a77d99af4f7d78ac'
* commit '13a6c8c1f8691b753cd1a6b7a77d99af4f7d78ac':
Add a new preference item to show/hide the settings key.
Merge commit 'b9705959df5d7de38df5dea53270bf702b87716d'
* commit 'b9705959df5d7de38df5dea53270bf702b87716d':
All keys should be processed before processing modifier key
Merge commit '4b813f56bbe11210835a31de7fd73bfe5a566ead'
* commit '4b813f56bbe11210835a31de7fd73bfe5a566ead':
Fix bug that upper case mini-keyboard does not work
Bug: 2996887
Override the methods in InputMethodService that hide the candidates view, since
it was just an optimization to show more lines of text when editing, which
conflicts with the re-correct feature.
Change-Id: Ibfed5ccd9efa048d0b69297a5cf8a638a0d00c72
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"