edde746
bc4b4955da
feat: auto-remove watched downloads, server watched threshold
...
close #856
2026-04-13 22:46:49 +02:00
edde746
f47bcb69fd
feat: auto-hide performance overlay with controls
...
close #834
2026-04-10 01:30:26 +02:00
edde746
d0934295b0
feat: download all playlist items
...
close #241
2026-04-08 12:37:03 +02:00
edde746
15b22f75a8
refactor: replace dio with package:http
2026-04-08 00:43:08 +02:00
edde746
8e7431e7e5
feat: download options picker for series/seasons
2026-04-07 22:59:35 +02:00
edde746
c9db6e528e
feat: more consistent poster sizing
...
close #798
2026-04-03 17:04:20 +02:00
edde746
1a96d2b418
feat: download version picker with smart series matching
...
close #767
2026-03-31 04:46:09 +02:00
edde746
d3602201c6
refactor: remove dead code
2026-03-27 17:39:43 +01:00
edde746
23906dd65d
refactor: remove dead code from provider files
2026-03-15 22:55:18 +01:00
edde746
59b3e6ce81
fix: eliminate duplicate API requests on startup
...
- Skip redundant notifyListeners in HiddenLibrariesProvider init when
set is empty (empty→empty is a no-op for consumers)
- Track last-seen hidden keys in DiscoverScreen to avoid reloading
content when the listener fires without an actual change
- Track previous online server set in MultiServerProvider; only re-check
DVR availability when a new server comes online
- Remove dead content-loading pipeline from libraries_screen (sorts,
pagination, filters, items) that was never rendered
- Move /media/providers fetch into PlexClient.create() init, replacing
lazy EPG cache and providing libraries including shared items
2026-03-15 18:23:32 +01:00
edde746
5f18efcfb3
feat: live TV channel favorites
...
close #663
2026-03-15 07:44:44 +01:00
edde746
4f736c555b
fix: make PlexMetadata type/key/title nullable for folder items
...
Plex API returns Directory entries without type field, causing
TypeError crash in fromJson. Made fields nullable and migrated
callers to use mediaType enum and displayTitle getter instead
of raw string access.
2026-03-14 05:40:14 +01:00
edde746
a17458ff9b
fix: handle DBusServiceUnknownException on Linux without NetworkManager
2026-03-12 02:24:00 +01:00
edde746
666b59c293
refactor(native-player): share player helpers
2026-03-11 01:30:11 +01:00
edde746
73fe9e054f
fix: guard unsafe .first/.last calls to prevent StateError
2026-03-10 03:50:12 +01:00
edde746
c9a1bc97c4
fix: remove dead state paths and restore track hotkeys
2026-03-06 11:50:45 +01:00
edde746
db57fa73ce
feat: add option to hide bottom navigation bar labels
2026-03-05 15:05:48 +01:00
edde746
3a76754af9
feat: custom GLSL shader import
...
close #624
2026-03-04 08:47:40 +01:00
edde746
cd2ab9d9cd
refactor: deduplicate shared patterns, replace hardcoded colors
2026-03-03 22:43:00 +01:00
edde746
174c78bf67
fix: handle connectivity_plus PlatformException on Windows
2026-03-03 20:13:17 +01:00
edde746
c6ace690cb
refactor: clean up download code duplication
2026-03-03 16:31:02 +01:00
edde746
5f1c51ff6c
fix: skip specials in playback order
...
close #601
2026-03-02 07:32:20 +01:00
edde746
732c09eec1
fix: cancel status stream subscription on dispose
...
Closes #571
2026-02-27 09:11:16 +01:00
edde746
4588457319
refactor: consolidate files
2026-02-26 13:41:51 +01:00
edde746
8eda892b68
feat: themed splash screen with status messages
2026-02-26 11:55:45 +01:00
edde746
414e5804eb
feat: add hide spoilers setting for unwatched episodes
2026-02-26 11:55:45 +01:00
edde746
5740d93a35
fix: download from homepage failing
2026-02-26 03:41:27 +01:00
edde746
659b59d450
fix: remove companion remote connection history
2026-02-26 01:08:46 +01:00
edde746
383351d769
fix: detect invalid tokens and prevent startup hangs
...
close #553
2026-02-25 23:59:19 +01:00
edde746
9528b8f61a
feat: multi-IP QR code for companion remote
2026-02-24 02:31:24 +01:00
edde746
e23f472d78
refactor: centralize globalKey construction via buildGlobalKey()
2026-02-23 17:53:20 +01:00
edde746
4095cc27e1
perf: reduce redundant metadata API requests
2026-02-23 11:43:42 +01:00
edde746
edbe2a06be
refactor: deduplicate sheet, key handler, and service patterns
2026-02-23 10:25:57 +01:00
edde746
0159c18497
feat: discontinuous buffer ranges on timeline
2026-02-21 04:50:10 +01:00
edde746
d307f8c99d
fix: prompt PIN for current profile on app open
...
close #485
2026-02-20 22:28:11 +01:00
edde746
7d29d7ba45
chore: format
2026-02-15 23:13:33 +01:00
edde746
292c4b5d82
fix: reduce main-thread DB I/O blocking in downloads
2026-02-15 17:55:02 +01:00
edde746
04438c8e45
refactor: code quality & format
2026-02-15 04:07:09 +01:00
edde746
403b1f6776
feat: live tv
2026-02-11 16:27:49 +01:00
edde746
d1af24e0a7
feat: player-aware companion remote with syncState, track cycling
2026-02-10 12:32:00 +01:00
edde746
5c3fbfdff8
fix: remote dialog issues and optimize command protocol
2026-02-10 09:17:55 +01:00
edde746
660267b504
fix: companion remote discovery leak, reconnect, and auth hardening
...
- Dispose old discovery service before creating new one in loadRecentSessions()
- Host waits for client reconnect instead of calling joinSession
- Clear stale error messages on successful reconnect
- Rate limit auth attempts (5 tries, 30s lockout)
- Use Random.secure() for peer ID
- Extract shared ACK helper methods
2026-02-10 09:02:22 +01:00
Matt Vogel
e30c0b4370
Migrate companion remote to WebSocket
2026-02-09 18:45:10 -05:00
Matt Vogel
199d634cb2
Migrate companion remote models to @JsonSerializable
2026-02-09 14:26:51 -05:00
Matt Vogel
372767b142
Add Companion Remote for mobile-to-desktop control
2026-02-09 14:19:54 -05:00
edde746
839c274e0d
fix: resume interrupted downloads after force-kill
2026-02-09 09:04:44 +01:00
edde746
a004f7e398
fix: enforce profile picker on first login
...
close #302
2026-02-06 12:51:42 +01:00
edde746
a7ac681fdc
refactor: extract shared mixins and helpers
2026-02-04 11:11:01 +01:00
Micah Morrison
dcd97dda30
Add option to show/hide unwatched counts
2026-02-02 20:07:06 -05:00
edde746
77eef1ada7
feat: built-in shaders
...
close #341
2026-01-29 07:22:21 +01:00