Skip to content

Conversation

@andremion
Copy link
Contributor

@andremion andremion commented Jan 28, 2026

🎯 Goal

Initial redesign of the attachment picker, which includes showing it below the message composer (not as a bottom sheet anymore) and displaying the command picker.

🛠 Implementation details

Describe the implementation

🎨 UI Changes

Add relevant screenshots

Before After
img img

Add relevant videos

Before After

🧪 Testing

Explain how this change can be tested (or why it can't be tested)

Provide a patch below if it is necessary for testing

Provide the patch summary here
Provide the patch code here

🎉 GIF

Please provide a suitable gif that describes your work on this pull request

@andremion andremion changed the base branch from develop to v7 January 28, 2026 17:26
@github-actions
Copy link
Contributor

github-actions bot commented Jan 28, 2026

SDK Size Comparison 📏

SDK Before After Difference Status
stream-chat-android-client 5.26 MB 5.26 MB 0.00 MB 🟢
stream-chat-android-offline 5.48 MB 5.48 MB 0.00 MB 🟢
stream-chat-android-ui-components 10.63 MB 10.62 MB -0.01 MB 🚀
stream-chat-android-compose 12.84 MB 11.66 MB -1.18 MB 🚀

- Remove the overlay and dialog-like behavior from the `AttachmentsPicker` composable, making it a regular surface.
- Update `AttachmentsPicker` to use `FilledIconToggleButton` for tab selection.
- Set the `containerColor` on the `MessagesScreen` Scaffold to use the theme's app background.
This commit introduces a new `AttachmentTypePicker` composable. This new component acts as a tab selector for different attachment types like media, files, camera, and polls.

Specific changes include:
*   Introducing the `AttachmentTypePicker` composable.
*   Adding new icons for each attachment type (media, files, camera, polls).
*   Adding new string resources for the attachment type labels.
*   Introducing a new `backgroundCoreSelected` color to `StreamColors` for the selected tab state.
*   Replacing `AttachmentPickerOptions` with the new `AttachmentTypePicker`.
*   Updating tests to cover the new `AttachmentTypePicker`.
…tsPickerMode is now passed from the view model
… internal state is now handled within the AttachmentsPickerViewModel when the picker is hidden, removing the need for an explicit `dismissAttachments()` call at the UI layer.
This change refactors the "Create Poll" functionality to be presented within a full-screen dialog instead of navigating to a separate screen.

Key changes:
- Introduced a new `FullscreenDialog` composable.
- The `AttachmentPollPicker` now triggers this dialog to show the `CreatePollScreen`.
- Added a new `AttachmentPickerCreatePoll` action to handle opening the dialog.
- Updated theme tokens and typography with a new `bodyDefault` style.
Introduces a new "Commands" option in the attachment picker menu. This allows users to select and trigger slash commands directly from the attachment UI.

Key changes:
- Added a `Commands` mode to `AttachmentsPickerMode`.
- Created `AttachmentCommandPicker.kt` to display the list of available commands.
- Integrated the command picker into `AttachmentPickerContent` and `AttachmentsPickerMenu`.
- Handled command selection logic to trigger the command via the `composerViewModel`.
…attachment list is synchronized immediately.
The attachment type picker now expands to fill the maximum available width.
…attachment list is synchronized immediately.
Introduces a `removeSelectedAttachment` function to the `AttachmentsPickerViewModel` to synchronize its state when an attachment is removed from the composer.

This new function is called from `MessagesScreen` to ensure the selection state and order within the attachment picker are correctly updated.
@andremion andremion force-pushed the redesign/AND-1030-message-composer-actions-menu-redesign branch from bd448de to 1f15095 Compare January 30, 2026 10:33
@sonarqubecloud
Copy link

Quality Gate Failed Quality Gate failed

Failed conditions
60.0% Coverage on New Code (required ≥ 80%)

See analysis details on SonarQube Cloud

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