Skip to content

fix(android): Show system OSK when physical keyboard connected on Android API 36 👁️#14538

Merged
darcywong00 merged 2 commits intomasterfrom
fix/android/onEvaluateInputViewShown
Aug 20, 2025
Merged

fix(android): Show system OSK when physical keyboard connected on Android API 36 👁️#14538
darcywong00 merged 2 commits intomasterfrom
fix/android/onEvaluateInputViewShown

Conversation

@darcywong00
Copy link
Copy Markdown
Contributor

Addresses part of #14533

Android emulator on API 36 (Android 16.0 Baklava) has a new behavior where the system On-Screen Keyboard doesn't appear because the physical keyboard of the host computer is connected. The Gboard keyboard has a preference toggle to "Show on-screen keyboard while using physical keyboard" (default false)

show physical keyboard

This PR overrides the SystemKeyboard handler to display the OSK while using physical keyboard (on the Keyman, Sample2, and FirstVoices apps)

We'll probably 🍒 -pick this PR to stable-18.0 since Android API 36 will roll out to more devices over the year.
A separate follow-on PR will address the long-term plan of having a Keyman preference toggle to show on-screen keyboard while using physical keyboard (default false)

User Testing

Setup - Setup Android emulator for API 36. 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"

For each test, install the corresponding PR build

  • TEST_KEYMAN - Verifies Keyman system keyboard appears and functions
  1. Install Keyman for Android
  2. Launch Keyman and from the "Get Started" menu, set Keyman as the default system keyboard
  3. Launch Chrome and select a text field
  4. With Keyman as the system keyboard, verify the OSK appears
  5. Type on the Keyman system keyboard and verify typing and suggestions function
  • TEST_KMSAMPLE2 - Verifies the Sample2 system keyboard appears and functions
  1. Install KMSample2 app
  2. Launch KMSample2 and from the menus, set KMSample2 as the default system keyboard
  3. Launch Chrome and select a text field
  4. With KMSample2 as the system keyboard, verify the OSK appears
  5. Type on the KMSample2 system keyboard (Amharic) and verify typing and suggestions function
  • TEST_FirstVoices - Verifies FirstVoices system keyboard appears and functions
  1. Install FirstVoices for Android
  2. Launch FirstVoices
  3. From the setup menu, Select keyboards --> Region --> BC Coast - -> Sencoten --> enable Sencoten keyboard
  4. Return the setup menu
  5. From the setup menu --> Setup --> enable FirstVoice as the default system keyboard
  6. Launch Chrome and select a text field
  7. With FirstVoices as the system keyboard, verify the OSK appears
  8. Type on the FirstVoices Sencoten system keyboard and verify typing and suggestions function

@keymanapp-test-bot
Copy link
Copy Markdown

keymanapp-test-bot bot commented Aug 18, 2025

User Test Results

Test specification and instructions

Test Artifacts

@keymanapp-test-bot keymanapp-test-bot bot added this to the A19S10 milestone Aug 18, 2025
@darcywong00 darcywong00 changed the title fix(android): Show system OSK when physical keyboard connected on Android API 36 fix(android): Show system OSK when physical keyboard connected on Android API 36 👁️ Aug 18, 2025
@Nnyny
Copy link
Copy Markdown
Contributor

Nnyny commented Aug 19, 2025

Test Results

Before testing:
- In system keyboard, turn on 'Show on-screen keyboard' and tun off 'Use stylus to write in text fields'
- Install API 36

  • TEST_KEYMAN (PASSED): notes
    Keyman 19.0.101-alpha-test-14538
  1. On Get Started > select 'Enable Keyman as system-wide keyboard'
  2. Go to Chrome and select on the text area
  3. Default keyboard shows up
  4. Switching to Keyman keyboard, EuroLatin keyboard and dictionary is functioning ok
  • TEST_KMSAMPLE2 (PASSED): notes
    KMSample 2
  1. Install app-debug.apk
  2. Open KMSample2, select 'Open Input Method Settings' > turn on KMSample2 as on-screen keyboard
  3. Select 'Open Input Method Menu' > choose 'KMSample2'
  4. Go to Chrome and select the text area
  5. Tamil 99 Basic keyboard appears and it's functioning correctly
  • TEST_FirstVoices (PASSED): notes
    FirstVoices-19.0.101.apk
  1. Open FirstVoices, Select keyboards > BC Coast > Sencoten > enable keyboard
  2. Back to main page, Setup> select 'Enabled FirstVoices' and 'Choose FirstVoices as current input method'
  3. Go to Chrome and select the text area
  4. The Sencoten keyboard appears and it's functioning okay

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label Aug 19, 2025
@darcywong00 darcywong00 merged commit 9ddcf0a into master Aug 20, 2025
8 checks passed
@darcywong00 darcywong00 deleted the fix/android/onEvaluateInputViewShown branch August 20, 2025 02:33
@github-project-automation github-project-automation bot moved this from Todo to Done in Keyman Aug 20, 2025
@keyman-server
Copy link
Copy Markdown
Collaborator

Changes in this pull request will be available for download in Keyman version 19.0.103-alpha

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

5 participants