Open jahorton opened 3 months ago
It may be best to make this a language-specific setting, right alongside the other enable/disable toggles.
So we've always had this language-specific toggle, and I never saw a noticeable change in predictions. Can you confirm what the KeymanWeb API is for enabling/disabling?
It may be best to make this a language-specific setting, right alongside the other enable/disable toggles.
So we've always had this language-specific toggle, and I never saw a noticeable change in predictions. Can you confirm what the KeymanWeb API is for enabling/disabling?
With enable corrections
off, the engine shouldn't change any letters currently within the context. Granted, I haven't directly tested for that in a while... and upon deeper inspection, it doesn't seem to be affecting anything. So, yeah, that should be made into an issue and addressed.
Note lines 935-937 there - that would have originally "turned off" fat-finger data when .mayCorrect
is set to false. Looks like I never patched that up in 17.0 work.
I think this can be closed (the may correct toggle is already in the Keyman for Android language settings).
With the default sil_euro_latin keyboard on English, the toggle defaults to "on". And I verified keyman.core.languageProcessor.mayCorrect was true
After disabling the toggle, keyman.core.languageProcessor.mayCorrect is false
This is not the same thing. It believe it reasonable to want auto-correct disabled while still allowing for corrections to be presented as options.
Can you confirm what the KeymanWeb API is for enabling/disabling?
So what's the corresponding KeymanWeb call to this auto-correct toggle?
It doesn't exist yet, but it's not too tricky to handle.
On the suggestions returned by the worker, the suggestion to auto-select for auto-correction is annotated with property .autoAccept == true
.
The first suggestion with that set to true
is then saved by this.selected
(to hold the currently-selected suggestion) and applied when appropriate. The easiest way to block auto-correct is simply to block this condition from passing - that is, to ignore the autoAccept
flag. Say, if(this.allowsAutoCorrect && !s.autoAccept && !this.selected)
.
From there, the question is what API to provide from Web to allow host apps to toggle that allowsAutoCorrect
flag.
Since Keyman Engine for Android is currently toggling: keyman.core.languageProcessor.mayPredict keyman.core.languageProcessor.mayCorrect
Could we just add one more for keyman.core.languageProcessor.mayAutoCorrect ?
A slider so it's only one setting? no predictive text | offer predictions only | offer corrections too | auto-correct
A slider so it's only one setting? no predictive text | offer predictions only | offer corrections too | auto-correct
Does this mean we change the public API from two separate toggles into a single enum? https://help.keyman.com/developer/engine/android/17.0/KMManager/getLanguagePredictionPreferenceKey https://help.keyman.com/developer/engine/android/17.0/KMManager/getLanguageCorrectionPreferenceKey
Or does the slider correspond to 3 separate toggles internally? (prediction, correction, auto-correct)
Some design discussion needed?
DW to do work on Android (both FV + KM) SGS to do work on iOS (both FV + KM)
Consolidate the 4 options (No predictive text, Offer predictions only, Offer corrections too, Auto-correct) into RADIO BUTTONS
Preliminary implementation of the radio buttons
Remaining TODOs (may get split to separate PRs)
The Android radio button layout didn't allow for additional description info
From A18S14 sprint planning meeting, we'll defer this till A18S19 when @jahorton returns and can finalize the API involved
Is your feature request related to a problem? Please describe.
Now that we support auto-correct, it'd be wise to add a toggle allowing users to disable it if desired.
It may be best to make this a language-specific setting, right alongside the other enable/disable toggles.
Describe the solution you'd like
No response
Describe alternatives you've considered
No response
Related issues
No response
Keyman apps
Keyman version
No response
Operating system
No response
Device
No response
Target application
No response
Browser
No response
Keyboard name
No response
Keyboard version
No response
Language name
No response
Additional context
No response