Commit graph

57 commits

Author SHA1 Message Date
Ken Wakasa
c2d7ac79bd Tweak key width for 'o'-popup chars.
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
2010-10-11 04:32:54 +09:00
Tadashi G. Takaoka
7e1f5a2d5a Make sure to set symbol keyboard shifted
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
2010-10-09 02:39:39 +09:00
Tadashi G. Takaoka
5e02930a7f Reduce delay before mini popup keyboard is shown
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
2010-10-08 19:05:16 +09:00
Tadashi G. Takaoka
afb3532779 Mini keyboard works even while shift is being pressed
Bug: 3038861
Change-Id: I94011ca80710ff6eb24e940104f7d9d3bb86840a
2010-09-29 12:36:13 +09:00
Tadashi G. Takaoka
0ae817c9ae 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
2010-09-24 20:51:13 +09:00
Tadashi G. Takaoka
9d44411a82 Fixed popup mini-keyboard position
This change reverts I28bf3e4deb46a428dc8422a3a165183e00608604 partly

Bug: 3029284
Change-Id: I0701ab9dfa1cfddbecbef3d32e525c0a143fc297
2010-09-23 20:04:13 +09:00
Tadashi G. Takaoka
77542988b8 Tune left and right padding of popup mini keyboard
This change also fix popup window display position calculation.

Bug: 3029284
Change-Id: I28bf3e4deb46a428dc8422a3a165183e00608604
2010-09-23 15:53:05 +09:00
Tadashi G. Takaoka
a96d8a11e8 Use SystemClock.uptimeMillis() for event time
Change-Id: If20f289992f829ae3a0a2a1eb60a4fc9b35c308a
2010-09-23 13:06:03 +09:00
Tadashi G. Takaoka
8243c7a5e5 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
2010-09-22 18:03:46 +09:00
Tadashi G. Takaoka
3a2896c804 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
2010-09-22 15:50:31 +09:00
Ken Wakasa
75c23ced94 Add lightweight visual indication for numbers.
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
2010-09-22 13:00:11 +09:00
Tadashi G. Takaoka
6b75eaa12d Fix mini keyboard display position when preview is disabled
Bug: 3021082
Change-Id: I2cfb462c89b222449ee2ba5559462a9f5d2306ed
2010-09-21 21:10:17 +09:00
Tadashi G. Takaoka
4da43a25cb Shorten popup preview residual time (100ms)
The residual time was formerly 150ms by
Ia63662a549481d18046a46ef8292c0a4438b5588, and originally was 70ms.

Bug: 3004787
Change-Id: If60a74c51e9a68f008711cca2423094e8204755f
2010-09-21 12:00:55 +09:00
Tadashi G. Takaoka
7763b36d6d Align key preview and mini-keyboard positions
Bug: 3004793
Change-Id: I1839e6ff3c8c66a576bfb3db9391c146ed225451
2010-09-18 02:19:03 +09:00
Tadashi G. Takaoka
4a3ffcbf32 Longer popup preview residual time (150ms)
Bug: 3004787
Change-Id: Ia63662a549481d18046a46ef8292c0a4438b5588
2010-09-18 01:48:03 +09:00
Ken Wakasa
1508c0e84f Add a new preference item to show/hide the settings key.
bug: 2998722

Change-Id: Iac1641c338388fd8f85e0cf47e31afdaeb34c0c0
2010-09-16 02:48:10 +09:00
Tadashi G. Takaoka
2aa8078df8 All keys should be processed before processing modifier key
Bug: 2987077
Change-Id: I971c44be121d8780ec27aa1649fd0925e249fbbc
2010-09-15 18:41:54 +09:00
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