Skip to content

fix(android): Convert Keyman app layouts for edge to edge 🏠#14597

Merged
darcywong00 merged 3 commits intostable-18.0from
cherrypick/android/edge-to-edge
Aug 31, 2025
Merged

fix(android): Convert Keyman app layouts for edge to edge 🏠#14597
darcywong00 merged 3 commits intostable-18.0from
cherrypick/android/edge-to-edge

Conversation

@darcywong00
Copy link
Copy Markdown
Contributor

Follows #14584
This 🍒 picks #14396 and #14463 to stable-18.0 so the Keyman for Android app activities handle the "Edge-to-edge" behavior of Android API 35. Activity layouts handle system insets (top status bar/camera notch and bottom navigation bar).

User Testing

Setup - Install the PR build of Keyman for Android on an Android emulator/device of Android API 34

  • TEST_KEYMAN_ACTVITIES - Verifies activities within the Keyman app are not obstructed by system insets (camera notch, status bar, navigation bars)
  1. For the entire test, if a portion of the activity is covered by system insets (camera notch, status bar on top, navigation bar on bottom), fail the test.
  2. With the device in Portrait orientation, launch Keyman for Android and dismiss the Get Started menu
  3. Go through the various workflows/activities and verify none of the menus are covered by system insets:
    • longpress globe key for keyboard picker menu --> EuroLatin help --> Help link --> keyboard help scrollable and can "OK" at the bottom
    • Keyman menu --> Info --> Navigate through the in-app help content and verify version remains visible at the bottom
  4. Go through the various Keyman settings menus and verify none of the menus are covered by system insets:
    • Installed languages --> click through each menu
    • Install Keyboard or Dictionary -->
      • Install from keyman.com --> install keyboard and verify you can navigate through menus
      • Add languages to installed keyboard --> EuroLatin Keyboard --> add language(s) to install with EuroLatin and verify can "INSTALL"
    • Display language --> verify UI language can be changed
    • Adjust keyboard height --> verify keyboard height can be adjusted and reset
    • Adjust longpress delay --> verify longpress delay can be adjusted
  5. Return the Keyman app and rotate the device to landscape orientation (unlock orientation lock if needed)
  6. Repeat test steps in landscape orientation
  • TEST_SYSTEM_KEYBOARD - Verifies Keyman system keyboard is not obstructed by system insets (camera notch, status bar, navigation bars)
  1. With the device in portrait orientation, from Keyman for Android settings, set Keyman as the default system keyboard
  2. Launch Chrome and select a text area to type
  3. With Keyman as the system keyboard verify:
    • OSK and suggestions not covered by system insets
    • keys, longpress keys, and suggestions function
  4. Rotate the device to landscape orientation (unlock orientation lock if needed)
  5. Repeat test steps in landscape orientation

@keymanapp-test-bot
Copy link
Copy Markdown

keymanapp-test-bot bot commented Aug 25, 2025

@keymanapp-test-bot keymanapp-test-bot bot changed the title fix(android): Convert Keyman app layouts for edge to edge fix(android): Convert Keyman app layouts for edge to edge 🏠 Aug 25, 2025
@Nnyny Nnyny self-assigned this Aug 25, 2025
@Nnyny
Copy link
Copy Markdown
Contributor

Nnyny commented Aug 25, 2025

Test Results

Before testing:
- Install keyman-18.0.239.apk on API 34

  • TEST_KEYMAN_ACTVITIES (PASSED): notes
  1. Start Keyman and dismiss the 'Get Started'
  2. Longpress the globe, go to 'Help link' > scroll the welcome page > OK
  3. Verify no menus are covered by system insets
  4. Go to Keyman menu > 'Info' > scroll down
  5. Verify the version remain visible
  6. Successfully install Amharic keyboard and verify no menus are covered by system insets
  7. Successfully add a language to EuroLatin keyboard and verify no menus are covered by system insets
  8. Go to 'Display language' and successfully change the UI to another language
  9. Go to 'Adjust keyboard height' successfully change the keyboard height and set back to default
  10. Go to 'Adjust longpress delay' and successfully change the delay of longpress
  11. Turn the emulator to landscape
  12. Repeat the process and verify no menus are covered by system insets
  • TEST_SYSTEM_KEYBOARD (PASSED): notes
  1. Go to 'Get Started' and select 'Enable Keyman as system-wide keyboard' and 'Set Keyman as default keyboard'
  2. Go to Chrome and select the text area
  3. Verify the keyboards and dictionaries are working fine and nothing is cover by the system insets
  4. Rotate to landscape
  5. Start typing in the text area, using different keyboards and dictionaries
  6. Verify no area is cover by system insets

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label Aug 25, 2025
@darcywong00 darcywong00 marked this pull request as draft August 27, 2025 05:59
@darcywong00
Copy link
Copy Markdown
Contributor Author

Returning to draft to resolve #14579

@darcywong00
Copy link
Copy Markdown
Contributor Author

back to ready
#14642 addresses #14579 for stable-18.0

@darcywong00 darcywong00 marked this pull request as ready for review August 29, 2025 01:08
@darcywong00 darcywong00 modified the milestones: A19S10, A19S11 Aug 29, 2025
Base automatically changed from cherrypick/android/api-35 to stable-18.0 August 31, 2025 23:51
@darcywong00 darcywong00 merged commit 77af8cd into stable-18.0 Aug 31, 2025
6 checks passed
@darcywong00 darcywong00 deleted the cherrypick/android/edge-to-edge branch August 31, 2025 23:52
@github-project-automation github-project-automation bot moved this from Todo to Done in Keyman Aug 31, 2025
@keyman-server
Copy link
Copy Markdown
Collaborator

Changes in this pull request will be available for download in Keyman version 18.0.241

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