Skip to content

feat: Add floating keyboard functionality to Scribe-Android (#261)#621

Open
prince-0408 wants to merge 4 commits into
scribe-org:mainfrom
prince-0408:feature/floating-keyboard-261
Open

feat: Add floating keyboard functionality to Scribe-Android (#261)#621
prince-0408 wants to merge 4 commits into
scribe-org:mainfrom
prince-0408:feature/floating-keyboard-261

Conversation

@prince-0408

Copy link
Copy Markdown
Contributor

Description

This pull request implements and refines the floating keyboard functionality for Scribe-Android. It introduces a movable, resizable, and floating keyboard layout, and resolves various styling issues across both light and dark modes.

Adding this feature solves a major point of confusion during onboarding/development where developers couldn't locate the keyboard in emulators that default to a floating state. It also greatly improves the keyboard experience in full-screen games, split-screen multitasking, and landscape layouts on tablet/phone screens.

Closes #261

Changes Made

  • Floating Keyboard Layout & Controls:
    • Integrated floating_drag_bar with visibility state tied to the floating preference.
    • Implemented real-time dragging via a customized floating_drag_handle pill.
    • Added support for scaling/resizing the keyboard dynamically using custom touch listeners on 4 corner handles (resize_handle_top_left/right and resize_handle_bottom_left/right).
  • Drag Handle Aesthetics:
    • Resized the bottom drag handle to a thicker (5dp) and wider (64dp canvas) rounded capsule.
    • Set a larger layout height (32dp) to comfortably display the updated handle.
  • Corner Resize Handles Visibility:
    • Defined a neutral, high-contrast resource resize_handle_color for both modes (#FF555555 solid medium-dark grey in light mode, and #FFB0B0B0 solid medium-light grey in dark mode).
    • This ensures they are clearly visible over light, dark, and blue backgrounds (such as the tutorial pages).
  • Docked Mode Background Leak Fix:
    • Configured keyboard_card to dynamically update its background color based on the current theme (dark_keyboard_bg_color or light_keyboard_bg_color) instead of using a static light grey.
    • This fixes the background color leak gap at the bottom of the docked keyboard.

Screenshots

SS3 SS2 SS1

@github-actions

Copy link
Copy Markdown

Thank you for the pull request! 💙🩵

The Scribe-Android team will do our best to address your contribution as soon as we can. The following are some important points:

  • Those interested in developing their skills and expanding their role in the community should read the mentorship and growth section of the contribution guide
  • If you're not already a member of our public Matrix community, please consider joining!
    • We'd suggest that you use the Element client as well as Element X for a mobile app
    • Join the General and Android rooms once you're in
  • Also consider attending our bi-weekly Saturday developer syncs!
    • Details are shared in the General room on Matrix each Wednesday before the sync
    • It would be great to meet you 😊

Note

Scribe uses Conventional Comments in reviews to make sure that communication is as clear as possible.

@github-actions

Copy link
Copy Markdown

Maintainer Checklist

The following is a checklist for maintainers to make sure this process goes as well as possible. Feel free to address the points below yourself in further commits if you realize that actions are needed :)

  • Tests for changes have been written and the unit test, linting and formatting workflows within the PR checks do not indicate new errors in the files changed

    • Tests may need to be reran as they're at times not deterministic
  • The CHANGELOG has been updated with a description of the changes for the upcoming release and the corresponding issue (if necessary)

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add floating keyboard functionality to Scribe-Android

1 participant