-
-
Notifications
You must be signed in to change notification settings - Fork 111
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
change(android,web) Use web-based popup key longpresses #9591
Conversation
User Test ResultsTest specification and instructions
Test Artifacts
|
@@ -490,7 +490,7 @@ div.android div.kmw-keytip-cap { | |||
.tablet.ios #kmw-popup-keys .kmw-key{border:none;} | |||
.phone.ios #kmw-popup-keys .kmw-key{border:none;} | |||
|
|||
.phone.android #kmw-popup-keys {border:none; border-radius: 2px; background-color:#ccc; padding:5px 5px 0 0;} | |||
.phone.android #kmw-popup-keys {border:none; border-radius: 2px; background-color:#333333; padding:5px 5px 0 0;} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Longpress background styling to match the current background from
<color name="key_preview_bg2">#ff333333</color> |
|
||
public resolve() { | ||
if(this.resolver) { | ||
this.resolver(new SubkeyDelegator(this.vkbd, this.baseKey)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
SubkeyDelegator
may be removed as well; it's used exclusively as a follow-up to this class.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ah, I still had to keep SubkeyDelegator
for
let gesture = osk.vkbd.subkeyGesture as SubkeyDelegator; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Right, which is within the executePopupKey
method. Which is no longer being called, correct?
... which means we could probably eliminate the whole executePopupKey
method, while we're at it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought both iOS and Android will still need KeymanWeb to handle executePopupKey
.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
gotcha. I was able to remove popVisible (it had the same gesture)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I thought both iOS and Android will still need KeymanWeb to handle
executePopupKey
.
Ah, I get that. Yeah, we did leave the Swift connections to it in place, since back when we moved iOS to rely on the WebView, we were hoping Apple would fix the motivating bug so that we could revert to the same strategy Android's been using. Didn't happen, though, and we never revisited to clean out the old code. Probably worth making into a cleanup issue.
Per review comments
function executePopupKey(keyID, keyText) { | ||
// KMW only needs keyID to process the popup key. keyText merely logged to console | ||
//window.console.log('executePopupKey('+keyID+'); keyText: ' + keyText); | ||
keyman.executePopupKey(keyID); | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Re: a recent comment in one of the other threads.
@bharanidharanj - please hold off on user testing until reviewers approve changes. Thanks |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm satisfied with the fixes to my requests for changes at this point.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Changes LGTM. Minor suggestions.
android/KMEA/app/src/main/java/com/keyman/engine/KMKeyboard.java
Outdated
Show resolved
Hide resolved
@@ -46,34 +45,5 @@ export function buildEmbeddedGestureConfig(device: DeviceSpec) { | |||
} | |||
} | |||
|
|||
if(device.OS == DeviceSpec.OperatingSystem.Android) { | |||
embeddedGestureConfig.createKeyTip = (vkbd) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
createKeyTip
and startLongpress
should be removed from EmbeddedGestureConfig
.
I also think that the globe hint should be reimplemented in KeymanWeb, so we don't need any of this glue, and so it can be themed later. (This can be a separate pull)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
createKeyTip
andstartLongpress
should be removed fromEmbeddedGestureConfig
.
EmbeddedGestureConfig
cleanup in 98660fe
Co-authored-by: Marc Durdin <[email protected]>
Remove createKeyTip and startLongpress
Changes in this pull request will be available for download in Keyman version 17.0.179-alpha |
Addresses part of #9573 and fixes #9499
This updates Keyman Engine for Android to match iOS using KeymanWeb for handling longpresses.
The longpress keys will be limited by the top of the banner/OSK.
KeymanWeb changes
buildEmbeddedGestureConfig
andpendingLongpress
Keyman Engine for Android changes
This portion of #9573 will be addressed on a separate PR. Android will possibly need some image banners to display when predictions are disabled.
User Testing
Setup - Install the PR build of Keyman for Android on an Android device emulator. In the Keyman app, also install the IPA (SIL) keyboard
<
symbol appears on the screen.