fix(android/engine): Display longpress keys during a Move gesture#6138
fix(android/engine): Display longpress keys during a Move gesture#6138darcywong00 merged 5 commits intobetafrom
Conversation
User Test ResultsTest specification and instructions
|
|
Initial feedback from @MakaraSok is that a key should immediately show preview before waiting a slight delay for longpress |
Correct. The key preview should always be instantaneous. |
912166f to
63da0fe
Compare
|
do we have longpress gesture in v15? |
What do you mean by a longpress gesture? Just a longpress on a key without movement? At present that is still the base key. We will be doing a lot more with gestures in 16.0, and that will be the appropriate time to review this. |
|
With longpress, we are seeing the popup keys. Is it possible for longpress to output shift layer as output instead of popup keys? |
This can be part of our 16.0 gesture work; see #5029; I will make note of this there. |
63da0fe to
39cb6da
Compare
|
I think this is ready to test and review |
GROUP_WEB: - Tests KeymanWeb desktop in mobile view
|
|
@bharanidharanj Regarding GROUP_IOS, this doesn't address any iOS popup issues. Those are handled separately in #6383. Do the iOS steps work as written? For GROUP_WEB, I cannot reproduce your Case 3 |
@darcywong00 Here, What I did is Hold on a separate base key for some time then release would show the base key letter on the text area. Okay, I will re-test this as per your suggestion in both Group_Web and Group-iOS and will post my result. |
@darcywong00 On iOS, Holding on a base key then quickly move to some other key will not show any output. |
GROUP_WEB: - Tests KeymanWeb desktop in mobile view
|
…ndroid/subkey-move
|
I'll go ahead and merge this. The iOS popup key alignment is handled in separate PR. |
|
Changes in this pull request will be available for download in Keyman version 15.0.220-beta |
|
In post-mortem, this broke our "roaming touch" behavior on all mobile platforms - the behavior where key previews are shown for the key underneath the user's finger as they move it about the keyboard. (So long as they wouldn't have triggered a longpress by that point, anyway.) |










Addresses #5301
This PR is initially in Draft for @MakaraSok to characterize the behavior of 14.0 compared to this one.Currently, if a user starts a longpress gesture but moves off the initial base key, the longpress (subkeys) never show.
This is because the Keyman Engine for Android's use of GestureDetector isn't handling ACTION_MOVE when it interrupts ACTION_LONGPRESS.
This PR handles ACTION_MOVE during a longpress gesture to display subkeys (if available).
In talking with @mcdurdin , he said once longpress keys are displayed, it's ok to keep displaying the initial keys while the longpress is held. (We currently don't need to refresh to other longpress keys as the user drags to other keys)
KeymanWeb is also changed so the base key isn't updated if there's subkeys are being displayed.
Previously, moving during the longpress would cause to longpress keys to update for the the final base key.
With this change, the longpress keys are locked into the original base key.
User Testing
This needs to be tested on more than one device type
Device Types
Tests
(is output(is outputa. Longpress a key, but immediately move off the base key before the longpress registers.
b. While holding the longpress, verify longpress keys for the original base key are displayed
c. Move to an available longpress key and release - verify the selected longpress key is output
a. Longpress a key, but immediately move off the base key before the longpress registers.
b. While holding the longpress, hold on a separate base key for a few seconds - verify longpress keys for the original base key are displayed
c. Move to an available longpress key and release - verify the selected longpress key is output
a. Longpress a key, but immediately move off the base key before the longpress registers.
b. While holding the longpress, hold on a separate base key for a few seconds - verify longpress keys for the original base key are displayed
c. Hold on the separate base key and release - verify nothing is output (only the longpress keys are eligible selections)