From 6aa0868bfddb9f4b0eccb3ebc16bbf8d7c795aeb Mon Sep 17 00:00:00 2001 From: lance chant <13349722+lancechant@users.noreply.github.com> Date: Mon, 1 Jun 2026 09:35:19 +0200 Subject: [PATCH 1/8] fix: fixed a runtime issue for android (#1628) Signed-off-by: Lance Chant <13349722+lancechant@users.noreply.github.com> --- .../android/build.gradle | 40 ++++--------------- 1 file changed, 7 insertions(+), 33 deletions(-) diff --git a/modules/background-downloader/android/build.gradle b/modules/background-downloader/android/build.gradle index 1b273d728..f2987348e 100644 --- a/modules/background-downloader/android/build.gradle +++ b/modules/background-downloader/android/build.gradle @@ -1,46 +1,20 @@ -plugins { - id 'com.android.library' - id 'kotlin-android' -} +apply plugin: 'expo-module-gradle-plugin' group = 'expo.modules.backgrounddownloader' version = '1.0.0' -def expoModulesCorePlugin = new File(project(":expo-modules-core").projectDir.absolutePath, "ExpoModulesCorePlugin.gradle") -def kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.25' - -apply from: expoModulesCorePlugin - -applyKotlinExpoModulesCorePlugin() -useDefaultAndroidSdkVersions() -useCoreDependencies() -useExpoPublishing() +expoModule { + canBePublished false +} android { namespace "expo.modules.backgrounddownloader" - - compileOptions { - sourceCompatibility JavaVersion.VERSION_17 - targetCompatibility JavaVersion.VERSION_17 - } - - kotlinOptions { - jvmTarget = "17" - } - - lintOptions { - abortOnError false + defaultConfig { + versionCode 1 + versionName "1.0.0" } } dependencies { - implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion" implementation "com.squareup.okhttp3:okhttp:4.12.0" } - -tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach { - kotlinOptions { - jvmTarget = "17" - } -} - From 863dffd944562a8c272048cd719a533bdb855cba Mon Sep 17 00:00:00 2001 From: Gauvain Date: Mon, 1 Jun 2026 09:37:35 +0200 Subject: [PATCH 2/8] fix(chapters): keep landscape when opening chapter list on iOS (#1624) --- components/chapters/ChapterList.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/components/chapters/ChapterList.tsx b/components/chapters/ChapterList.tsx index 42a90b89e..dd6ef1bd9 100644 --- a/components/chapters/ChapterList.tsx +++ b/components/chapters/ChapterList.tsx @@ -74,6 +74,9 @@ function ChapterListComponent({ transparent animationType='slide' onRequestClose={onClose} + // iOS defaults to portrait-only; without this it rotates the app + // back to portrait when opened from the landscape player. Android ignores it. + supportedOrientations={["portrait", "landscape"]} > e.stopPropagation()} style={styles.sheet}> From 1d79b513f35bb6de8479ab5fb75e3df3fd0c5bec Mon Sep 17 00:00:00 2001 From: Gauvain Date: Mon, 1 Jun 2026 09:37:45 +0200 Subject: [PATCH 3/8] fix(item): dedupe top people sections by id (#1623) --- components/item/ItemPeopleSections.tsx | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/components/item/ItemPeopleSections.tsx b/components/item/ItemPeopleSections.tsx index 0b16271fc..456276da2 100644 --- a/components/item/ItemPeopleSections.tsx +++ b/components/item/ItemPeopleSections.tsx @@ -37,7 +37,20 @@ export const ItemPeopleSections: React.FC = ({ item, ...props }) => { return { ...item, People: people } as BaseItemDto; }, [item, people]); - const topPeople = useMemo(() => people.slice(0, 3), [people]); + // Jellyfin can list the same person several times (e.g. an actor also + // credited as writer). Dedupe by Id so the same actor section isn't rendered + // twice and we still surface 3 distinct people. + const topPeople = useMemo(() => { + const seen = new Set(); + const unique: BaseItemPerson[] = []; + for (const person of people) { + if (!person.Id || seen.has(person.Id)) continue; + seen.add(person.Id); + unique.push(person); + if (unique.length >= 3) break; + } + return unique; + }, [people]); const renderActorSection = useCallback( (person: BaseItemPerson, idx: number, total: number) => { From 21fb05658626c93b85e9672f3ebb15c8795951df Mon Sep 17 00:00:00 2001 From: Gauvain Date: Mon, 1 Jun 2026 09:46:27 +0200 Subject: [PATCH 4/8] fix(i18n): make two hardcoded titles translatable (#1627) --- components/settings/LibraryOptionsSheet.tsx | 2 +- modules/mpv-player/src/MpvPlayerView.web.tsx | 4 +++- translations/en.json | 4 +++- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/components/settings/LibraryOptionsSheet.tsx b/components/settings/LibraryOptionsSheet.tsx index c84989b58..e02e22fa1 100644 --- a/components/settings/LibraryOptionsSheet.tsx +++ b/components/settings/LibraryOptionsSheet.tsx @@ -229,7 +229,7 @@ export const LibraryOptionsSheet: React.FC = ({ /> - +