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
edde746
cd9498abb8
refactor(player): centralize playback opening
...
close #1280
2026-06-10 02:26:26 +02:00
edde746
92063bd58f
fix(playback): skip redundant mark-watched
...
close #1287
2026-06-09 12:19:27 +02:00
edde746
bf7558f80d
fix(i18n): localize generic season names from server
...
close #1271
2026-06-07 21:46:24 +02:00
edde746
381e82d61a
fix(detail): highlight next unwatched ep when not in continue watching
...
close #1269
2026-06-07 18:42:41 +02:00
edde746
eef73e6447
fix: expand home hub previews
...
close #1268
2026-06-07 17:35:56 +02:00
edde746
e8df18e7b2
fix(jellyfin): order continue watching + up next by recency
2026-06-07 16:34:18 +02:00
edde746
4c4b18e2cd
fix(i18n): localize hardcoded UI strings
...
close #1257
2026-06-06 11:45:34 +02:00
edde746
0fd0506551
feat(media): lazily page detail episodes
...
close #1245
2026-06-05 19:26:02 +02:00
edde746
145881318e
fix: harden server-scoped state
2026-06-04 13:47:06 +02:00
edde746
0e7ff609b6
feat(media): show video and audio quality labels
...
close #1115
2026-06-04 08:20:12 +02:00
edde746
74b8dc4561
refactor: type server identifiers
2026-06-01 11:06:03 +02:00
edde746
09f5121732
feat(metadata): add Jellyfin edit support
2026-06-01 08:34:38 +02:00
edde746
8f9d20a2e4
feat(jellyfin): add extras support
2026-06-01 08:34:38 +02:00
edde746
9825ce3c7c
fix: select first playable Plex Part instead of always Part[0]
...
close #1201
2026-05-30 21:37:01 +02:00
edde746
d93ea9813f
fix(playback): harden offline source reporting
2026-05-29 19:55:01 +02:00
edde746
7501f461b9
fix(playback): sync downloaded watch progress
...
close #1171 , close #1183
2026-05-29 19:55:01 +02:00