Commit graph

40 commits

Author SHA1 Message Date
Tadashi G. Takaoka
eb68036798 Add keyHysteresisDistance xml attribute
This change also introduces MiniKeyboardKeyDetector and
mini_keyboad_slide_allowance parameter to tune the key detection
behavior.

Bug: 2993769
Change-Id: I1932b0a382e172cb77b9e098ae182049c834dfe0
2010-09-14 16:26:45 +09:00
Ken Wakasa
aed0122734 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
2010-09-12 19:17:08 +09:00
Ken Wakasa
f62166c13b 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
2010-09-12 04:09:36 +09:00
Ken Wakasa
3de8f34b8c Code cleanup
Change-Id: I333693ab8e4088180cc25768d874ad7320d9da8b
2010-09-10 13:15:45 +09:00
Tadashi G. Takaoka
83e63ace2a Dismiss mini keyboard when finger is released outside mini keyboard
Bug: 2978975

Change-Id: Ie634e8ae827fe093c5c673b75d85835050b03794
2010-09-07 17:44:31 +09:00
Tadashi G. Takaoka
6252f468bc 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
2010-09-07 17:29:09 +09:00
Tadashi G. Takaoka
8d7ffcb2ac Disable pop-up preview on mini keyboard
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
2010-09-06 22:42:17 +09:00
Tadashi G. Takaoka
c8b9afe037 Support multi-touch only when device has distinct multi-touch panel
Bug: 2973373
Change-Id: I9871c09ec8c1c2aa945d97392e61ee1ec585baef
2010-09-06 17:57:13 +09:00
Tadashi G. Takaoka
e8f45ab56f One alternate is treated as key action, not open mini keyboard
This change also fixes bug#2973683.

Bug: 2973546
Bug: 2973683
Change-Id: I67573e5b7cad4af261591a4a608d0596dd7901f2
2010-09-03 20:09:21 +09:00
Tadashi G. Takaoka
0b4734396f Move inflating mini keyboard code into separate method
Change-Id: Iba8e43ba6125e559d4c7d9cadb6bcb13b8eefc83
2010-09-03 17:35:54 +09:00
Tadashi G. Takaoka
c5d33b1652 Fix NPE in LatinKeyboardBaseView
This change also refactors some mini-keyboard related methods in
LatinKeyboardBaseView and PointerTracker class.

Bug: 2973236
Change-Id: I3190fe89ea3ac3c6d351ed4b6d77de98a0aa65db
2010-09-03 13:03:08 +09:00
Tadashi G. Takaoka
7083b7486e Propagate preview enable attribute to mini-keyboard
Bug: 2959169
Change-Id: Iea1bec44baf3344d9f91280bd2b8f28476cbcf51
2010-09-03 05:28:43 +09:00
Tadashi G. Takaoka
fe72f135b8 Remove close button from mini keyboard
Bug: 2959169
Change-Id: I9c78f9417aaa448b8b23596bc3e748fe99085393
2010-09-03 04:56:12 +09:00
Tadashi G. Takaoka
07221a4ad1 Support sliding pop-up mini-keyboard input
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
2010-09-03 04:51:37 +09:00
Tadashi G. Takaoka
400046d62e Encapsulate vertical and horizontal correction values into KeyDetector.
Bug: 2959169
Change-Id: Id2b0b974fffdf6f09ee1828e957b973d2ce1c315
2010-09-02 21:54:26 +09:00
Tadashi G. Takaoka
3d4123fabb Add PointerTracker argument to long press related methods
This change also adds debugging log to PointerTracker class

Bug: 2959169
Change-Id: Ie6cf67681180467bd8ba35d0205ce6727b7684a2
2010-09-02 20:28:31 +09:00
Tadashi G. Takaoka
40a05f62ed Queuing PointerTracker to support n-key roll-over and shift modifier.
Bug: 2910379
Change-Id: I5cfae33e72a406585137842a2260310813cee07f
2010-09-02 16:03:46 +09:00
Tadashi G. Takaoka
c6cb2ec1f3 Add new public attribute mPointerId to PointerTracker
It is easier to track each pointer if a PointerTracker object keeps
its pointer id.

Bug: 2910379
Change-Id: If3e3b0cf3d834d22302598f4d85d54c9a4ce92ba
2010-09-02 02:21:17 +09:00
Tadashi G. Takaoka
2085d43daf Make abstract KeyDetector class
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
2010-09-02 01:53:26 +09:00
Tadashi G. Takaoka
681b102a49 Track all pointers events
Bug: 2910379
Change-Id: I179ae4359afb57c351d5fcc5f5453c30d3ef0c01
2010-09-01 22:37:37 +09:00
Tadashi G. Takaoka
a521b31d96 Introduce multiple PointerTracker
Bug: 2910379
Change-Id: Iefafa2d30ad16f898a00664e4bf3e3e88dcd2cb2
2010-09-01 15:59:54 +09:00
Tadashi G. Takaoka
6a1514a0de Make KeyDebounce class a top-level class and rename it to PointerTracker
Bug: 2910379
Change-Id: I9503b2211b272a4a2903d0732985e5ab8ee39440
2010-09-01 12:26:32 +09:00
Ken Wakasa
b24cc640c1 Fix ArrayIndexOutOfBoundsException.
bug: 2964045
Change-Id: I97d95181e1a6838ace9c135aa92e7f20034e821f
2010-09-01 09:11:38 +09:00
Tadashi G. Takaoka
b57b478569 Refactor KeyDebounce class
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
2010-09-01 00:18:49 +09:00
Tadashi G. Takaoka
2ca84dacff Refactor key preview methods
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
2010-08-31 18:39:20 +09:00
Tadashi G. Takaoka
ba9b24edff Remove mAbortKey flag completely
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
2010-08-31 00:43:40 +09:00
Tadashi G. Takaoka
06123e5691 Don't re-allocate KeyDebouncer when keyboard is switched.
This change also re-orders instance variables and eliminates
unnecessary ones.

Bug: 2910379
Change-Id: I6b2217f75738fada32a33f59f0f7adba5e99dd6e
2010-08-28 01:23:01 +09:00
Tadashi G. Takaoka
00dda50efd Revert "Show key preview instantaneously"
This reverts commit 09f530e248.

Change-Id: I3106cd22cc1eac750f05bce26df6af3026dfaf86
2010-08-27 21:04:31 +09:00
Tadashi G. Takaoka
09f530e248 Show key preview instantaneously
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
2010-08-27 19:38:52 +09:00
Tadashi G. Takaoka
5b6fbf9a4f Refactor onModifiedTouchEvent into several methods.
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
2010-08-27 09:59:59 +09:00
Tadashi G. Takaoka
e83d7385ab Refactor getKeyIndexAndNearbyCodes into independent class
Bug: 2910379
Change-Id: Ib26a898ea108ee4292f9f91b6d7d10c1fc380fd1
2010-08-26 23:33:08 +09:00
Tadashi G. Takaoka
dfbc5080a1 Refactor SwipeTracker class
This change moves SwipeTracker out from LatinKeyboardBaseView.  Also
this introduces EventBuffer class for swipe tracking buffer.

Bug: 2910379

Change-Id: I48ff714226a248ca063cbaf9755cf45e458f7402
2010-08-26 23:28:52 +09:00
satok
542f057ef6 Add a log for getting coordinates of keys
Change-Id: I57cc6fb6a9eeb65ce8c0c3c3262fd525726643e2
2010-08-26 18:08:12 +09:00
Tadashi G. Takaoka
0c54809891 Refactor gesture detector logic
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
2010-08-26 15:54:50 +09:00
Tadashi G. Takaoka
0d098c514e Fix bugs in key repeat logic
Bug: 2950714
Change-Id: I3110369c085f89ee1e8f7392a9a04a6b9e377ed4
2010-08-26 12:03:17 +09:00
Tadashi G. Takaoka
05d1904ed7 Refactor SwipeTracker to top level class
Bug: 2910379
Change-Id: If0ef09d8b0e7ca1c62b4c5a31bcaa620664868f2
2010-08-25 17:21:43 +09:00
Tadashi G. Takaoka
f4271e51e7 Refactor key repeating related code
This change encapsulates mInKeyRepeat (former mRepeatKeyIndex) into
UIHandler class.  Also this eliminates mCurrentKey and mLastTapTime
dependency from repeatKey method.

Bug: 2910379
Change-Id: I9351a558be2ebc04de4ebb0d323af4be33bd470c
2010-08-25 12:33:46 +09:00
Tadashi G. Takaoka
8ee1321264 Refactor long press related code
This change eliminates mCurrentKey dependency from openPopupIfRequired
method.  Also slightly cleanup onModifiedTouchEvent.

Bug: 2910379
Change-Id: I90c9b39c46c0bb32ecc6588abfc49eb60315f54c
2010-08-25 12:08:20 +09:00
Tadashi G. Takaoka
8b0cb128be Refactor onModifiedTouchEvent of LatinKeyboardBaseView
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
2010-08-25 10:17:14 +09:00
satok
979f869096 DO NOT MERGE. Backport LatinIME from master to Gingerbread
TODO: Cleanup will follow.

Change-Id: I4a68ba9f2f55760aa24187f1f13fdfa8a0b70963
2010-08-20 14:37:03 +09:00