element-hq / element-hq/element-meta
[Story] EX: Voice message autoplay
Nobody has claimed this yet.
- Dominant language
- No language data
- Stars
- 112
- Forks
- 26
- Avg merge
- 6h 6m
- Merged PRs (30d)
- 4
Description
Description
Context: Both EX Android (#6454) and EX iOS (#6089) have implemented autoplay of consecutive voice messages. This issue captures the agreed behavior as a source of truth for testing, since the two PRs were built independently with some diverging discussion.
Acceptance criteria
Core behavior
- When a voice message finishes playing, if the next chronological timeline item is also a voice message, it automatically starts playing.
- The chain continues until either a non-voice-message item is encountered, or the end of the timeline is reached.
- Non-message timeline items that don't represent real content (e.g. day separators, read markers) should be skipped when checking adjacency — they should not break the chain.
- Any other message type (text, image, etc.) between two voice messages does break the chain.
Resuming vs. replaying
- If the next voice message in the chain was previously paused partway through (e.g. left at 0:10 of 0:30), autoplay resumes from that position.
- If the next voice message had previously been played to completion (and is therefore reset to 0:00), autoplay starts it again from the beginning.
Interruptions
- Manually pausing the currently-playing voice message stops the autoplay chain.
- Going back to the room list stops the autoplay chain.
- Manually tapping a different voice message cancels the current chain and starts playing the tapped message instead (which can itself start a new chain).
- Scrolling a playing/autoplaying voice message off-screen does not interrupt playback.
Transition sound
- A short sound plays between two autoplayed voice messages, to signal to the user that a new message has started.
- iOS uses the system "Tink" sound.
- Android currently defaults to the system notification sound as a placeholder — needs a decision on what sound to actually ship, ideally consistent with iOS. Design/product input requested (referenced: @amshakal).
Background behavior
- Autoplay continues even if the app is backgrounded (matching Signal's behavior, not WhatsApp's, which stops in this case). This was discussed and confirmed as intentional, not a bug — see @mxandreas's comparison of WhatsApp vs Signal.
- Android does not currently have general background media playback support; this is being tracked separately in Add media player notification widget and allow background playback #6440.
No user setting (for now)
- There is deliberately no on/off toggle for this feature at launch, on either platform, matching WhatsApp/Signal (neither has one).
- Rationale (from @mxandreas): people who use voice messages generally also want autoplay; a setting can be added later if there's real user demand for disabling it.
Open questions
- What sound to use on Android between voice messages.
- Can Android do autoplay in the background or if not at once, will we accept this as a discrepancy.
Leads
- Tech: @bmarty @Velin92
- Design:
Time sheeting
?
Dependencies
- None
Out of scope
- Auto-scrolling to follow the currently playing message
Subtasks
Android
iOS
Rust
Other
Sign-offs
- Android
- iOS
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the linked Element X Android and iOS pull requests alongside the acceptance criteria, then check the corresponding platform repositories for the missing subtasks and sign-offs. Done means the agreed autoplay behavior is tested on both platforms, with decisions recorded for the Android transition sound and background behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, ios
- Domain
- mobile-dev
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100