edde746
60cc983471
feat(downloads): remove playlist sync downloads together
...
close #1656
2026-07-26 14:58:38 +02:00
edde746
71735354b9
fix(tvos): unify remote and text input ownership
2026-07-26 07:08:01 +02:00
edde746
fcaa81bf3c
fix(artwork): preserve clear-logo aspect ratios
2026-07-26 04:34:08 +02:00
edde746
ef183437d4
fix(jellyfin): keep login identity metadata valid
2026-07-26 04:24:56 +02:00
edde746
e251273322
feat(downloads): warn about Android background restrictions
2026-07-26 04:24:55 +02:00
edde746
54273ab09c
fix(downloads): recover from full storage
...
close #1655
2026-07-24 07:48:42 +02:00
ad7ef112fc
feat(i18n): add Hungarian and Traditional Chinese locales
...
Complete and revise every shipped locale against the current English source, preserve locale-specific plurals, and map script-specific Chinese locales through device, Intl, duration, and Plex boundaries.
Co-authored-by: emgeje <mgj@mgj.hu >
Co-authored-by: junyou1998 <junyou1998@gmail.com >
2026-07-24 07:30:43 +02:00
edde746
0c6dab01b3
build(deps): upgrade Flutter package dependencies
2026-07-24 03:56:40 +02:00
edde746
fb45ff44f3
fix(android): persist startup and runtime exit diagnostics
2026-07-24 03:56:40 +02:00
edde746
9f2e050797
fix(native): bound cross-platform lifecycle ownership
2026-07-24 03:56:40 +02:00
edde746
b41fb4fe75
fix(ui): harden settings focus and semantics
2026-07-24 03:46:50 +02:00
edde746
f8bfecf57d
fix(media): serialize browsing and metadata mutations
2026-07-24 03:46:50 +02:00
edde746
e0bf66eea8
fix(runtime): harden application service boundaries
2026-07-24 03:46:46 +02:00
edde746
46dfc7f992
feat(detail): show episode file sizes
2026-07-18 13:32:40 +02:00
edde746
70cd7e8c67
fix(music): keep now playing state current
...
close #1600
2026-07-17 16:30:10 +02:00
edde746
5b90c4bca0
fix(images): decode cast cards at the square grid-cell budget
...
close #1591
2026-07-17 09:04:01 +02:00
edde746
74cae73844
fix(ci): restore Dart formatting gate
2026-07-15 08:25:42 +02:00
edde746
ddb7520ce8
fix(jellyfin): promote redirected server URLs
2026-07-14 23:05:57 +02:00
edde746
abf1027b77
feat(plex): migrate video transcoding to HLS
2026-07-14 18:11:04 +02:00
edde746
9d812fa3cc
fix(plex): match legacy agent GUIDs
...
closing #1566
2026-07-14 18:11:04 +02:00
edde746
d5f3e581df
fix: eliminate cross-app consistency drift
2026-07-13 23:13:53 +02:00
edde746
e4db04fa62
fix: align UI focus and sheet behavior
2026-07-13 11:28:32 +02:00
edde746
e03edad824
fix: prevent async state and platform regressions
2026-07-13 00:03:52 +02:00
edde746
917f6a2839
fix: guard lifecycle-bound state updates
2026-07-12 19:00:28 +02:00
edde746
2101f1d7f0
perf: isolate focus and media rebuilds
2026-07-12 19:00:11 +02:00
edde746
a561777456
perf: reduce state notification fan-out
2026-07-12 18:59:58 +02:00
edde746
d1c4ae83eb
fix(review): resolve post-consolidation regressions
2026-07-12 17:31:16 +02:00
edde746
fe8d405a56
fix(i18n): enforce complete localized coverage
2026-07-12 17:31:14 +02:00
edde746
7ecadffdb1
refactor(features): consolidate shared feature primitives
2026-07-12 17:31:13 +02:00
edde746
a481fc1000
refactor(dialogs): unify text input contract
2026-07-12 08:42:26 +02:00
edde746
ceae98b75f
refactor(paging): share continuation loading
2026-07-12 08:42:25 +02:00
edde746
5328865639
refactor(input): share gamepad key simulation
2026-07-12 08:42:24 +02:00
edde746
baf3c41a44
refactor(providers): share coalesced load scheduling
2026-07-12 08:42:24 +02:00
edde746
c84b8b4792
refactor(downloads): unify deletion and scoped cache handling
2026-07-12 08:42:23 +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
a809cbbcef
fix(plex): surface server failures
2026-07-12 08:42:18 +02:00
edde746
e07172ade4
fix(tvos): enable native EAC3 JOC playback
2026-07-11 12:59:57 +02:00
edde746
04daf89a20
feat(explore): Explore tab with catalog detail, search, and Seerr requests
2026-07-10 07:10:15 +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
5867809560
fix: resolve Jellyfin, logout, playback, and Android regressions
2026-07-09 17:14:45 +02:00
edde746
db18ee4b34
feat(music): android background playback via media_controls foreground service
...
Bumps os_media_controls to 4f4b28f3: MediaStyle foreground service with
a JUnit-tested promote/demote/stop policy, artwork URL download (also
fixes video lock-screen art), and task-removal teardown that can't leak
orphan notifications. The music service opts into background mode per
session and requests POST_NOTIFICATIONS before first playback.
2026-07-05 21:52:58 +02:00
edde746
764345f021
feat(music): audio downloads and music home rows
...
Album/artist downloads expand to tracks with pinned parent metadata,
aggregate progress, container deletes with reference-counted album
covers, and a Music tab on the downloads screen with fully offline
album playback. Home rows include music libraries (fixes plex hub
items being filtered to video types) and audio playlists join
download/sync rules.
2026-07-05 21:51:37 +02:00
edde746
7d6a747aa7
feat(music): now-playing, mini-player, queue and lyrics UI
...
Persistent mini-player over the profile navigator (route-aware
suppression, bottom-bar inset), slide-up now-playing screen with
mobile/desktop/TV layouts (blurred-art background, pause shape morphs,
dpad seek chain), queue sheet with reorder/remove/jump, synced lyrics
view, TV rail now-playing item, sleep timer, and audio playlist
playback. Adds download affordances on music surfaces.
2026-07-05 21:50:11 +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
c87a9060f9
chore: tidy formatting and local ignores
2026-07-05 14:32:21 +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
f97ab03111
fix(images): bound artwork decodes on both axes and never fetch unsized originals
...
The decode clamp was height-only, so ultra-wide originals could decode
far past the display budget, and two small-slot fallbacks skipped
server-side resizing entirely — handing multi-megapixel originals to
the decoder behind tiny slots. The TV spotlight background's offline
branch had no decode bound at all. All artwork now flows through a
shared both-axes bound (ResizeImagePolicy.fit: aspect-preserving,
scale-down only), and the reduced tier gets matching thumb/poster
decode caps.
Ref #1349
2026-07-05 09:10:20 +02:00
edde746
c4184c6148
fix(ci): restore sanity checks
2026-07-05 08:34:55 +02:00