Skip to content

[Story] Render poll start events in the timeline #1830

Closed
@Johennes

Description

@Johennes

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
  • 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

Figma designs

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

  1. 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

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions