Fredrik Burmester
2166bb3867
feat(sync): auto-refresh on Jellyfin LibraryChanged events
...
Handle the server's LibraryChanged WebSocket message to invalidate
library-dependent React Query caches when items are added/updated/
removed, so newly added episodes/movies appear without a manual
refresh. Debounced to coalesce a scan's burst of events.
Add useRefreshLibraryOnFocus as a fallback that re-checks on screen
focus (throttled, online-only, skips first focus), wired into home
(mobile + TV) and the library pages.
2026-05-30 13:05:43 +02:00
Fredrik Burmester
f9b71ef648
style(login): center server-connect layout and adjust logo position
2026-05-30 12:25:34 +02:00
Fredrik Burmester
d11fb3d0c0
fix(dropdown): use nested Menu submenus for grouped options on iOS
...
Render titled option groups as nested Menu submenus instead of flat
Pickers, and convert the Discover filters from ContextMenu to Menu.
Keeps single-tap-to-open behavior (ContextMenu requires a long press
and reads as a context menu) while giving the nicer nested grouping.
2026-05-30 12:24:39 +02:00
Fredrik Burmester
dd3ca37108
refactor(settings): convert login-tv card to ListGroup/ListItem
2026-05-30 12:00:45 +02:00
Fredrik Burmester
b588195456
fix(search): correct Library/Discover tab layout for @expo/ui SDK 55
...
Native Button no longer renders RN <Text> children in SDK 55; use the
label prop. Wrap both buttons in a single Host + HStack with a trailing
Spacer so they sit flush-left with no centering inset.
2026-05-30 11:56:49 +02:00
Fredrik Burmester
fe4d90df26
fix(dropdown): make all stacked dropdowns visible in download sheet
...
@expo/ui's <Host> (SDK 55) fills its parent and reports its own size via
setStyleSize, so it can't size to content. With the Host's flex:1 height
depending on a zero-size wrapper, a circular dependency collapsed every
selector nested more than one level deep — only the first (Quality) stayed
visible in the download sheet.
Pin the wrapper View to the measured trigger size and let the Host fill it
via absoluteFill, breaking the cycle so Video/Audio/Subtitle render too.
2026-05-30 11:50:03 +02:00
Fredrik Burmester
a190122eea
Merge branch 'develop' into feat/tv-interface
...
# Conflicts:
# .gitignore
# app/(auth)/(tabs)/(home)/_layout.tsx
# components/PlatformDropdown.tsx
# components/search/DiscoverFilters.tsx
# components/video-player/controls/BottomControls.tsx
# components/video-player/controls/TrickplayBubble.tsx
# modules/mpv-player/ios/MPVLayerRenderer.swift
2026-05-30 11:08:22 +02:00
Fredrik Burmester
0bf8fac079
chore: update pr template
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone - Unsigned) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (Unsigned) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🌐 Translation Sync / sync-translations (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
2026-05-30 10:41:24 +02:00
Fredrik Burmester
37b51abd34
chore: deps
2026-05-30 10:41:10 +02:00
Fredrik Burmester
6fe464088b
fix(mpv): prevent UI freeze on player exit by tearing down mpv off main thread
...
mpv_terminate_destroy() blocks until mpv's threads (including the
vo_avfoundation output thread) are joined, and that teardown needs the
main run loop to complete. Calling it via queue.sync from MpvPlayerView
deinit (main thread) deadlocked/froze the UI on playback exit.
Remove the wakeup callback synchronously while self is still alive, then
run mpv_terminate_destroy on the serial queue via async so deinit returns
immediately and the main thread is never blocked. Also release the PiP
timebase/controller in deinit.
2026-05-30 10:40:10 +02:00
Fredrik Burmester
769c7a2432
fix: restore nested dropdown sections for expo 55 on iOS using nested ContextMenus
2026-05-30 10:13:40 +02:00
Fredrik Burmester
62c86533b1
fix(settings): preserve app defaults for unlocked plugin values
2026-05-30 10:03:56 +02:00
Fredrik Burmester
4fc78f006d
fix: use correct back button
2026-05-30 10:03:56 +02:00
Fredrik Burmester
ab0957044f
fix: use correct back button
2026-05-30 10:03:56 +02:00
Fredrik Burmester
407ef3f51e
chore: add skills to gitignore
2026-05-30 10:03:55 +02:00
Fredrik Burmester
0e531da2e0
fix(watchlists): invalidate watchlists list query on add/remove
2026-05-30 10:03:55 +02:00
Lance Chant
1cabbf087e
fix: player getting stuck on timer and exit
...
Fixed a race condition where the upnext countdown started and a user
cancelled/stop the current playback that they would exit the player but
the timer would still be running and then start playing the next episode
and you wouldn't be able to press back or exit out of it
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-30 10:03:19 +02:00
Gauvain
0f86c776ba
feat(player): add chapter markers and chapter list ( #1586 )
...
Co-authored-by: retardgerman <78982850+retardgerman@users.noreply.github.com >
2026-05-30 09:22:23 +02:00
lostb1t
07b79de203
fix: Do not cache background request for mediasources ( #1602 )
2026-05-30 09:11:59 +02:00
Gauvain
4cc11403f8
chore(deps): bump Renovate-proven JS dependencies (minors + i18n) ( #1599 )
2026-05-29 08:36:07 +02:00
Gauvain
0ba3f44615
chore: upgrade Biome to 2.4.16, clean up lint, and fix TV password modal ( #1598 )
2026-05-29 08:32:21 +02:00
Fredrik Burmester
afe9d33ee4
fix(topshelf): use .tvtopshelf bundle id and app group
...
The original com.fredrikburmester.streamyfin.TopShelf bundle id and
group.com.fredrikburmester.streamyfin app group were reserved by Apple
(previously created and deleted), so they could not be re-registered.
Switch the extension bundle id and shared app group to .tvtopshelf.
2026-05-28 22:03:09 +02:00
Gauvain
5db4a79e8a
ci: enable unsigned tvOS build (signed stays gated on EAS tvOS credentials)
2026-05-28 20:46:21 +02:00
Lance Chant
c12f252079
fix: sorted app languages
...
Sorting the app languages by alphabetical order
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-28 15:15:13 +02:00
Fredrik Burmester
70a0033094
chore: version
2026-05-28 11:41:51 +02:00
Fredrik Burmester
3379cedc01
fix(mpv-player): split combined delegate method back into separate HDR detection and audio output selection callbacks
2026-05-28 11:26:48 +02:00
Fredrik Burmester
63adb98540
fix(mpv-player): add missing closing brace to configureAudioSession
2026-05-28 11:22:51 +02:00
Lance Chant
4f721c3ab6
Merge remote-tracking branch 'origin/develop' into feat/tv-interface
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-28 09:05:20 +02:00
renovate[bot]
cf91c4c682
chore(deps): Update dependency @react-native-community/netinfo to v12 ( #1457 )
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone - Unsigned) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (Unsigned) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
2026-05-27 22:44:18 +02:00
lance chant
eb02ac253a
chore: expo 55 upgrade ( #1594 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
Co-authored-by: Fredrik Burmester <fredrik.burmester@gmail.com >
2026-05-27 21:38:08 +02:00
renovate[bot]
1545790528
chore(deps): Lock file maintenance ( #1595 )
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone - Unsigned) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (Unsigned) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
2026-05-27 15:38:42 +02:00
Fredrik Burmester
82eaf62354
feat(tv): fix home page loading skeletons and initialize auth/network status synchronously
2026-05-27 10:40:48 +02:00
Fredrik Burmester
05d9b8f32c
style(tv): align TVSeriesSeasonCard title font size and weight on details page
2026-05-27 09:59:31 +02:00
Fredrik Burmester
df16ea9de9
style(tv): align actor name weight and role size/weight in TVActorCard
2026-05-27 09:57:12 +02:00
Fredrik Burmester
2486b2c069
style(tv): fix horizontal alignment of TVCastSection in item details page
2026-05-27 09:53:56 +02:00
Fredrik Burmester
4a4d6948cf
style(tv): align actor card font sizes and horizontal padding on details page
2026-05-27 09:52:20 +02:00
Fredrik Burmester
e10255c328
fix(tv): fix horizontal padding of TVEpisodeList on item details page
2026-05-27 09:51:17 +02:00
Fredrik Burmester
08fc02a6b1
style(tv): adjust poster scale multipliers for Small and Default to align poster-to-text ratio
2026-05-27 09:46:29 +02:00
Fredrik Burmester
bba396c08c
style(tv): half the top padding increase to scaleSize(145)
2026-05-27 09:45:04 +02:00
Fredrik Burmester
3316508217
style(tv): increase tvosTopPadding to 180 to offset larger posters pushing text up
2026-05-27 09:44:48 +02:00
Fredrik Burmester
5fd136ef0b
style(tv): increase base poster sizes to 300, 470, and 440
2026-05-27 09:44:24 +02:00
Fredrik Burmester
2c8160188f
style(tv): increase base poster sizes to 270, 430, and 400
2026-05-27 09:44:03 +02:00
Fredrik Burmester
d56d202bfc
fix(tvos): increase hero carousel top padding to clear menu bar
2026-05-27 09:42:13 +02:00
Lance Chant
f1c2b9de53
fix: possible fix for edge of episode issue
...
possible fix(untested) to fix an issue when exiting as next episode
countdown is active
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-27 07:32:48 +02:00
renovate[bot]
11ec778bd8
chore(deps): Update github/codeql-action action to v4.36.0 ( #1593 )
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Has been cancelled
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build iOS IPA (Phone - Unsigned) (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (push) Has been cancelled
🏗️ Build Apps / 🍎 Build tvOS IPA (Unsigned) (push) Has been cancelled
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Has been cancelled
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Has been cancelled
2026-05-26 15:23:11 +02:00
Lance Chant
796e12b4ac
Chore: fix the storage reading and search colour
...
Fixed the storage calc to be GB instead of GIB so changed to 1000
instead of 1024
Changed some of the search colours
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-26 14:24:37 +02:00
renovate[bot]
0c6ef5cbda
chore(deps): Update maxim-lobanov/setup-xcode digest to ed7a3b1 ( #1581 )
2026-05-26 13:34:48 +02:00
Lance Chant
fcd19d9c6d
Chore: fixing styling for plugin fiew and logs
...
Fixed some of the style class names to give more space for the plugin
settings
Added spacing to the bottom of the logs and removed the space at the top
for the logs
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-26 13:25:39 +02:00
Lance Chant
d72cec0f4f
Chore: fixing playback controls
...
Fixed maybe the vertically stretched in portrait
Fixed the gesture overlay persisting after events done
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-26 13:04:19 +02:00
renovate[bot]
1e14c7ec46
chore(deps): Update actions/cache action to v5.0.5 ( #1582 )
2026-05-26 11:42:23 +02:00