From df3d8e51841b8957cd73d270097d006927adb0e5 Mon Sep 17 00:00:00 2001 From: mustafadakhel Date: Sat, 13 Jan 2024 11:01:52 +0100 Subject: [PATCH 001/161] chore(translate): add (Arabic) --- core/src/main/res/values-ar/strings.xml | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 core/src/main/res/values-ar/strings.xml diff --git a/core/src/main/res/values-ar/strings.xml b/core/src/main/res/values-ar/strings.xml new file mode 100644 index 00000000..a6b3daec --- /dev/null +++ b/core/src/main/res/values-ar/strings.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file From 2d464c56f9b6b55c1d0b70a6461a6cca0f38dcc2 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 19:41:57 +0100 Subject: [PATCH 002/161] fix(deps): update dependency dev.jdtech.mpv:libmpv to v0.1.4 (#617) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index afa3360d..c9ac8bed 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -26,7 +26,7 @@ kotlin = "1.9.21" kotlinx-serialization = "1.6.2" ksp = "1.9.21-1.0.15" ktlint = "11.6.1" -libmpv = "0.1.3" +libmpv = "0.1.4" material = "1.11.0" timber = "5.0.1" From 570e71cb543008ac254a152884a9fac54e455ece Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 19:51:16 +0100 Subject: [PATCH 003/161] chore(deps): update kotlin monorepo to v1.9.22 (#587) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c9ac8bed..51140bf4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,7 +22,7 @@ coil = "2.5.0" hilt = "2.50" compose-destinations = "1.9.56" jellyfin = "1.4.6" -kotlin = "1.9.21" +kotlin = "1.9.22" kotlinx-serialization = "1.6.2" ksp = "1.9.21-1.0.15" ktlint = "11.6.1" From 371fdba6aa109c7aeb35ab8b8a0b2ba970cdbd9c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 19:51:28 +0100 Subject: [PATCH 004/161] fix(deps): update dependency composeoptions to v1.5.8 (#626) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- buildSrc/src/main/kotlin/Versions.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index b1b3b66a..3a59e86f 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -11,6 +11,6 @@ object Versions { val java = JavaVersion.VERSION_17 - const val composeCompiler = "1.5.7" + const val composeCompiler = "1.5.8" const val ktlint = "0.50.0" } \ No newline at end of file From 4173922db2f4201bb2dfdd8fd884c72e27e79098 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 19:51:40 +0100 Subject: [PATCH 005/161] chore(deps): update dependency com.google.devtools.ksp to v1.9.22-1.0.16 (#571) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 51140bf4..857277e5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -24,7 +24,7 @@ compose-destinations = "1.9.56" jellyfin = "1.4.6" kotlin = "1.9.22" kotlinx-serialization = "1.6.2" -ksp = "1.9.21-1.0.15" +ksp = "1.9.22-1.0.16" ktlint = "11.6.1" libmpv = "0.1.4" material = "1.11.0" From 1b5e010fc0a8e151b8e3a24c742e46cbae60447b Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:26:04 +0100 Subject: [PATCH 006/161] chore(deps): update android.plugin to v8.2.1 (#570) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 857277e5..428b4ac4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] aboutlibraries = "10.9.2" -android-plugin = "8.2.0" +android-plugin = "8.2.1" androidx-activity = "1.8.2" androidx-appcompat = "1.6.1" androidx-compose-material3 = "1.2.0-alpha09" From 0c6f46bdf1733dad86e4e6d58152854fd366e061 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:32:06 +0100 Subject: [PATCH 007/161] chore(deps): update dependency org.jlleitschuh.gradle.ktlint to v12 (#619) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 428b4ac4..978dcf2d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,7 @@ jellyfin = "1.4.6" kotlin = "1.9.22" kotlinx-serialization = "1.6.2" ksp = "1.9.22-1.0.16" -ktlint = "11.6.1" +ktlint = "12.1.0" libmpv = "0.1.4" material = "1.11.0" timber = "5.0.1" From ca86d4f84bba3f04290464603836d4d603cd2720 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 20:46:54 +0100 Subject: [PATCH 008/161] chore(deps): update aboutlibraries to v10.10.0 (#618) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 978dcf2d..ef38baec 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -aboutlibraries = "10.9.2" +aboutlibraries = "10.10.0" android-plugin = "8.2.1" androidx-activity = "1.8.2" androidx-appcompat = "1.6.1" From 833fc955459e3ac1c1d9b77172601f048f0a61ea Mon Sep 17 00:00:00 2001 From: Yash Garg Date: Thu, 18 Jan 2024 01:30:34 +0530 Subject: [PATCH 009/161] chore: use type-safe project accessors (#622) --- app/phone/build.gradle.kts | 10 +++++----- app/tv/build.gradle.kts | 10 +++++----- core/build.gradle.kts | 6 +++--- data/build.gradle.kts | 2 +- player/core/build.gradle.kts | 4 ++-- player/video/build.gradle.kts | 6 +++--- settings.gradle.kts | 2 ++ 7 files changed, 21 insertions(+), 19 deletions(-) diff --git a/app/phone/build.gradle.kts b/app/phone/build.gradle.kts index 670bf9fc..2782a57a 100644 --- a/app/phone/build.gradle.kts +++ b/app/phone/build.gradle.kts @@ -78,11 +78,11 @@ ktlint { } dependencies { - implementation(project(":core")) - implementation(project(":data")) - implementation(project(":preferences")) - implementation(project(":player:core")) - implementation(project(":player:video")) + implementation(projects.core) + implementation(projects.data) + implementation(projects.preferences) + implementation(projects.player.core) + implementation(projects.player.video) implementation(libs.aboutlibraries.core) implementation(libs.aboutlibraries) implementation(libs.androidx.activity) diff --git a/app/tv/build.gradle.kts b/app/tv/build.gradle.kts index f76a759f..8be41f4e 100644 --- a/app/tv/build.gradle.kts +++ b/app/tv/build.gradle.kts @@ -82,11 +82,11 @@ ktlint { } dependencies { - implementation(project(":core")) - implementation(project(":data")) - implementation(project(":preferences")) - implementation(project(":player:core")) - implementation(project(":player:video")) + implementation(projects.core) + implementation(projects.data) + implementation(projects.preferences) + implementation(projects.player.core) + implementation(projects.player.video) implementation(libs.androidx.activity.compose) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 42ce1ce3..c046d487 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -53,9 +53,9 @@ ktlint { } dependencies { - implementation(project(":data")) - implementation(project(":preferences")) - implementation(project(":player:core")) + implementation(projects.data) + implementation(projects.preferences) + implementation(projects.player.core) implementation(libs.androidx.activity) implementation(libs.androidx.appcompat) implementation(libs.androidx.compose.ui) diff --git a/data/build.gradle.kts b/data/build.gradle.kts index af78e1fc..1cb0dfd0 100644 --- a/data/build.gradle.kts +++ b/data/build.gradle.kts @@ -51,7 +51,7 @@ ktlint { } dependencies { - implementation(project(":preferences")) + implementation(projects.preferences) implementation(libs.androidx.paging) implementation(libs.androidx.room.runtime) ksp(libs.androidx.room.compiler) diff --git a/player/core/build.gradle.kts b/player/core/build.gradle.kts index 6c7494dc..0293020a 100644 --- a/player/core/build.gradle.kts +++ b/player/core/build.gradle.kts @@ -36,8 +36,8 @@ ktlint { } dependencies { - implementation(project(":data")) - implementation(project(":preferences")) + implementation(projects.data) + implementation(projects.preferences) implementation(libs.androidx.core) implementation(libs.androidx.preference) implementation(libs.jellyfin.core) diff --git a/player/video/build.gradle.kts b/player/video/build.gradle.kts index f13cd4df..5b4ea8d8 100644 --- a/player/video/build.gradle.kts +++ b/player/video/build.gradle.kts @@ -38,9 +38,9 @@ ktlint { } dependencies { - implementation(project(":player:core")) - implementation(project(":data")) - implementation(project(":preferences")) + implementation(projects.player.core) + implementation(projects.data) + implementation(projects.preferences) implementation(libs.androidx.core) implementation(libs.androidx.lifecycle.runtime) implementation(libs.androidx.lifecycle.viewmodel) diff --git a/settings.gradle.kts b/settings.gradle.kts index 773cba64..8d13d3f3 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,5 @@ +enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS") + include(":app:phone") include(":app:tv") include(":core") From 24281a3ad1e1188eb6630bd4fe1ce47b5a926b01 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Wed, 17 Jan 2024 21:04:41 +0100 Subject: [PATCH 010/161] fix(deps): update compose.destinations to v1.9.62 (#616) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ef38baec..7a1a13f7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ androidx-tv = "1.0.0-alpha10" androidx-work = "2.9.0" coil = "2.5.0" hilt = "2.50" -compose-destinations = "1.9.56" +compose-destinations = "1.9.62" jellyfin = "1.4.6" kotlin = "1.9.22" kotlinx-serialization = "1.6.2" From 85c907406ea98a422b0dbf1d04e7b0b66ebb4387 Mon Sep 17 00:00:00 2001 From: AnonymousWebHacker Date: Thu, 18 Jan 2024 14:38:50 -0500 Subject: [PATCH 011/161] docs: add badges to readme (#567) * Update README.md Add shields.io Badges * docs: reduce number of badges Reduce the number of badges to a more (in my opinion) useful set --------- Co-authored-by: Jarne Demeulemeester --- README.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/README.md b/README.md index a6b5152c..8d3a6ab2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,12 @@ ![Findroid banner](images/findroid-banner.png) # Findroid +![GitHub release (with filter)](https://img.shields.io/github/v/release/jarnedemeulemeester/findroid?style=for-the-badge) +![GitHub repo stars](https://img.shields.io/github/stars/jarnedemeulemeester/findroid?style=for-the-badge) +![GitHub issues](https://img.shields.io/github/issues/jarnedemeulemeester/findroid?style=for-the-badge) +![GitHub pull requests](https://img.shields.io/github/issues-pr/jarnedemeulemeester/findroid?style=for-the-badge) +![GitHub all releases](https://img.shields.io/github/downloads/jarnedemeulemeester/findroid/total?style=for-the-badge) +![GitHub](https://img.shields.io/github/license/jarnedemeulemeester/findroid?style=for-the-badge) Findroid is third-party Android application for Jellyfin that provides a native user interface to browse and play movies and series. From 015ddd19bd3a6cec97dab0032753c348f296ea6f Mon Sep 17 00:00:00 2001 From: kimpig Date: Fri, 19 Jan 2024 15:45:49 +0000 Subject: [PATCH 012/161] chore(translate): (Korean) Currently translated at 100.0% (186 of 186 strings) Translation: Findroid/core Translate-URL: https://weblate.jdtech.dev/projects/findroid/core/ko/ --- core/src/main/res/values-ko/strings.xml | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/core/src/main/res/values-ko/strings.xml b/core/src/main/res/values-ko/strings.xml index 8c14ecc5..a0af933f 100644 --- a/core/src/main/res/values-ko/strings.xml +++ b/core/src/main/res/values-ko/strings.xml @@ -168,11 +168,21 @@ 다운로드 중지 Findroid를 사용하면, 데이터를 수집하지 않는다는 개인 정보 보호 정책에 동의합니다 서버 주소 %1$s를 제거하는것이 확실합니까\? - 다운로드된 표시기 + 다운로드 표시기 서버 주소 제 임시 CC Picture-in-picture 홈 제스쳐 영상 재생 중 홈 버튼 또는 제스쳐를 이용해 picture-in-picture 변경 Picture-in-picture 기능 + 서버가 발견되지 않았습니다 + 사용자가 발견되지 않았습니다 + 사용자를 선택하세요 + 재생 + 라이브 TV + 예고편 보기 + 시청함으로 표시 + 즐겨찾기에서 제거 + 시청함으로 표시하지 않기 + 즐겨찾기에 추가 \ No newline at end of file From 3cc5aa28e0127dbd349145a89c6db9cd60dff5ce Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:02:25 +0100 Subject: [PATCH 013/161] chore(deps): update dependency com.google.devtools.ksp to v1.9.22-1.0.17 (#629) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7a1a13f7..a9816627 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -24,7 +24,7 @@ compose-destinations = "1.9.62" jellyfin = "1.4.6" kotlin = "1.9.22" kotlinx-serialization = "1.6.2" -ksp = "1.9.22-1.0.16" +ksp = "1.9.22-1.0.17" ktlint = "12.1.0" libmpv = "0.1.4" material = "1.11.0" From 3c07de6da95bbff2e0e46b5286264eb933252fb0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:02:53 +0100 Subject: [PATCH 014/161] fix(deps): update androidx.media3 to v1.2.1 (#630) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a9816627..a117c56a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ androidx-constraintlayout = "2.1.4" androidx-core = "1.12.0" androidx-hilt = "1.1.0" androidx-lifecycle = "2.6.2" -androidx-media3 = "1.2.0" +androidx-media3 = "1.2.1" androidx-navigation = "2.7.6" androidx-paging = "3.2.1" androidx-preference = "1.2.1" From 060eab0183cc0526669015d7dcaf18155800a746 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Mon, 22 Jan 2024 14:21:14 +0100 Subject: [PATCH 015/161] fix(deps): update androidx.lifecycle to v2.7.0 (#631) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a117c56a..85660e25 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ androidx-compose-ui = "1.6.0-alpha07" androidx-constraintlayout = "2.1.4" androidx-core = "1.12.0" androidx-hilt = "1.1.0" -androidx-lifecycle = "2.6.2" +androidx-lifecycle = "2.7.0" androidx-media3 = "1.2.1" androidx-navigation = "2.7.6" androidx-paging = "3.2.1" From 0ecf6d4c0eade032644f0c41882a740fe437b584 Mon Sep 17 00:00:00 2001 From: peerless2012 Date: Mon, 22 Jan 2024 22:31:50 +0800 Subject: [PATCH 016/161] feat: add long press for 2x speed (#596) * Add long press for 2x speed. * Fix resource hard code warn. * Fix lint warn. * refactor: use `player.setPlaybackSpeed` * refactor: make playback speed increase easily adjustable later --------- Co-authored-by: jarnedemeulemeester --- .../jellyfin/utils/PlayerGestureHelper.kt | 20 ++++++++++++ .../src/main/res/layout/activity_player.xml | 31 +++++++++++++++++++ .../main/res/drawable/ic_speed_forward.xml | 27 ++++++++++++++++ 3 files changed, 78 insertions(+) create mode 100644 core/src/main/res/drawable/ic_speed_forward.xml diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt index 8c11ba3a..9591abef 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt @@ -55,6 +55,9 @@ class PlayerGestureHelper( private var lastScaleEvent: Long = 0 + private var playbackSpeedIncrease: Float = 2f + private var lastPlaybackSpeed: Float = 0f + private val screenWidth = Resources.getSystem().displayMetrics.widthPixels private val screenHeight = Resources.getSystem().displayMetrics.heightPixels @@ -69,6 +72,18 @@ class PlayerGestureHelper( return true } + @SuppressLint("SetTextI18n") + override fun onLongPress(e: MotionEvent) { + playerView.player?.let { + if (it.isPlaying) { + lastPlaybackSpeed = it.playbackParameters.speed + it.setPlaybackSpeed(playbackSpeedIncrease) + activity.binding.gestureSpeedText.text = playbackSpeedIncrease.toString() + "x" + activity.binding.gestureSpeedLayout.visibility = View.VISIBLE + } + } + } + override fun onDoubleTap(e: MotionEvent): Boolean { // Disables double tap gestures if view is locked if (isControlsLocked) return false @@ -362,6 +377,11 @@ class PlayerGestureHelper( } } } + if (lastPlaybackSpeed > 0 && (event.action == MotionEvent.ACTION_UP || event.action == MotionEvent.ACTION_CANCEL)) { + playerView.player?.setPlaybackSpeed(lastPlaybackSpeed) + lastPlaybackSpeed = 0f + activity.binding.gestureSpeedLayout.visibility = View.GONE + } } private fun longToTimestamp(duration: Long, noSign: Boolean = false): String { diff --git a/app/phone/src/main/res/layout/activity_player.xml b/app/phone/src/main/res/layout/activity_player.xml index ee2e8977..c2c1f5b7 100644 --- a/app/phone/src/main/res/layout/activity_player.xml +++ b/app/phone/src/main/res/layout/activity_player.xml @@ -113,6 +113,37 @@ tools:ignore="ContentDescription" /> + + + + + + + + + + + From a16f910ee39d76bdf6a8aaddc7c5fa08299fd6f3 Mon Sep 17 00:00:00 2001 From: jarnedemeulemeester Date: Tue, 23 Jan 2024 14:48:15 +0100 Subject: [PATCH 017/161] feat(mpv): default to `gpu-next` and `mediacodec` and use `fast` profile --- core/src/main/res/xml/fragment_settings_player.xml | 2 +- .../src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt | 6 +++--- .../src/main/java/dev/jdtech/jellyfin/AppPreferences.kt | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/core/src/main/res/xml/fragment_settings_player.xml b/core/src/main/res/xml/fragment_settings_player.xml index fcc8aeb4..ac367054 100644 --- a/core/src/main/res/xml/fragment_settings_player.xml +++ b/core/src/main/res/xml/fragment_settings_player.xml @@ -19,7 +19,7 @@ app:title="@string/pref_player_mpv_hwdec" app:useSimpleSummaryProvider="true" /> Date: Thu, 25 Jan 2024 23:12:51 +0100 Subject: [PATCH 018/161] chore(deps): update android.plugin to v8.2.2 --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 85660e25..490448ff 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] aboutlibraries = "10.10.0" -android-plugin = "8.2.1" +android-plugin = "8.2.2" androidx-activity = "1.8.2" androidx-appcompat = "1.6.1" androidx-compose-material3 = "1.2.0-alpha09" From 785c83b8c9c44f47c44a2a7c181606a04a0d1ea0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 23:37:14 +0100 Subject: [PATCH 019/161] fix(deps): update androidx.compose.ui to v1.6.0 (#610) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 490448ff..a711e533 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ android-plugin = "8.2.2" androidx-activity = "1.8.2" androidx-appcompat = "1.6.1" androidx-compose-material3 = "1.2.0-alpha09" -androidx-compose-ui = "1.6.0-alpha07" +androidx-compose-ui = "1.6.0" androidx-constraintlayout = "2.1.4" androidx-core = "1.12.0" androidx-hilt = "1.1.0" From f44d9b465ef04b94a4b0541a55c46648625f9d49 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Thu, 25 Jan 2024 23:37:57 +0100 Subject: [PATCH 020/161] fix(deps): update dependency androidx.compose.material3:material3 to v1.2.0-rc01 (#611) Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a711e533..45cf5e49 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -3,7 +3,7 @@ aboutlibraries = "10.10.0" android-plugin = "8.2.2" androidx-activity = "1.8.2" androidx-appcompat = "1.6.1" -androidx-compose-material3 = "1.2.0-alpha09" +androidx-compose-material3 = "1.2.0-rc01" androidx-compose-ui = "1.6.0" androidx-constraintlayout = "2.1.4" androidx-core = "1.12.0" From c7849a70c3c723d2a5bad9b0acfe335bf0f137e4 Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Fri, 26 Jan 2024 00:00:56 +0100 Subject: [PATCH 021/161] feat(mpv,tv): default to `gpu-next` --- .../java/dev/jdtech/jellyfin/viewmodels/SettingsViewModel.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/src/main/java/dev/jdtech/jellyfin/viewmodels/SettingsViewModel.kt b/core/src/main/java/dev/jdtech/jellyfin/viewmodels/SettingsViewModel.kt index 8e622ec7..c9725050 100644 --- a/core/src/main/java/dev/jdtech/jellyfin/viewmodels/SettingsViewModel.kt +++ b/core/src/main/java/dev/jdtech/jellyfin/viewmodels/SettingsViewModel.kt @@ -97,7 +97,7 @@ constructor( nameStringResource = R.string.pref_player_mpv_vo, dependencies = listOf(Constants.PREF_PLAYER_MPV), backendName = Constants.PREF_PLAYER_MPV_VO, - backendDefaultValue = "gpu", + backendDefaultValue = "gpu-next", options = R.array.mpv_vos, optionValues = R.array.mpv_vos, ), From 07c58accf00e0d5dd497f1e74a0138639777fcd0 Mon Sep 17 00:00:00 2001 From: Jarne Demeulemeester Date: Fri, 26 Jan 2024 23:29:03 +0100 Subject: [PATCH 022/161] fix(mpv): loading item immediately restarts the playback causing duplicate external subtitle entries --- .../src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/player/video/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt b/player/video/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt index 6fb7a402..5d556183 100644 --- a/player/video/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt +++ b/player/video/src/main/java/dev/jdtech/jellyfin/mpv/MPVPlayer.kt @@ -869,8 +869,11 @@ class MPVPlayer( ) } currentIndex = index - MPVLib.command(arrayOf("playlist-play-index", "$index")) - MPVLib.setPropertyBoolean("pause", true) + // Only set the playlist index when the index is not the currently playing item. Otherwise playback will be restarted. + // This is a problem on initial load when the first item is still loading causing duplicate external subtitle entries. + if (MPVLib.getPropertyInt("playlist-current-pos") != index) { + MPVLib.command(arrayOf("playlist-play-index", "$index")) + } listeners.sendEvent(Player.EVENT_TIMELINE_CHANGED) { listener -> listener.onTimelineChanged(timeline, Player.TIMELINE_CHANGE_REASON_PLAYLIST_CHANGED) } From 61ec1edb35d73580504806d11b19100651435b07 Mon Sep 17 00:00:00 2001 From: Natanel Shitrit <65548905+Natanel-Shitrit@users.noreply.github.com> Date: Sun, 28 Jan 2024 15:01:29 +0200 Subject: [PATCH 023/161] feat: start player maximized pref (#637) --- .../java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt | 2 ++ core/src/main/res/values/strings.xml | 2 ++ core/src/main/res/xml/fragment_settings_player.xml | 5 +++++ .../src/main/java/dev/jdtech/jellyfin/AppPreferences.kt | 3 +++ preferences/src/main/java/dev/jdtech/jellyfin/Constants.kt | 1 + 5 files changed, 13 insertions(+) diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt index 9591abef..e647e9cd 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/utils/PlayerGestureHelper.kt @@ -418,6 +418,8 @@ class PlayerGestureHelper( activity.window.attributes.screenBrightness = appPreferences.playerBrightness } + updateZoomMode(appPreferences.playerStartMaximized) + @Suppress("ClickableViewAccessibility") playerView.setOnTouchListener { _, event -> if (playerView.useController) { diff --git a/core/src/main/res/values/strings.xml b/core/src/main/res/values/strings.xml index ec8684c0..1ce1def7 100644 --- a/core/src/main/res/values/strings.xml +++ b/core/src/main/res/values/strings.xml @@ -107,6 +107,8 @@ Pinch to fill the screen with the video Swipe horizontally to seek forwards or backwards Remember brightness level + Start maximized + Open video in maximized mode by default Title IMDB Rating Parental Rating diff --git a/core/src/main/res/xml/fragment_settings_player.xml b/core/src/main/res/xml/fragment_settings_player.xml index ac367054..495e0388 100644 --- a/core/src/main/res/xml/fragment_settings_player.xml +++ b/core/src/main/res/xml/fragment_settings_player.xml @@ -63,6 +63,11 @@ app:dependency="pref_player_gestures_vb" app:key="pref_player_brightness_remember" app:title="@string/player_brightness_remember" /> + diff --git a/preferences/src/main/java/dev/jdtech/jellyfin/AppPreferences.kt b/preferences/src/main/java/dev/jdtech/jellyfin/AppPreferences.kt index 155b23fc..132e3c5d 100644 --- a/preferences/src/main/java/dev/jdtech/jellyfin/AppPreferences.kt +++ b/preferences/src/main/java/dev/jdtech/jellyfin/AppPreferences.kt @@ -51,6 +51,9 @@ constructor( val playerBrightnessRemember get() = sharedPreferences.getBoolean(Constants.PREF_PLAYER_BRIGHTNESS_REMEMBER, false) + val playerStartMaximized get() = + sharedPreferences.getBoolean(Constants.PREF_PLAYER_START_MAXIMIZED, false) + var playerBrightness: Float get() = sharedPreferences.getFloat( Constants.PREF_PLAYER_BRIGHTNESS, diff --git a/preferences/src/main/java/dev/jdtech/jellyfin/Constants.kt b/preferences/src/main/java/dev/jdtech/jellyfin/Constants.kt index b34d6313..89403118 100644 --- a/preferences/src/main/java/dev/jdtech/jellyfin/Constants.kt +++ b/preferences/src/main/java/dev/jdtech/jellyfin/Constants.kt @@ -17,6 +17,7 @@ object Constants { const val PREF_PLAYER_GESTURES_ZOOM = "pref_player_gestures_zoom" const val PREF_PLAYER_GESTURES_SEEK = "pref_player_gestures_seek" const val PREF_PLAYER_BRIGHTNESS_REMEMBER = "pref_player_brightness_remember" + const val PREF_PLAYER_START_MAXIMIZED = "pref_player_start_maximized" const val PREF_PLAYER_BRIGHTNESS = "pref_player_brightness" const val PREF_PLAYER_SEEK_BACK_INC = "pref_player_seek_back_inc" const val PREF_PLAYER_SEEK_FORWARD_INC = "pref_player_seek_forward_inc" From c67f6c265b059f8f461d8a91c185c9841e0c141d Mon Sep 17 00:00:00 2001 From: Cd16d <98320806+cd16b@users.noreply.github.com> Date: Sun, 28 Jan 2024 14:11:34 +0100 Subject: [PATCH 024/161] fix: pip remember zoom and auto-brightness (#638) --- .../dev/jdtech/jellyfin/PlayerActivity.kt | 25 ++++++++++++++----- .../jellyfin/utils/PlayerGestureHelper.kt | 4 +-- 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt b/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt index 84982dbb..33862cb3 100644 --- a/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt +++ b/app/phone/src/main/java/dev/jdtech/jellyfin/PlayerActivity.kt @@ -12,6 +12,7 @@ import android.media.AudioManager import android.os.Build import android.os.Bundle import android.os.Process +import android.provider.Settings import android.util.Rational import android.view.View import android.view.WindowManager @@ -27,7 +28,6 @@ import androidx.lifecycle.Lifecycle import androidx.lifecycle.lifecycleScope import androidx.lifecycle.repeatOnLifecycle import androidx.media3.common.C -import androidx.media3.ui.AspectRatioFrameLayout import androidx.media3.ui.DefaultTimeBar import androidx.media3.ui.PlayerView import androidx.navigation.navArgs @@ -35,7 +35,6 @@ import dagger.hilt.android.AndroidEntryPoint import dev.jdtech.jellyfin.databinding.ActivityPlayerBinding import dev.jdtech.jellyfin.dialogs.SpeedSelectionDialogFragment import dev.jdtech.jellyfin.dialogs.TrackSelectionDialogFragment -import dev.jdtech.jellyfin.mpv.MPVPlayer import dev.jdtech.jellyfin.utils.PlayerGestureHelper import dev.jdtech.jellyfin.utils.PreviewScrubListener import dev.jdtech.jellyfin.viewmodels.PlayerActivityViewModel @@ -309,10 +308,11 @@ class PlayerActivity : BasePlayerActivity() { binding.playerView.useController = false binding.playerView.findViewById