Skip to content

Allow voters to add poll comments in UI Components#6444

Open
gpunto wants to merge 1 commit into
v6from
v6-xml-poll-add-comment
Open

Allow voters to add poll comments in UI Components#6444
gpunto wants to merge 1 commit into
v6from
v6-xml-poll-add-comment

Conversation

@gpunto
Copy link
Copy Markdown
Contributor

@gpunto gpunto commented May 19, 2026

Goal

Bring the "voters can add comments" poll feature to the XML UI Components, matching what's already available in the Compose UI.

Implementation

  • PollView renders two new entries: "Add a comment" when poll.allowAnswers is true, the poll is open, and the user hasn't commented yet; and "View N comments" once any answer exists.
  • AddPollCommentDialogFragment collects the comment text and returns it via the fragment-result API; MessageListViewModel.bindView listens for the result and emits Event.PollAnswerCast(messageId, pollId, answer), which the view model forwards to MessageListController.castAnswer.
  • PollCommentsDialogFragment lists comments and shows an "Add a comment" / "Update comment" CTA depending on whether the current user has already answered.
  • PollViewStyle gains pollAddCommentTextStyle and pollViewCommentsTextStyle with matching streamUiPollAddComment* and streamUiPollViewComments* attributes for customization.

UI Changes

Poll with comment button Add comment dialog Comments list
Screenshot_20260519_122847 Screenshot_20260519_122851 Screenshot_20260519_122903

Testing

  • Open a channel with a poll that has allowAnswers = true: an "Add a comment" entry shows up until the current user posts an answer; afterwards a "View N comments" entry replaces it.
  • Tapping "Add a comment" opens the dialog; the Confirm button stays disabled until non-blank text is entered; confirming casts the answer, dismissing does not.
  • Tapping "View N comments" opens the bottom-sheet listing all answers; the CTA reads "Add a comment" for users without an answer and "Update comment" for users with one (pre-filling the existing text); closed polls hide the CTA.

Summary by CodeRabbit

  • New Features

    • Poll comments: Users can now add comments to polls and view existing comments from other participants.
    • Customizable poll comment styling through theme attributes for text appearance and color.
  • Tests

    • Added test coverage for poll comment functionality and poll data fixture helpers.

Review Change Stack

@gpunto gpunto added the pr:new-feature New feature label May 19, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 19, 2026

PR checklist ✅

All required conditions are satisfied:

  • Title length is OK (or ignored by label).
  • At least one pr: label exists.
  • Sections ### Goal, ### Implementation, and ### Testing are filled (or ignored for dependabot PRs).

🎉 Great job! This PR is ready for review.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 19, 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.49 MB 5.49 MB 0.00 MB 🟢
stream-chat-android-ui-components 10.64 MB 10.68 MB 0.04 MB 🟢
stream-chat-android-compose 12.87 MB 12.87 MB 0.00 MB 🟢

@gpunto
Copy link
Copy Markdown
Contributor Author

gpunto commented May 19, 2026

@coderabbitai review

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 19, 2026

✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 19, 2026

Walkthrough

This PR adds poll comment functionality to the Stream Chat Android message list UI. It introduces new listener interfaces and public setter methods on MessageListView, extends PollViewStyle with comment-related text styling, adds two dialog fragments for adding and viewing poll comments, updates the internal poll view adapter to render comment interaction items, integrates with the message list view model via a new PollAnswerCast event, and supplies the necessary XML layouts, style attributes, and strings alongside comprehensive test coverage.

Changes

Poll Comment Feature

Layer / File(s) Summary
Public listener API contracts
stream-chat-android-ui-components/api/stream-chat-android-ui-components.api, stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/MessageListView.kt, stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenerContainer.kt
New public interfaces OnAddPollCommentClickListener and OnViewPollCommentsClickListener with onAddPollCommentClick and onViewPollCommentsClick callback signatures receiving Message and Poll. MessageListView exposes public setters for these listeners. MessageListListeners interface updated with listener properties.
Listener container wiring
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenerContainerImpl.kt
MessageListListenerContainerImpl constructor and properties extended to accept poll comment listeners and delegate callbacks using ListenerDelegate pattern.
MessageListView default listeners
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/MessageListView.kt
Default poll comment listeners imported and wired that open AddPollCommentDialogFragment and PollCommentsDialogFragment via the view's FragmentManager.
Poll view styling
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/PollViewStyle.kt
PollViewStyle data class extended with pollAddCommentTextStyle and pollViewCommentsTextStyle TextStyle properties. Factory invoke method reads new R.styleable attributes and constructs TextStyle instances.
Poll view adapter and items
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/internal/PollView.kt
PollView adds onAddCommentClick and onViewCommentsClick callback properties. PollAdapter extended with new view types and PollItem.AddComment/ViewComments variants. onCreateViewHolder and getItemViewType updated to handle new items. View holders created with bindings and styling applied via extension functions.
PollViewHolder callbacks
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/viewholder/impl/PollViewHolder.kt
PollViewHolder.bindData wires pollView callbacks to messageListListeners, forwarding (message, poll) arguments for comment interactions.
Dialog fragments
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/poll/AddPollCommentDialogFragment.kt, stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/poll/PollCommentsDialogFragment.kt
AddPollCommentDialogFragment shows AlertDialog for adding/editing poll comments with optional pre-fill, publishes results via fragment-result API. PollCommentsDialogFragment displays RecyclerView of poll answers, dynamically shows CTA for adding/updating comments, and launches AddPollCommentDialogFragment.
Poll comments view model
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/viewmodel/messages/PollCommentsViewModel.kt
PollCommentsViewModel observes channel state, maps messages to extract poll for a specific message ID, filters nulls, deduplicates, and exposes as LiveData. Includes ViewModelProvider.Factory for instantiation.
MessageListViewModel integration
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/viewmodel/messages/MessageListViewModel.kt, stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/viewmodel/messages/MessageListViewModelBinding.kt
MessageListViewModel.Event sealed class gains PollAnswerCast subtype with messageId, pollId, answer fields. onEvent handler forwards to messageListController.castAnswer. MessageListViewModelBinding registers FragmentResultListener for AddPollCommentDialogFragment to emit PollAnswerCast events.
UI resources
stream-chat-android-ui-components/src/main/res/layout/stream_ui_dialog_add_poll_comment.xml, stream-chat-android-ui-components/src/main/res/layout/stream_ui_fragment_poll_comments.xml, stream-chat-android-ui-components/src/main/res/layout/stream_ui_item_poll_add_comment.xml, stream-chat-android-ui-components/src/main/res/layout/stream_ui_item_poll_comment.xml, stream-chat-android-ui-components/src/main/res/layout/stream_ui_item_poll_view_comments.xml, stream-chat-android-ui-components/src/main/res/values/attrs_poll_view.xml, stream-chat-android-ui-components/src/main/res/values/strings.xml
New layout XMLs for comment dialog input, poll comments fragment container, add comment item, poll comment items with user/timestamp, and view comments item. Style attributes added for add-comment and view-comments text styling (size, color, font, style). String resources added for dialog buttons and UI labels.
Tests
stream-chat-android-core/src/testFixtures/kotlin/io/getstream/chat/android/Mother.kt, stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/viewmodels/messages/MessageListViewModelTest.kt, stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/viewmodels/messages/PollCommentsViewModelTest.kt
Test fixture adds randomVote helper for Vote instance generation. MessageListViewModelTest adds castPollAnswer test and fixture stub for chatClient.castPollAnswer. New PollCommentsViewModelTest file covers poll emission when message present/absent and emission of distinct polls.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • GetStream/stream-chat-android#6439: Extends poll UI with suggested options feature, shares overlapping changes to PollViewStyle constructor/API and MessageListView listener plumbing.

Suggested reviewers

  • andremion

Poem

🐰 Hop! Skip! Jump!
With polls now speaking loud,
Comments bloom and flutter forth,
A feature-complete crowd! 🌻
Let voters share their thoughts,
Where poll dreams live and grow. 🥕

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 7.84% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main feature: enabling voters to add poll comments in the XML UI Components library.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description check ✅ Passed The PR description includes all required sections: Goal, Implementation, UI Changes with screenshots, Testing procedures, and Contributor/Reviewer Checklists.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch v6-xml-poll-add-comment

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 4

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (3)
stream-chat-android-ui-components/api/stream-chat-android-ui-components.api (1)

3254-3279: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

PollViewStyle now has a breaking constructor/copy signature change.

This widens the public data-class-style surface without preserving the old constructor/copy shape. Any consumer instantiating or copying PollViewStyle directly will need source changes after upgrading.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@stream-chat-android-ui-components/api/stream-chat-android-ui-components.api`
around lines 3254 - 3279, The PollViewStyle data-class API changed its public
constructor/copy signature (seen in PollViewStyle.<init>, copy and copy$default)
which breaks callers relying on the previous parameter order/shape; restore
binary compatibility by reintroducing the old constructor and copy overload(s)
delegating to the new implementation (add a deprecated constructor and a
synthetic copy overload with the previous parameter list that forwards to the
new copy), or provide `@JvmOverloads/explicit` overloads on PollViewStyle to
preserve the original parameter permutations so existing consumers (calling
componentX(), copy(...), or using the constructor) continue to work.
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenerContainerImpl.kt (1)

41-66: ⚠️ Potential issue | 🟠 Major | 🏗️ Heavy lift

Constructor now trips Detekt LongParameterList and blocks CI.

This constructor expansion is the direct cause of the current CI failure (:stream-chat-android-ui-components:detekt). Please reduce top-level constructor args by grouping related poll listeners into a single parameter object.

Suggested refactor sketch
 internal class MessageListListenerContainerImpl(
@@
-    onPollOptionClickListener: OnPollOptionClickListener,
-    onShowAllPollOptionClickListener: OnShowAllPollOptionClickListener,
-    onPollCloseClickListener: OnPollCloseClickListener,
-    onViewPollResultClickListener: OnViewPollResultClickListener,
-    onSuggestPollOptionClickListener: OnSuggestPollOptionClickListener,
-    onAddPollCommentClickListener: OnAddPollCommentClickListener,
-    onViewPollCommentsClickListener: OnViewPollCommentsClickListener,
+    pollListeners: PollListeners,
 ) : MessageListListeners {
+
+    internal data class PollListeners(
+        val onPollOptionClickListener: OnPollOptionClickListener,
+        val onShowAllPollOptionClickListener: OnShowAllPollOptionClickListener,
+        val onPollCloseClickListener: OnPollCloseClickListener,
+        val onViewPollResultClickListener: OnViewPollResultClickListener,
+        val onSuggestPollOptionClickListener: OnSuggestPollOptionClickListener,
+        val onAddPollCommentClickListener: OnAddPollCommentClickListener,
+        val onViewPollCommentsClickListener: OnViewPollCommentsClickListener,
+    )
@@
     override var onPollOptionClickListener: OnPollOptionClickListener by ListenerDelegate(
-        onPollOptionClickListener,
+        pollListeners.onPollOptionClickListener,
@@
     override var onShowAllPollOptionClickListener: OnShowAllPollOptionClickListener by ListenerDelegate(
-        onShowAllPollOptionClickListener,
+        pollListeners.onShowAllPollOptionClickListener,
@@
     override var onPollCloseClickListener: OnPollCloseClickListener by ListenerDelegate(
-        onPollCloseClickListener,
+        pollListeners.onPollCloseClickListener,
@@
     override var onViewPollResultClickListener: OnViewPollResultClickListener by ListenerDelegate(
-        onViewPollResultClickListener,
+        pollListeners.onViewPollResultClickListener,
@@
     override var onSuggestPollOptionClickListener: OnSuggestPollOptionClickListener by ListenerDelegate(
-        onSuggestPollOptionClickListener,
+        pollListeners.onSuggestPollOptionClickListener,
@@
     override var onAddPollCommentClickListener: OnAddPollCommentClickListener by ListenerDelegate(
-        onAddPollCommentClickListener,
+        pollListeners.onAddPollCommentClickListener,
@@
     override var onViewPollCommentsClickListener: OnViewPollCommentsClickListener by ListenerDelegate(
-        onViewPollCommentsClickListener,
+        pollListeners.onViewPollCommentsClickListener,
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenerContainerImpl.kt`
around lines 41 - 66, The MessageListListenerContainerImpl constructor has too
many top-level parameters (causing Detekt LongParameterList); create a single
data class (e.g., PollListeners or PollListenerConfig) that groups all
poll-related listeners (onPollOptionClickListener,
onShowAllPollOptionClickListener, onPollCloseClickListener,
onViewPollResultClickListener, onSuggestPollOptionClickListener,
onAddPollCommentClickListener, onViewPollCommentsClickListener) and replace
those individual parameters in MessageListListenerContainerImpl's constructor
with one parameter of that new type, update usages and assignments inside the
class to access the grouped listeners via the new property, and ensure default
values or helper constructors are provided to keep existing call sites working.
stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/internal/PollView.kt (1)

90-99: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Detekt LongParameterList is a merge blocker here.

The constructor now has 8 parameters (Line 152+), and CI already fails on this exact rule. Group callbacks into a single holder object (or equivalent) to get back under the threshold.

♻️ Suggested refactor sketch
+private data class PollAdapterCallbacks(
+    val onOptionClick: (Option) -> Unit,
+    val onClosePollClick: () -> Unit,
+    val onViewPollResultsClick: () -> Unit,
+    val onShowAllOptionsClick: () -> Unit,
+    val onSuggestOptionClick: () -> Unit,
+    val onAddCommentClick: () -> Unit,
+    val onViewCommentsClick: () -> Unit,
+)
+
 private class PollAdapter(
     private val pollViewStyle: PollViewStyle,
-    private val onOptionClick: (Option) -> Unit,
-    private val onClosePollClick: () -> Unit,
-    private val onViewPollResultsClick: () -> Unit,
-    private val onShowAllOptionsClick: () -> Unit,
-    private val onSuggestOptionClick: () -> Unit,
-    private val onAddCommentClick: () -> Unit,
-    private val onViewCommentsClick: () -> Unit,
+    private val callbacks: PollAdapterCallbacks,
 ) : ListAdapter<PollItem, PollItemViewHolder<out PollItem>>(PollItemDiffCallback)

Also applies to: 152-161

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In
`@stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/internal/PollView.kt`
around lines 90 - 99, The PollAdapter constructor call in PollView currently
passes eight separate callback parameters (onOptionClick, onClosePollClick,
onViewPollResultsClick, onShowAllOptionsClick, onSuggestOptionClick,
onAddCommentClick, onViewCommentsClick) causing a Detekt LongParameterList
violation; fix it by introducing a single callback holder data class (e.g.,
PollAdapter.Callbacks or PollCallbacks) that aggregates these lambdas, update
PollAdapter's constructor and usages to accept that single holder, and change
the PollView instantiation to pass one callbacks object (populate with the
existing lambdas like { option -> onOptionClick(option) } and {
onClosePollClick(poll) } etc.); ensure you update any other call sites
(mentioned also around lines 152-161) to use the new holder type and keep the
existing lambda behaviors intact.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@stream-chat-android-ui-components/api/stream-chat-android-ui-components.api`:
- Around line 5009-5022: The new public event type
MessageListViewModel.Event.PollAnswerCast should not be added to the public
Event hierarchy; change its visibility and placement so it is internal to the
module and not part of the public sealed interface used by callers.
Specifically, remove or revert the public nested class PollAnswerCast from
MessageListViewModel.Event and instead implement the wiring as an
internal/top-level internal class or a private nested type (e.g., internal class
PollAnswerCast or private object used by the fragment-result handler) so
downstream when-expressions are unaffected; ensure references to
MessageListViewModel.Event.PollAnswerCast in the fragment-result code are
updated to the new internal symbol and that no public API surface exposes this
type.
- Around line 3168-3173: The new abstract getters added to MessageListListeners
(getOnAddPollCommentClickListener, getOnPollCloseClickListener,
getOnPollOptionClickListener, getOnShowAllPollOptionClickListener,
getOnSuggestPollOptionClickListener, getOnViewPollCommentsClickListener) are a
binary/source breaking change for external implementers; change them to
non-abstract defaulted accessors (provide default implementations that return
null or a no-op listener) or remove them from the public interface and expose
them via an internal/optional extension so existing implementers continue to
compile—locate the MessageListListeners interface and replace each abstract
getter with a default method implementation returning a safe default.

In
`@stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/internal/PollView.kt`:
- Around line 136-141: The "Add a comment" gating currently uses
poll.answers.isEmpty(), which blocks users who haven't answered from adding a
comment after someone else has; change the condition to check whether the
current user has already answered instead. In PollView.kt, compute a
userHasAnswered boolean from poll.answers (e.g., poll.answers.any { it.userId ==
currentUserId } or equivalent) and replace the poll.answers.isEmpty() check in
the PollItem.AddComment branch with !userHasAnswered while keeping
poll.allowAnswers and !poll.closed; keep PollItem.ViewComments logic as-is.

In
`@stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/viewmodels/messages/MessageListViewModelTest.kt`:
- Around line 208-212: The invocation of
MessageListViewModel.Event.PollAnswerCast (with messageId = message1.id, pollId
= pollId, answer = answer) violates Spotless formatting because it is missing
the required trailing comma; update the call site for PollAnswerCast to include
a trailing comma after the final argument so ktlint/Spotless pass (run ./gradlew
spotlessApply to auto-fix and ./gradlew spotlessCheck to verify).

---

Outside diff comments:
In `@stream-chat-android-ui-components/api/stream-chat-android-ui-components.api`:
- Around line 3254-3279: The PollViewStyle data-class API changed its public
constructor/copy signature (seen in PollViewStyle.<init>, copy and copy$default)
which breaks callers relying on the previous parameter order/shape; restore
binary compatibility by reintroducing the old constructor and copy overload(s)
delegating to the new implementation (add a deprecated constructor and a
synthetic copy overload with the previous parameter list that forwards to the
new copy), or provide `@JvmOverloads/explicit` overloads on PollViewStyle to
preserve the original parameter permutations so existing consumers (calling
componentX(), copy(...), or using the constructor) continue to work.

In
`@stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenerContainerImpl.kt`:
- Around line 41-66: The MessageListListenerContainerImpl constructor has too
many top-level parameters (causing Detekt LongParameterList); create a single
data class (e.g., PollListeners or PollListenerConfig) that groups all
poll-related listeners (onPollOptionClickListener,
onShowAllPollOptionClickListener, onPollCloseClickListener,
onViewPollResultClickListener, onSuggestPollOptionClickListener,
onAddPollCommentClickListener, onViewPollCommentsClickListener) and replace
those individual parameters in MessageListListenerContainerImpl's constructor
with one parameter of that new type, update usages and assignments inside the
class to access the grouped listeners via the new property, and ensure default
values or helper constructors are provided to keep existing call sites working.

In
`@stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/internal/PollView.kt`:
- Around line 90-99: The PollAdapter constructor call in PollView currently
passes eight separate callback parameters (onOptionClick, onClosePollClick,
onViewPollResultsClick, onShowAllOptionsClick, onSuggestOptionClick,
onAddCommentClick, onViewCommentsClick) causing a Detekt LongParameterList
violation; fix it by introducing a single callback holder data class (e.g.,
PollAdapter.Callbacks or PollCallbacks) that aggregates these lambdas, update
PollAdapter's constructor and usages to accept that single holder, and change
the PollView instantiation to pass one callbacks object (populate with the
existing lambdas like { option -> onOptionClick(option) } and {
onClosePollClick(poll) } etc.); ensure you update any other call sites
(mentioned also around lines 152-161) to use the new holder type and keep the
existing lambda behaviors intact.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 602a4ba6-e38f-4c38-b934-b516f3a75d53

📥 Commits

Reviewing files that changed from the base of the PR and between d404872 and 92cd74e.

📒 Files selected for processing (22)
  • stream-chat-android-core/src/testFixtures/kotlin/io/getstream/chat/android/Mother.kt
  • stream-chat-android-ui-components/api/stream-chat-android-ui-components.api
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/MessageListView.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenerContainer.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/MessageListListenerContainerImpl.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/PollViewStyle.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/view/internal/PollView.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/adapter/viewholder/impl/PollViewHolder.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/poll/AddPollCommentDialogFragment.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/feature/messages/list/internal/poll/PollCommentsDialogFragment.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/viewmodel/messages/MessageListViewModel.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/viewmodel/messages/MessageListViewModelBinding.kt
  • stream-chat-android-ui-components/src/main/kotlin/io/getstream/chat/android/ui/viewmodel/messages/PollCommentsViewModel.kt
  • stream-chat-android-ui-components/src/main/res/layout/stream_ui_dialog_add_poll_comment.xml
  • stream-chat-android-ui-components/src/main/res/layout/stream_ui_fragment_poll_comments.xml
  • stream-chat-android-ui-components/src/main/res/layout/stream_ui_item_poll_add_comment.xml
  • stream-chat-android-ui-components/src/main/res/layout/stream_ui_item_poll_comment.xml
  • stream-chat-android-ui-components/src/main/res/layout/stream_ui_item_poll_view_comments.xml
  • stream-chat-android-ui-components/src/main/res/values/attrs_poll_view.xml
  • stream-chat-android-ui-components/src/main/res/values/strings.xml
  • stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/viewmodels/messages/MessageListViewModelTest.kt
  • stream-chat-android-ui-components/src/test/kotlin/io/getstream/chat/android/ui/viewmodels/messages/PollCommentsViewModelTest.kt

@gpunto gpunto force-pushed the v6-xml-poll-add-comment branch from 92cd74e to f86ec7c Compare May 19, 2026 10:40
@gpunto gpunto marked this pull request as ready for review May 19, 2026 12:23
@gpunto gpunto requested a review from a team as a code owner May 19, 2026 12:23
@gpunto gpunto force-pushed the v6-xml-poll-add-comment branch 2 times, most recently from 3bcd819 to 9c84142 Compare May 19, 2026 12:30
@gpunto gpunto force-pushed the v6-xml-poll-add-comment branch from 9c84142 to e167412 Compare May 19, 2026 12:33
@sonarqubecloud
Copy link
Copy Markdown

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

Labels

pr:new-feature New feature

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant