The motivation of this patch is to make sure a user never feel
haptic feedback when scrolling the Emoji palette. In order to
achieve it, EmojiPageKeyboardView#releaseCurrentKey() should
be called whenever (delayed) keydown events should be canceled.
This patch wires up ViewPager.OnPageChangeListener#onPageScrolled
with EmojiPageKeyboardView#releaseCurrentKey() so that delayed
keydown events will be canceled immediately once the ViewParger
starts scrolling.
BUG: 12964092
Change-Id: Iea8c3e090bb16a8622e6b4a850af2bf963aa77d0
Currently key-press effect such as highlight and vibration
occur even when a user want to scroll the Emoji palette.
To mitigate this situation, this patch introduces a short delay
for key-press feedback on the Emoji palette.
This is not an ideal solution but should be better than now.
BUG: 11103083
Change-Id: I1fa4514d742eb37f36fef60e6beabbc5eaa1653a
With this patch, the back-to-the-main-keyboard in the Emoji
palette will be registered as a key-release action instead of
a key-press action, like switch-to-the-emoji-palette in the
main layout. This provides mroe consistent UX when the layout is
switched from the main layout to the Emoji palette then
switched back to the main layout.
BUG: 12464067
Change-Id: Ia0d0185db43234dfcfb7cee2677f3d199fe6ed96
On the Emoji palette, unlike other layouts, a user could not
cancel events by moving the finger away from the spacebar.
With this patch, the actual handler of the spacebar will be
registered as onClick event, which will not occur when the user
cancel the event.
Bug: 12464067
Change-Id: I7e7e11ae5f17073e5d92116adca0702579d3ae9c
In some ways, the delete key on the Emoji palette was
inconsistent with that in other keyboard layouts.
- It deletes a character in down events, not up events.
- A user cannot cancel the event by moving the finger away from
the key.
This patch fixes these inconsistencies by revisin
EmojiPalettesView.DeleteKeyOnTouchListener. Notable changes are:
- An explicit state machine is introduced because there are
different event sequences to be considered.
- Background thread is replaced with CountDownTimer so tha
key-repeat events can be naturally generated in the UI thread.
- MotionEvent.ACTION_MOVE is now handled to cancel the
subsequent delete key events when the finger is moved away
from the key area.
Bug: 12464067
Change-Id: Ibc360a1394afef368a8d9af7b4c0e99e8ce1d83c
EmojiPalettesView triggers the haptic feedback at the timing of touch-up rather than touch-down.
This patch set changes the timing to touch-up so that the UX on the EmojiPalettesView can be consistent with normal keyboard layouts.
This patch set also fixes the missing haptic feedback from facemarks such as ":-)".
Bug: 11439600
Change-Id: I22245946712bd1c36226786d6ff81e3b563f7ef7