Kylian Ronfleux--Corail
7d16e7d5c7
fix: Improve perf download database and correct crash when changing episode ( #1547 )
...
Co-authored-by: BuildTools <unconfigured@null.spigotmc.org >
Co-authored-by: Gauvain <contact@uruk.dev >
2026-06-02 22:37:16 +02:00
Alex
4d508a4315
fix(platform-dropdown-component): Auto-size iOS trigger wrapper to pr… ( #1650 )
2026-06-02 18:40:47 +02:00
Alex
915a4febbb
fix(player): respect safe area in chapter list and refine UX ( #1653 )
2026-06-02 22:31:49 +10:00
Fredrik Burmester
46bd2a784e
fix(tv): keep focus on search field instead of jumping to results grid ( #1637 )
🏗️ 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 / 🔍 Vulnerable Dependencies (push) Has been cancelled
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Has been cancelled
🚦 Security & Quality Gate / 📝 Validate PR Title (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
🚀 Release (EAS build + submit) / 🔐 Approve release (push) Waiting to run
🚀 Release (EAS build + submit) / 🚀 🤖 Android APK (push) Blocked by required conditions
🚀 Release (EAS build + submit) / 🚀 📺 Android TV APK (push) Blocked by required conditions
🚀 Release (EAS build + submit) / 🚀 🍎 iOS (push) Blocked by required conditions
🚀 Release (EAS build + submit) / 🚀 📺 tvOS (push) Blocked by required conditions
🚀 Release (EAS build + submit) / 🚀 🤖 Android AAB (push) Blocked by required conditions
🚀 Release (EAS build + submit) / 📦 Draft GitHub Release (push) Blocked by required conditions
2026-06-01 21:50:52 +02:00
Fredrik Burmester
45d1f752d6
fix: header left button icon alignment
2026-06-01 19:46:07 +02:00
lance chant
54ee507209
fix: fixing the time variable ( #1638 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-06-01 15:22:39 +02:00
lance chant
338fb9713b
fix: qr code scanning not working ios ( #1619 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-06-01 12:38:54 +02:00
lance chant
939fd2512d
fix: max episodes count ( #1554 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-06-01 12:38:34 +02:00
Gauvain
21fb056586
fix(i18n): make two hardcoded titles translatable ( #1627 )
2026-06-01 09:46:27 +02:00
Gauvain
1d79b513f3
fix(item): dedupe top people sections by id ( #1623 )
2026-06-01 09:37:45 +02:00
Gauvain
863dffd944
fix(chapters): keep landscape when opening chapter list on iOS ( #1624 )
2026-06-01 09:37:35 +02:00
Felix Schneider
6b7ee0514f
feat(i18n): add new translations for action sheet options ( #1475 )
...
🏗️ 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 (javascript-typescript) (push) Has been cancelled
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (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
Co-authored-by: lance chant <13349722+lancechant@users.noreply.github.com >
Co-authored-by: Gauvain <contact@uruk.dev >
2026-05-31 23:45:45 +02:00
Alex
62fc6f9a70
fix(progress-bar): Fix progress bar not reporting watch times ( #1611 )
...
Co-authored-by: Gauvain <contact@uruk.dev >
2026-05-31 22:12:13 +10:00
Felix Schneider
dffcdef945
feat(i18n): Add translation for "ends at" ( #1474 )
...
Co-authored-by: Gauvain <contact@uruk.dev >
2026-05-31 12:10:22 +02:00
Fredrik Burmester
6b6bfd1a89
fix(player): remove white blob artifacts on vertical sliders
2026-05-31 10:48:24 +02:00
Fredrik Burmester
a4d4f588fb
Merge remote-tracking branch 'origin/chore/sdk-56-migration' into feat/tv-interface
...
# Conflicts:
# bun.lock
# package.json
2026-05-30 21:44:02 +02:00
Fredrik Burmester
aedb7bc51d
fix(tv): padding
2026-05-30 21:41:27 +02:00
Fredrik Burmester
5a3e9c51c9
fix(tv): align search skeleton, raise search field, fix up-focus
...
- Match the loading skeleton to TVSearchSection's scaled layout (poster
width, item gap, edge padding, heading, poster radius) so placeholders
line up with the real content.
- Move the native search field up ~50px (drop marginTop).
- Remove the downward focus guide that re-captured upward focus, so
pressing up from the native search now reaches the tab bar.
2026-05-30 21:21:37 +02:00
Fredrik Burmester
252c58f120
fix(tv): lazy-load @expo/ui to prevent tvOS crash at module load
2026-05-30 21:21:22 +02:00
Fredrik Burmester
6876ce046f
fix(player): retain subtitle language and mode across episodes
...
Carry the live subtitle/audio selection to the next episode on all TV
navigation paths (next/prev buttons, autoplay) and feed TV subtitle modal
selections back into player state via onSubtitleIndexChange so the chosen
track is what gets carried.
Rank subtitles by language plus forced/hearing-impaired mode, with a
no-language fallback (mode + codec + position), and use an explicit match
flag so a deliberate "off" selection is retained too.
2026-05-30 20:15:24 +02:00
Fredrik Burmester
e044859aaf
feat(tv): native tvOS search field via SwiftUI .searchable
...
Add a local `tv-search` Expo module that hosts SwiftUI's `.searchable`
in a UIHostingController (adapted from expo-tvos-search, minus its native
results grid). It emits typed text to React Native so the existing search
pipeline and custom TV results grid are reused. Handles the RN-tvOS remote
gesture release needed for keyboard input on device.
Wire it into TVSearchPage as a sticky header above the scrollable results,
with a TVFocusGuideView bridge so focus can move from the tab bar into the
native search field.
2026-05-30 16:54:35 +02:00
Fredrik Burmester
c93132177c
fix(tv): scale search input font and box with tvTypographyScale setting
...
The TV search input hardcoded fontSize and box dimensions, so it ignored
the TV display size setting. Drive font, height, padding, and icon from
the scaled `body` typography token so the whole component scales.
2026-05-30 13:29:56 +02:00
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
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
769c7a2432
fix: restore nested dropdown sections for expo 55 on iOS using nested ContextMenus
2026-05-30 10:13:40 +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
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
Gauvain
38d638cdeb
chore(deps): migrate to Expo SDK 56 (Phase 1 - compat)
...
Compatibility migration from SDK 55 to SDK 56 (react-native-tvos 0.85.3-0,
React 19.2.3). Phase 1 = breaking changes needed to build; new-feature
adoption and TypeScript 6 are deferred to Phase 2.
- Deps aligned to SDK 56 via `expo install --fix` (all expo-* 56.x, screens
4.25.2, reanimated 4.3.1, worklets 0.8.3, gesture-handler 2.31.x, svg 15.15.4)
- react-native -> react-native-tvos@0.85 .3-0; react/react-dom 19.2.3
- expo-router forked React Navigation: ran the SDK 56 codemod
(@react-navigation/* imports -> expo-router/*), removed the 3 now-unused
direct @react-navigation/* dependencies, retyped NestedTabPageStack via
expo-router Stack.Screen options
- StyleSheet.absoluteFillObject -> absoluteFill (removed from RN 0.85 types)
- app.json ios.deploymentTarget 15.6 -> 16.4 (SDK 56 minimum)
- CI: Xcode 26.2 -> 26.4; made xcode-version Renovate-managed via a
customManager + xcodereleases customDatasource
- @babel/core 7.29.7; dropped version-locked screens/codegen bun-patches
(no longer applicable on SDK 56)
Deferred to Phase 2: TypeScript 6 (toolchain: @types/node, jest globals,
UdpSocket typing), @expo/vector-icons -> @react-native-vector-icons codemod.
typecheck passes. expo-doctor: 2 known failures remain (react-native-track-player
New Arch fork; typescript major mismatch pending the deferred TS6 bump).
2026-05-28 23:56:03 +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
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
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
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
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
Lance Chant
39a168456a
Fixing mobile login screen
...
Fixed the mobile login screen layout
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-26 11:34:37 +02:00
Lance Chant
5ede3f30d0
chore: more scaling fixes and selection improve
...
Fixed the scaling in the direct player controls to use the scaleTV
settings
Fixed 2 items in settings not being selectable (added style:flex:1)
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-25 15:12:44 +02:00
Lance Chant
6b0f8b833f
Chore: log cleanups, and Vo settings enablement
...
Added the ability to swap VO options for android only between "GPU" and
"GPU-next"
Removed some console logs from previous debugging
Added the ability to see what VO is being used to render in the video
player
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-25 14:19:36 +02:00
Lance Chant
4253f0d5ab
Merge branch 'feat/tv-interface' of https://github.com/streamyfin/streamyfin into feat/tv-interface
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-25 10:35:14 +02:00
lance chant
4b577b8111
Chore/tv interface scaling ( #1591 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-24 12:55:28 +02:00