Closed
Description
Description
- As a user
- I want to see when polls are started in the timeline
- so that I can follow (and later vote on) them
- There will be no limit to the length of a poll option, we won't truncate the text on screen. We'll simply show all the text we have.
Size estimate
M
Dependencies
Acceptance criteria
- Poll start events are rendered in the timeline (when poll is created from another session/app)
- If user has voted on the poll from another platform, they can see their own votes
- If a user changes their vote on another platform, the vote updates on EX in real time
- If the "show votes" switch is enabled, the results can be seen before and after voting (and when poll closes)
- If the "show votes" switch is disabled, the results cannot be seen before or after voting as long as the poll is open (can be seen once poll closes)
- Poll end events are not rendered in the timeline1
- Poll votes are not rendered in the timeline
- When the poll has ended, the start event is updated to show closed state (radio buttons are no longer visible and total is shown in all cases, user's own vote is highlighted in green/bold)
- Poll in timeline is accessible to native OS screen readers
- TBD: define how the poll should be announced (ideally we want question and vote options to be read, and for user to be able to vote) see comment at: [Story] Render poll start events in the timeline #1830 (comment)
- Poll matches designs for dark and light themes - dark theme designs are not provided, use compound
Testing:
Mix of unit testing and manual testing in Kiwi
Out of scope
- Creating a poll from EX
- Editing a poll
- Voting on a poll
- Vote withdrawal
Sign-off
Android
- Design sign-off on completion
- QA sign-off on completion
- Product sign-off on completion
iOS
- Design sign-off on completion
- QA sign-off on completion
- Product sign-off on completion
Subtasks
External Dependencies
Open Questions
What to do when there are UTDs in any of the events needed for aggregation? Should we still show partial (i.e. incorrect) results or should we not show any result? Should we also surface a human readable UTD warning?
### Android
- [ ] https://github.com/vector-im/element-x-android/pull/1031
- [ ] https://github.com/vector-im/element-x-android/pull/1113
- [ ] https://github.com/vector-im/element-x-android/pull/1280
- [ ] https://github.com/vector-im/element-x-android/pull/1295
- [ ] https://github.com/vector-im/element-x-android/pull/1345
### iOS
- [ ] https://github.com/vector-im/element-x-ios/pull/1399
- [ ] https://github.com/vector-im/element-x-ios/pull/1474
### Other
Footnotes
-
This matches other platforms and helps mitigate the impact of not using the relations API within the timeline to get accurate poll results in the initial version ↩