Keep Android new task composer above keyboard#4388
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
ApprovabilityVerdict: Approved Straightforward Android UI bug fix that replaces one keyboard-handling component with another from the same library to keep the composer above the keyboard. Limited scope, clear intent, no broader runtime implications. You can customize Macroscope's approvability policy. Learn more. |
2df4224 to
82eee6c
Compare
82eee6c to
4e3aa7b
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 4e3aa7b. Configure here.
| ) : null} | ||
| </View> | ||
| </KeyboardAvoidingView> | ||
| </KeyboardStickyView> |
There was a problem hiding this comment.
Composer can cover Android header
Medium Severity
KeyboardStickyView is absolutely positioned in the same root as AndroidScreenHeader, so a tall focused composer (attachments plus max-height editor) can draw over the header and back control when space above the IME is tight. The prior KeyboardAvoidingView stayed in normal layout below the header, and ThreadRouteScreen / terminal keep sticky chrome inside a flex-1 region under the header for the same reason.
Additional Locations (1)
Reviewed by Cursor Bugbot for commit 4e3aa7b. Configure here.


What Changed
KeyboardStickyView.Why
The Android new-task composer changes height as focus expands the collapsed prompt pill into a multiline editor with toolbar controls. The padding-based keyboard relayout could race that height change, leaving part of the editor and toolbar underneath Gboard.
Anchoring the Android composer directly to the keyboard makes the expansion grow upward and keeps the complete composer accessible while typing.
UI Changes
Before: With Gboard open and a multiline prompt, the lower portion of the composer can remain hidden behind the keyboard.
After: The expanded editor and its model/configuration/action row remain fully above Gboard, including at the editor’s maximum height.
Verified on a physical Pixel 9 Pro XL through wireless debugging, plus an Android 35 emulator. On the phone, the toolbar bottom moved from
1628(inside Gboard) to1363(fully above Gboard’s1399top edge).Physical-device evidence
Watch the wireless-debugging interaction recording
Validation
vp checkvp run typecheckvp run lint:mobilevp run --filter @t3tools/mobile test— 92 files, 538 tests passedChecklist
Note
Low Risk
Android-only UI/layout change in one screen; iOS path unchanged and the pattern matches other mobile composers.
Overview
On Android, the new-task draft screen no longer uses
KeyboardAvoidingViewwith padding and a flex spacer above the composer. The draft composer is wrapped in a bottom-anchoredKeyboardStickyView(absolute positioning, zero keyboard offset) so it tracks the IME while the prompt expands on focus.That avoids a race where padding-based avoidance could leave the multiline editor and toolbar under Gboard when height changes. iOS still uses the existing
KeyboardAvoidingViewlayout.Reviewed by Cursor Bugbot for commit 4e3aa7b. Bugbot is set up for automated code reviews on this repo. Configure here.
Note
Fix Android new task composer to stay above the keyboard
Replaces
KeyboardAvoidingViewwithKeyboardStickyViewin the Android render path of NewTaskDraftScreen.tsx. The composer is now absolutely positioned at the bottom and sticks above the IME as it opens, removing the previous padding-based relayout approach and the flex spacer view above the composer.Macroscope summarized 4e3aa7b.