Skip to content

Conversation

@joshliebe
Copy link
Contributor

@joshliebe joshliebe commented Jan 15, 2026

Task/Issue URL: https://app.asana.com/1/137249556945/project/488551667048375/task/1212823503385852?focus=true

Description

  • Sets the initial input size for the Duck.ai tab to 2 lines
  • Sets the maximum input height to 5 lines
  • Removes the return action button and changes the keyboard action button to return for the Duck.ai tab
  • Logos are now anchored and no longer move/hide with input size changes
  • Transitions updated for favorites and autocomplete, they no longer slide horizontally and slide up/down + fade in/out depending on input size

Steps to test this PR

  • Go to Input Screen
  • Go to Duck.ai tab
  • Verify that the initial input size is 2 lines
  • Type something
  • Verify that the return action button has been removed
  • Verify that the keyboard action is return
  • Expand the Input Field
  • Verify that the max height is 5 lines
  • Switch to the Search tab
  • Verify that autocomplete is shown
  • Swipe to Duck.ai tab
  • Verify that it swipes correctly
  • Verify that it transitions correctly
  • Add favorite
  • Verify that favorites are swipeable and transition correctly
  • Apply the same steps with the bottom address bar enabled

UI changes

Duck.ai tab
combined

Duck.ai tab (Bottom address bar)
combined 1

Duck.ai tab (Input expanded)
combined 2

Duck.ai tab (Input expanded with bottom address bar)
combined 3


Note

Modernizes Input Screen interactions and layout.

  • Anchored logo + smarter transitions: Logo no longer shifts with input height; fades/animates based on mode and content. Logo progress updates now skip when favorites/autocomplete/content are present or during certain swipes.
  • Overlay-driven UI: Introduces autoCompleteOverlay and newTabContainerScrollView for autocomplete and favorites with fade/slide transitions, elevation, and root ChangeBounds transitions; disables ViewPager2 input while overlays are shown.
  • Improved swipe handling: Adds SwipeableRecyclerView and TouchThroughNestedScrollView to pass horizontal swipes to ViewPager2 while preserving vertical scroll/click, including synthetic DOWN dispatch.
  • Input behavior tweaks: Chat input min lines 2 (1 with bottom buttons), max lines 5; submit on hardware Enter; refined button visibility for top/bottom bar modes.
  • Fragment responsibilities: SearchTabFragment delegates UI containers to parent InputScreenFragment, applies blur on autocomplete, and uses SwipeableRecyclerView.
  • ViewModel updates: Visibility/command logic adjusted for logo progress, tab taps, and autocomplete/favorites presence; pixels unaffected functionally; tests updated accordingly.
  • Maestro tests: Replace tap on send with pressKey: Enter in flow.

Written by Cursor Bugbot for commit 516d897. This will update automatically on new commits. Configure here.

Copy link
Contributor Author

joshliebe commented Jan 15, 2026

This stack of pull requests is managed by Graphite. Learn more about stacking.

@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from 215ff2c to b552ec1 Compare January 15, 2026 15:37
@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from b552ec1 to 8ccbf46 Compare January 15, 2026 15:55
@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch 4 times, most recently from 46f6942 to e79da03 Compare January 15, 2026 17:07
@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from e79da03 to 94b1dde Compare January 15, 2026 17:31
@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from 94b1dde to 8db9698 Compare January 15, 2026 17:47
@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from 8db9698 to 95f38c1 Compare January 15, 2026 19:02
@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from 95f38c1 to 72d756a Compare January 16, 2026 09:23
cursor[bot]

This comment was marked as outdated.

@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch 3 times, most recently from 51371a9 to 3c05f30 Compare January 16, 2026 10:47
@malmstein malmstein self-assigned this Jan 19, 2026
Copy link
Contributor

@malmstein malmstein left a comment

Choose a reason for hiding this comment

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

Very nice work, works as expected!

Task/Issue URL:
https://app.asana.com/1/137249556945/project/1200204095367872/task/1212864806121264?focus=true

### Description

- Adds the return button back to Duck.ai tab and sets the keyboard
action to submit.

### Steps to test this PR

- [ ] Open in the Input Screen
- [ ] Go to Duck.ai tab and type something
- [ ] Verify that the return button works as expected
- [ ] Repeat above steps with bottom address bar enabled

### UI changes
| Top address bar  | Bottom address bar |
| ------ | ----- |
<img width="1280" height="2856" alt="Screenshot_20260120_130726"
src="https://github.com/user-attachments/assets/b3002224-05bf-4394-a956-edbcf5093988"
/>|<img width="1280" height="2856" alt="Screenshot_20260120_130700"
src="https://github.com/user-attachments/assets/de52bec1-c19d-4c13-afab-de0bef3429be"
/>



<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Introduces an explicit multiline entry control and ties it into
visibility/state and telemetry.
> 
> - Adds `actionNewLine` button to `view_input_screen_buttons.xml` and
`InputScreenButtons`, with floating styling, click handler, and
visibility control
> - Extends `InputScreenVisibilityState` with `newLineButtonVisible` and
includes it in `actionButtonsContainerVisible`; `InputScreenViewModel`
sets it (true in chat, based on text) and clears it in search
> - Wires `onNewLineClick` in `InputScreenFragment` to
`InputModeWidget.printNewLine()` and fires
`DUCK_CHAT_EXPERIMENTAL_OMNIBAR_FLOATING_RETURN_PRESSED`
> - Implements `printNewLine()` in `InputModeWidget` and changes chat
`imeOptions` to `IME_ACTION_GO`
> - Updates button container visibility logic to account for the new
button; minor visibility tweaks (e.g., send button default to `gone`)
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
d58c840. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from 55f3426 to be11ae3 Compare January 20, 2026 15:06
Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

@joshliebe joshliebe force-pushed the feature/josh/update-input-screen-ui branch from 0fecb50 to 516d897 Compare January 21, 2026 10:28
@joshliebe joshliebe merged commit 780ad09 into develop Jan 21, 2026
11 checks passed
@joshliebe joshliebe deleted the feature/josh/update-input-screen-ui branch January 21, 2026 11:06
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.

2 participants