Add KDoc to the single-interface library and service API modules

Cover the last remaining interfaces across libraries/audio, libraries/cachestore,
libraries/indicator, libraries/slashcommands, libraries/voiceplayer and
services/apperror, with their members and parameters.

This completes the effort: all 222 in-scope interfaces and their 820 members in
the 60 api modules that hold any now carry documentation.

Notable points: CacheStore applies no expiry of its own and only records when each
entry was written, leaving staleness to the caller; SlashCommandService.parse
never throws, returning NotACommand for ordinary text and an error case for a
malformed command.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
Benoit Marty
2026-08-14 12:04:40 +02:00
parent 9822b3d4f7
commit b74b146917
6 changed files with 78 additions and 1 deletions
@@ -13,7 +13,17 @@ import io.element.android.libraries.matrix.api.core.EventId
import io.element.android.libraries.matrix.api.media.MediaSource
import kotlin.time.Duration
/**
* Creates the presenter of a single voice message player, one per voice message shown in a timeline.
*/
interface VoiceMessagePresenterFactory {
/**
* @param eventId the event carrying the voice message, or `null` while it is still a local echo.
* @param mediaSource where the audio is fetched from.
* @param mimeType the MIME type of the audio, or `null` when the event did not state it.
* @param filename the file name to display, or `null` when the event did not state it.
* @param duration the length of the recording, used to render the waveform before the audio is downloaded.
*/
fun createVoiceMessagePresenter(
eventId: EventId?,
mediaSource: MediaSource,