Migrates 13 additional user-facing English literals found across 7 files
in a follow-up audit. Adds 13 new keys (EN + FR) and replaces the inline
literals with `getString(...)` / `runBlocking { getString(...) }`
depending on context.
- RuntimeFormat: episode / runtime hours+minutes template (`%dh %dm`,
`%dh`, `%dm` → resource-backed; FR uses `%d h %d min`).
- SearchRepository: `require {}` empty-result message now hits
`search_error_no_results_for_catalog` instead of the inline literal.
- PluginRepository: `already installed`, install-failed, refresh-failed
fallback messages.
- PluginManifestParser: three `require {}` validation messages (name,
version, providers).
- AddonManifestParser: `Manifest missing "<name>"` exception now uses
`addons_manifest_missing_field`.
- PlayerEngine.ios: `MPV not available — Please rebuild the app` →
`player_error_mpv_unavailable`.
- YoutubeChunkedDataSourceFactory: the developer-facing `No DataSpec`
exception is replaced by a user-friendly `Unable to play this stream.`
message that's safe to render through `onPlayerError.localizedMessage`.
FR translations follow existing conventions (tutoiement, curly apostrophes,
NBSP inside `« »`, internal branch names kept out of user-facing copy).
Port of NuvioMedia/NuvioTV#1704.
Adds a Sort Order setting to the Continue Watching section with two modes:
- Default: sort all items by most recently watched
- Streaming Style: released/in-progress items first (by recency), unaired
next-up items pushed to the end sorted by ascending air date
changed localization for "settings_playback_minutes_value", "settings_playback_threshold_percentage_value", and "settings_playback_timeout_seconds" to handle new rules better
Adds the coil-svg KMP module dependency and registers SvgDecoder.Factory()
on the singleton ImageLoader in App.kt. coil-svg was never declared in
libs.versions.toml, so SVG payloads silently fell through Coil's decoder
chain and ended up as empty ImageDecoderException swallowed by AsyncImage.
Coil 3.x's coil-svg is a Kotlin Multiplatform module, so registering the
factory in commonMain covers Android and iOS in one place.
Affects:
- TMDB network/channel logos (TMDB serves a mix of PNG and SVG)
- Stremio addon manifests with an SVG `logo` field
- Custom artwork URLs in the collection editor that happen to be SVG
Mirrors the equivalent fix in NuvioTV (PR #1772).