lance chant
efc45f56f6
Merge branch 'develop' into fix/maxEpisodes-count
2026-06-01 10:48:17 +02:00
github-actions[bot]
32c99de874
feat: New Crowdin Translations ( #1460 )
...
🏗️ Build Apps / 🤖 Build Android APK (Phone) (push) Waiting to run
🏗️ Build Apps / 🤖 Build Android APK (TV) (push) Waiting to run
🏗️ Build Apps / 🍎 Build iOS IPA (Phone) (push) Waiting to run
🏗️ Build Apps / 🍎 Build iOS IPA (Phone - Unsigned) (push) Waiting to run
🏗️ Build Apps / 🍎 Build tvOS IPA (push) Waiting to run
🏗️ Build Apps / 🍎 Build tvOS IPA (Unsigned) (push) Waiting to run
🔒 Lockfile Consistency Check / 🔍 Check bun.lock and package.json consistency (push) Waiting to run
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (actions) (push) Waiting to run
🛡️ CodeQL Analysis / 🔎 Analyze with CodeQL (javascript-typescript) (push) Waiting to run
🏷️🔀Merge Conflict Labeler / 🏷️ Labeling Merge Conflicts (push) Waiting to run
🌐 Translation Sync / sync-translations (push) Waiting to run
🚦 Security & Quality Gate / 📝 Validate PR Title (push) Waiting to run
🚦 Security & Quality Gate / 🔍 Vulnerable Dependencies (push) Waiting to run
🚦 Security & Quality Gate / 🚑 Expo Doctor Check (push) Waiting to run
🚦 Security & Quality Gate / 🔍 Lint & Test (check) (push) Waiting to run
🚦 Security & Quality Gate / 🔍 Lint & Test (format) (push) Waiting to run
🚦 Security & Quality Gate / 🔍 Lint & Test (lint) (push) Waiting to run
🚦 Security & Quality Gate / 🔍 Lint & Test (typecheck) (push) Waiting to run
Co-authored-by: Crowdin Bot <support+bot@crowdin.com >
2026-06-01 10:33:17 +02:00
Fredrik Burmester
c232e433bf
fix(ci): grant actions:read to github-release job ( #1634 )
2026-06-01 10:31:05 +02:00
Fredrik Burmester
07e2faff07
fix(tv): only add user-management entitlement for tvOS builds ( #1633 )
2026-06-01 10:28:21 +02:00
Fredrik Burmester
8507699cdd
feat(eas): force bun on EAS via custom build configs + 5-build release workflow ( #1632 )
2026-06-01 10:24:52 +02:00
lance chant
51ae9f94e0
Merge branch 'develop' into fix/maxEpisodes-count
2026-06-01 09:51:14 +02:00
Lance Chant
706f0cb185
fix: pr comments
...
Allowed the user settings to be saved incase admin unlocks settings
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-06-01 09:49:21 +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
lance chant
49aa374f03
Merge branch 'develop' into fix/maxEpisodes-count
2026-06-01 09:36:40 +02:00
lance chant
6aa0868bfd
fix: fixed a runtime issue for android ( #1628 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-06-01 09:35:19 +02:00
lance chant
02961bff87
Merge branch 'develop' into fix/maxEpisodes-count
2026-06-01 07:28:54 +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
Fredrik Burmester
c663bd0413
fix(jellyseerr): correct RequestModal ref type to fix typecheck
...
advancedReqModalRef was typed as BottomSheetModal but RequestModal's
forwardRef expects BottomSheetModalMethods, causing a TS2322 error
that broke the Security & Quality Gate typecheck on develop.
2026-05-31 22:10:15 +02:00
lance chant
16d1a4e91c
Merge branch 'develop' into fix/maxEpisodes-count
2026-05-31 22:03:12 +02:00
Alex
52e6f56220
fix(auth): clear stored user on logout to prevent empty home on relaunch ( #1622 )
2026-05-31 21:52:41 +02:00
Fredrik Burmester
c981f59a50
fix(downloads): repair bottom sheets on iOS and restore downloads delete sheet
...
🏗️ 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
Bump @gorhom/bottom-sheet 5.2.8 -> 5.2.14, which fixes BottomSheetModal
present() silently no-opping under Reanimated 4 / New Architecture (SDK 56).
Affected every sheet app-wide: present() was called with a valid ref but
nothing rendered (not even the backdrop). Verified on the iOS simulator that
the download options sheet now opens.
Also restore the downloads-page delete sheet (delete movies/series/other/all)
that was accidentally dropped in the Expo 54 rewrite (#1174 ), which left an
orphaned trigger button and underscore-silenced handlers.
2026-05-31 14:58:51 +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
Fredrik Burmester
eb8dd51b4e
feat(ci): EAS build + auto-submit release workflow for main ( #1616 )
2026-05-31 13:23:02 +02:00
Fredrik Burmester
ea5a999f21
fix(deps): declare react-native-tab-view and material-top-tabs ( #1617 )
2026-05-31 12:40:56 +02: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
Lance Chant
eb9bf40e6d
Merge remote-tracking branch 'origin/develop' into fix/maxEpisodes-count
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-31 11:47:54 +02:00
Fredrik Burmester
fa1c3f3947
chore(eas): pin appleTeamId and ascAppId in submit profiles
...
🏗️ 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 / 📝 Validate PR Title (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
Avoid the interactive Apple team picker and app-existence lookup on
submit by pinning the Individual team (MWD5K362T8) and ASC App ID.
2026-05-31 11:22:59 +02:00
Fredrik Burmester
2761de5a74
chore(eas): use remote app version source with autoIncrement
...
Switch cli.appVersionSource to remote and enable autoIncrement on all
production profiles so EAS bumps the build number every release instead
of resetting to 1. Remove the dead android.versionCode from app.json and
the unused EAS Update channel (no expo-updates installed).
2026-05-31 11:22:59 +02:00
Fredrik Burmester
feca1d7e9c
fix(android): resolve mpv-player Kotlin smart-cast build error ( #1614 )
2026-05-31 10:50:06 +02:00
Fredrik Burmester
6b6bfd1a89
fix(player): remove white blob artifacts on vertical sliders
2026-05-31 10:48:24 +02:00
Fredrik Burmester
d585b20f49
chore: version
2026-05-31 09:44:05 +02:00
Fredrik Burmester
692ccfdb2c
fix(tvos): add arm64 UIRequiredDeviceCapabilities to Top Shelf extension
...
App Store Connect rejected TestFlight submissions because the Top Shelf
extension binary has a 64-bit slice but did not declare arm64 under
UIRequiredDeviceCapabilities in its Info.plist.
2026-05-31 09:42:09 +02:00
Fredrik Burmester
86e39c444c
fix(ios): SDK 56 / iOS 26 EAS build fixes (SwiftUICore autolink + patch-package) ( #1613 )
2026-05-31 09:37:08 +02:00
Fredrik Burmester
ed7928b4d3
Merge remote-tracking branch 'origin/feat/tv-interface' into develop
🏗️ 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
🌐 Translation Sync / sync-translations (push) Has been cancelled
2026-05-30 22:47:33 +02:00
lance chant
27dc7b5664
fix: android pip ( #1605 )
...
Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com >
2026-05-30 22:45:19 +02:00
Alex
a205c75895
chore(mpv-player): Update to MPVKIT 0.41 ( #1604 )
2026-05-30 22:45:07 +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
d2e73021b1
fix(mpv): apply carried audio/subtitle track after file load
...
Setting sid/aid before loadfile does not stick for embedded tracks, so a
carried-over subtitle was silently dropped on a freshly loaded episode.
Apply the initial audio/subtitle selection in the MPV_EVENT_FILE_LOADED
handler (after tracks are enumerated) for embedded and external alike, on
both iOS and Android.
2026-05-30 20:15:37 +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
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