element-hq / element-hq/element-meta

[Story] EX: Voice message autoplay

Open
#3,308 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

App: ElementX Android App: ElementX iOS T-Epic T-User Story Team: Element X Platform
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
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

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.