fix(android): Add "Show On-screen keyboard" preference to display OSK when physical keyboard is connected 👁️#14539
Conversation
User Test ResultsTest specification and instructions Test Artifacts |
| Context context = getApplicationContext(); | ||
| SharedPreferences prefs = context.getSharedPreferences(PreferencesManager.kma_prefs_name, Context.MODE_PRIVATE); | ||
| boolean showOSK = prefs.getBoolean(KeymanSettingsActivity.oskWithPhysicalKeyboardKey, false); | ||
| return showOSK; |
There was a problem hiding this comment.
OK, so true is when we do want it to be shown.
Referring to #14538, I see that we did not port this to the FV and sample apps? I assume they'll get their own PRs, then?
There was a problem hiding this comment.
But the FirstVoices app would need a similar setting.
Yep, will have a follow-on PR for FirstVoices. I think I'll leave it out of the Sample apps though.
Does this mean that stable-18.0 users on Android-36 may not able to use their keyboard? Or will it only impact users with external keyboards (and the emulator, which is less of a concern)? |
Co-authored-by: Marc Durdin <marc@durdin.net>
I plan to 🍒 pick the base #14538 to stable-18.0. This would override showOSK to true so the OSK will always be displayed, even if physical keyboard is connected. |
After discussing more with @mcdurdin about this impact on stable-18.0, we'll go ahead and 🍒 pick this too. |
Test ResultsBefore testing:
|
|
Changes in this pull request will be available for download in Keyman version 19.0.103-alpha |
Follows #14538 in addressing #14533
This adds a Keyman app settings preference to show the on-screen keyboard while using physical keyboard.
Rather than using a resource string to get the shared preference (see #13633), this also starts a new
PreferencesManagerclass for managing these string constants. Separatingkma_prefs_namebetween the Keyman Engine for Android and Keyman for Android app will be addressed in #13633.As of now, I'm leaning towards not 🍒 picking a new preference to stable-18.0.
But the FirstVoices app would need a similar setting.
User Testing
Setup - Install the PR build of Keyman for Android on an Android emulator of API 36.
In the Keyman "Get Started" menu, set Keyman as the default system keyboard.
Also set Gboard to display on-screen keyboard:
device Settings --> Keyboard --> On-screen keyboard --> click Gboard --> Physical keyboard --> Show on-screen keyboard to "on"
back to Gboard settings --> write in text fields --> Use stylus to write in text fields , set to "off"