Skip to content

fix(android): Update other activities for edge to edge 🪟#14463

Merged
darcywong00 merged 3 commits intomasterfrom
fix/android/edge-to-edge-activities
Aug 18, 2025
Merged

fix(android): Update other activities for edge to edge 🪟#14463
darcywong00 merged 3 commits intomasterfrom
fix/android/edge-to-edge-activities

Conversation

@darcywong00
Copy link
Contributor

Relates to #14248 and follows #14396

This updates the rest of the Keyman activities to handle the edge-to-edge behavior in Android API 35+.
Some activites converted from AppCompatActivity to BaseActivity.

As needed, the activities call BaseActivity:

  • setupEdgeToEdge()
  • setupStatusBarColors()

As noted in the previous PR #14396
the color changes in

BaseActivity.setupStatusBarColors() only works on Android API M (27) through Upsidedown Cake (34)

User Testing

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

  • TEST_KEYMAN_ACTVITIES - Verifies actvities 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

@github-project-automation github-project-automation bot moved this to Todo in Keyman Aug 6, 2025
@keymanapp-test-bot keymanapp-test-bot bot added has-user-test user-test-required User tests have not been completed labels Aug 6, 2025
@keymanapp-test-bot
Copy link

keymanapp-test-bot bot commented Aug 6, 2025

User Test Results

Test specification and instructions

@dinakaranr dinakaranr self-assigned this Aug 7, 2025
@dinakaranr
Copy link

Test Results

Prerequisite setup: Install the PR build of Keyman for Android on an Android emulator/device of Android API 34

I tested this PR in the "Keyman-19.0.89-alpha-test-14463" build on Android 14, Pixel 7a API_34(Emulator). Here I am sharing my observation.

  • TEST_KEYMAN_ACTVITIES (Passed):
  1. In Portrait orientation view:

  2. Launch Keyman for Android Pixel 7a API_34(Emulator)

  3. Dismiss the Get Started menu

  4. Go through the various workflows/activities and verify none of the menus are covered by system insets:

    • Longpress the globe key for keyboard picker menu --> EuroLatin help --> Help link --> keyboard help scroll able.
    • Verified that the "OK" button appeared at the bottom.
    • Keyman menu --> Info --> Navigate through the in-app help content
    • Verified that the version number remains visible at the bottom.(Navigation bar)
  5. Go through the various "Keyman settings" menus and verify none of the menus are covered by system insets:

    • Installed languages --> click through each menu(keyboard EuroLatin --> keyboard EuroLatin settings --> keyboard EuroLatin help)
    • Verified that the menu appears correctly.
    • Install Keyboard or Dictionary -->
      - Install from keyman.com --> install keyboard.
      - Verified that the navigation through menus while installing a keyboard.
      - Add languages to installed keyboard --> EuroLatin Keyboard --> add language(s) to install with EuroLatin
      - Verified that the keyboard is "INSTALLED"
  6. Display language --> verified that the UI language changed

  7. Adjust keyboard height --> verified that the keyboard height adjusted and reset

  8. Adjust longpress delay --> verified that the longpress delay adjusted

  9. Verified that there is no UI problem appears in the system insets. (It works well)
    For the Portrait view test, above keyman app's features are not obscured by system insets (camera notch, status bar on top, navigation bar on bottom), It works well.

  10. Return the Keyman app and rotate the device to "landscape orientation" (unlock orientation lock if needed)

  11. Repeat test steps in landscape orientation

  12. Verified that there is no UI problem appears in the system insets. (It works well)
    For the landscape view test, above keyman app's features are not obscured by system insets (camera notch, status bar on top, navigation bar on bottom), It works well.

@keymanapp-test-bot keymanapp-test-bot bot removed the user-test-required User tests have not been completed label Aug 7, 2025
@dinakaranr dinakaranr removed their assignment Aug 7, 2025
import com.keyman.engine.util.MapCompat;

public class KeymanSettingsInstallActivity extends AppCompatActivity {
public class KeymanSettingsInstallActivity extends BaseActivity {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you remove the old AppCompatActivity import?

@darcywong00 darcywong00 modified the milestones: A19S9, A19S10 Aug 16, 2025
Base automatically changed from fix/android/constraint-layout to master August 18, 2025 07:11
@darcywong00 darcywong00 merged commit 3f38f32 into master Aug 18, 2025
7 checks passed
@darcywong00 darcywong00 deleted the fix/android/edge-to-edge-activities branch August 18, 2025 07:30
@github-project-automation github-project-automation bot moved this from Todo to Done in Keyman Aug 18, 2025
@keyman-server
Copy link
Collaborator

Changes in this pull request will be available for download in Keyman version 19.0.101-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.

chore(android): Play Store requires targeting Android API 35 or higher

5 participants