edde746
4af77f4696
fix(app): restore playback and state lifecycle contracts
2026-07-25 16:16:04 +02:00
edde746
0959cd3040
fix(libraries): exclude episodes from mixed roots
...
close #1675
2026-07-25 09:13:00 +02:00
edde746
269bb7a322
fix(playback): recover episode navigation without Plex queues
2026-07-24 08:08:10 +02:00
edde746
e0bf66eea8
fix(runtime): harden application service boundaries
2026-07-24 03:46:46 +02:00
edde746
0707d4d9b1
fix(live-tv): stabilize HLS playback
2026-07-18 20:04:09 +02:00
edde746
70cd7e8c67
fix(music): keep now playing state current
...
close #1600
2026-07-17 16:30:10 +02:00
edde746
d253450e9d
fix(plex): show all artist releases
...
close #1577
2026-07-15 08:49:06 +02:00
edde746
9d812fa3cc
fix(plex): match legacy agent GUIDs
...
closing #1566
2026-07-14 18:11:04 +02:00
edde746
8c88385977
feat(jellyfin): cycle media backdrops
...
close #1568
2026-07-14 07:24:11 +02:00
edde746
d5f3e581df
fix: eliminate cross-app consistency drift
2026-07-13 23:13:53 +02:00
edde746
ec249d2ed4
fix(jellyfin): repair music library browsing
...
Fixes #1557
2026-07-13 22:58:12 +02:00
edde746
d1c4ae83eb
fix(review): resolve post-consolidation regressions
2026-07-12 17:31:16 +02:00
edde746
7ecadffdb1
refactor(features): consolidate shared feature primitives
2026-07-12 17:31:13 +02:00
edde746
97f7508067
refactor(core): consolidate shared app foundations
2026-07-12 17:31:12 +02:00
edde746
359a6bf02a
refactor(live-tv): split optional DVR support
2026-07-12 08:42:25 +02:00
edde746
34be331024
refactor(media): centralize HDR classification
2026-07-12 08:42:25 +02:00
edde746
777780926c
refactor(paging): share unknown-total sentinel
2026-07-12 08:42:21 +02:00
edde746
f08fceaee0
refactor(json): share scalar adapters
2026-07-12 08:42:21 +02:00
edde746
8a8b4f3a61
refactor: remove unused convenience APIs
2026-07-12 08:42:20 +02:00
edde746
cdec9d1514
refactor(player): centralize chapter traversal
2026-07-12 08:42:20 +02:00
edde746
9da047de70
refactor(cache): centralize non-fatal writes
2026-07-12 08:42:20 +02:00
edde746
967c25b11d
refactor(player): share queue item labels
2026-07-12 08:42:20 +02:00
edde746
dca51a752a
refactor(downloads): centralize metadata merging
2026-07-12 08:42:19 +02:00
edde746
2679745941
fix: stop Jellyfin live TV sessions
...
close #1533
2026-07-11 22:00:05 +02:00
edde746
dcdbbc8483
feat(explore): match catalog items to library content via reverse external-id lookup
2026-07-10 07:07:07 +02:00
edde746
4e6ea5b4c5
feat(trakt): catalog API and shared catalog core (watchlist, discover, recommendations)
2026-07-10 07:06:21 +02:00
edde746
5867809560
fix: resolve Jellyfin, logout, playback, and Android regressions
2026-07-09 17:14:45 +02:00
edde746
4a3295b7fd
fix(player): handle Plex multi-episode files in up-next and watch state
...
close #1500
2026-07-06 18:39:45 +02:00
edde746
05a631415e
feat(music): music browsing UI — square cards, library groupings, artist/album screens
...
Un-gates music libraries; adds CardShape.square plumbing (circular
artists), artists/albums/tracks browse groupings with per-grouping
sorts, audio playlists tab, artist + album detail screens with dpad
track rows, music context-menu actions, and a stub MusicPlaybackService
seam for the upcoming engine.
2026-07-05 17:20:28 +02:00
edde746
fff559da06
feat(music): add music data layer for plex and jellyfin
...
Backend-neutral fetchArtistAlbums/fetchAlbumTracks/fetchInstantMix/
fetchLyrics, lyrics model + LRC parser, audio quality presets, music
transcode (plex /music universal, jellyfin audio PlaybackInfo profile),
station/InstantMix radio, music search, playlist type derivation, and
audio download resolution.
2026-07-05 15:55:52 +02:00
edde746
ee3c75ba9e
fix(playback): remember last played media version for continue watching
...
close #1492
2026-07-05 14:29:57 +02:00
edde746
7632d4bea7
feat(jellyfin): favorites library filter + heart favorite in the rate sheet
...
close #1485
2026-07-04 18:33:58 +02:00
edde746
f04691d321
feat: add "Include Specials" toggle to the show download dialog
...
The aired-order rework can sweep correctly-placed Specials into "download
next N"; this toggle lets users opt out. Shown only for whole shows
(reusing FocusableSwitchListTile via an optional toggle on the shared
option-picker dialog), remembered across opens via a BoolPref
(default on = unchanged behavior). Filters Specials at the single
collect choke point (_collectPlayable), with a guard so explicitly
downloading the Specials season still queues its episodes.
2026-06-25 23:41:31 +02:00
edde746
dbe804f8db
fix: order episodes by air date for offline, Jellyfin, and downloads
...
Extends the Plex play-queue fix (#1416 ) to the shared episode comparator
so Specials interleave by air date everywhere, not just Plex streaming:
offline next/prev, the Jellyfin online queue, offline OnDeck, and the
download/sync "next N" selection. Undated episodes fall back to
Specials-last, preserving the #1414 "never front-load the Specials
folder" guarantee. Jellyfin queue now requests PremiereDate.
2026-06-25 23:05:16 +02:00
edde746
b0b14bcd18
fix: hide episode spoilers until marked watched
...
close #1397
2026-06-25 11:13:57 +02:00
edde746
791433bceb
fix: download and queue episodes in watch order, Specials last
...
close #1414
2026-06-25 10:47:13 +02:00
edde746
01a5d11ef5
fix(jellyfin): use season episode endpoint
2026-06-14 18:34:12 +02:00
edde746
849e62df7e
fix(jellyfin): honor continue watching action
...
close #1334
2026-06-14 07:25:40 +02:00
edde746
804261605b
docs(player): note live session and progress tracker client pinning
2026-06-12 17:12:25 +02:00
edde746
acfb79c857
refactor(livetv): tune protocol methods go private behind the session
2026-06-12 16:18:09 +02:00
edde746
dcfe0f8308
refactor(player): live playback drives LiveTvPlaybackSession
2026-06-12 16:15:20 +02:00
edde746
23a423fe85
refactor(livetv): playback session lifecycle behind LiveTvSupport
2026-06-12 16:06:12 +02:00
edde746
e28e2b9371
refactor(media): folder browsing via MediaServerClient interface
2026-06-12 14:33:38 +02:00
edde746
c2fe142293
refactor(watch): WatchActions owns mark-watched orchestration and events
2026-06-12 14:09:21 +02:00
edde746
959e6e9398
refactor(watch): single watched-progress predicate
2026-06-12 13:49:46 +02:00
edde746
cceba28d0a
fix(i18n): request localized Plex labels
...
close #1311
2026-06-12 07:59:35 +02:00
edde746
ad3cc6b986
feat(player): language-first audio & subtitle track labels
...
close #1307
2026-06-12 04:16:39 +02:00
edde746
d816d82a38
fix(folders): row context menus, dpad left to sidebar, faster Jellyfin listings
2026-06-12 02:00:42 +02:00
edde746
3221a0cb1a
feat: add continue watching details navigation
...
close #1295
2026-06-10 12:50:32 +02:00
edde746
516925cf50
refactor(watch): promote overlay to hierarchy-aware WatchStateStore
...
Resolution now considers parentChain ancestors (newest event wins) and
watched patches set container leaf counts, so container marks reach
descendant cards and vice versa.
2026-06-10 05:18:02 +02:00