From 49bedd75ef912cf4f2a0d8b2656529088ce7ee48 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:22:54 -0600 Subject: [PATCH 001/389] Test --- app/build.gradle.kts | 2 -- gradle/libs.versions.toml | 2 +- library/build.gradle.kts | 2 +- 3 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2ac6ce466d0..745c2721ead 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,9 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.application") - id("kotlin-android") id("org.jetbrains.dokka") - } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ef6a8e7dcae..55abb272df6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ desugar_jdk_libs_nio = "2.1.5" dokkaGradlePlugin = "2.0.0" espressoCore = "3.7.0" fuzzywuzzy = "1.4.0" -gradle = "8.13.0" +gradle = "9.0.0-alpha13" jacksonModuleKotlin = "2.13.1" json = "20250517" junit = "4.13.2" diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 01d2a006491..c1e2e0ac73d 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -8,7 +8,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { kotlin("multiplatform") id("maven-publish") - id("com.android.library") + id("com.android.kotlin.multiplatform.library") id("com.codingfeline.buildkonfig") id("org.jetbrains.dokka") } From 10ba8c752a10bfcac9dd63474d817f66099bebfb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:34:58 -0600 Subject: [PATCH 002/389] Update build.gradle.kts --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 745c2721ead..56339cbac93 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -242,7 +242,7 @@ dependencies { tasks.register("androidSourcesJar") { archiveClassifier.set("sources") - from(android.sourceSets.getByName("main").java.srcDirs) // Full Sources + from(android.sourceSets.getByName("main").java.directories) // Full Sources } tasks.register("copyJar") { From b84cb8710084c9d48b361d9c30201469c921c2aa Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:38:16 -0600 Subject: [PATCH 003/389] Update libs.versions.toml --- 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 55abb272df6..a606f5b7963 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ conscryptAndroid = "2.5.2" constraintlayout = "2.2.1" coreKtx = "1.17.0" desugar_jdk_libs_nio = "2.1.5" -dokkaGradlePlugin = "2.0.0" +dokkaGradlePlugin = "2.1.0" espressoCore = "3.7.0" fuzzywuzzy = "1.4.0" gradle = "9.0.0-alpha13" From 62509a7a00f45873b2b4b6215417ed1018c294c2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:49:58 -0600 Subject: [PATCH 004/389] Update libs.versions.toml --- 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 a606f5b7963..d7f9e65e3ed 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ conscryptAndroid = "2.5.2" constraintlayout = "2.2.1" coreKtx = "1.17.0" desugar_jdk_libs_nio = "2.1.5" -dokkaGradlePlugin = "2.1.0" +dokkaGradlePlugin = "adam~kgp-2.2.20-compatibility-SNAPSHOT" espressoCore = "3.7.0" fuzzywuzzy = "1.4.0" gradle = "9.0.0-alpha13" From f06d75c293fbf699cae4d8c9858bb67acaa6958f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:52:40 -0600 Subject: [PATCH 005/389] Update libs.versions.toml --- 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 d7f9e65e3ed..a606f5b7963 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ conscryptAndroid = "2.5.2" constraintlayout = "2.2.1" coreKtx = "1.17.0" desugar_jdk_libs_nio = "2.1.5" -dokkaGradlePlugin = "adam~kgp-2.2.20-compatibility-SNAPSHOT" +dokkaGradlePlugin = "2.1.0" espressoCore = "3.7.0" fuzzywuzzy = "1.4.0" gradle = "9.0.0-alpha13" From 7c1988950e5bf575b9cca4e62750dd72e4a52609 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:54:28 -0600 Subject: [PATCH 006/389] Update build.gradle.kts --- app/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 56339cbac93..e610f284b7c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -238,6 +238,8 @@ dependencies { this.extra.set("isDebug", isDebug) }) + + dokka(project(":app:")) } tasks.register("androidSourcesJar") { From 4eef08febddf7858c611690594fcd44d5e30d0f4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:57:03 -0600 Subject: [PATCH 007/389] Update build.gradle.kts --- app/build.gradle.kts | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e610f284b7c..497b2b7310b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -238,8 +238,6 @@ dependencies { this.extra.set("isDebug", isDebug) }) - - dokka(project(":app:")) } tasks.register("androidSourcesJar") { @@ -282,7 +280,7 @@ tasks.withType { } } -dokka { +/*dokka { moduleName = "App" dokkaSourceSets { main { @@ -299,4 +297,4 @@ dokka { } } } -} +}*/ From 72cfa04f53c44c81465810e5563d652ac7c69174 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 11:59:54 -0600 Subject: [PATCH 008/389] Update build.gradle.kts --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 497b2b7310b..1630fdd960a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.application") - id("org.jetbrains.dokka") + // id("org.jetbrains.dokka") } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) From a38a25ca309abf7eaf2fcce6f16c41a377ab94e7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 12:04:34 -0600 Subject: [PATCH 009/389] Update build.gradle.kts --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1630fdd960a..32089593824 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -144,6 +144,7 @@ android { buildFeatures { buildConfig = true + resValues = true } namespace = "com.lagradost.cloudstream3" From 15ed59a2b87efe98a018bda92a695adaf61398dc Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 12:21:08 -0600 Subject: [PATCH 010/389] Update build.gradle.kts --- library/build.gradle.kts | 47 ++++++++++++++++------------------------ 1 file changed, 19 insertions(+), 28 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index c1e2e0ac73d..8d4742bb79c 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -17,7 +17,24 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) kotlin { version = "1.0.1" - androidTarget() + android { + // If this is the same com.lagradost.cloudstream3.R stops working + namespace = "com.lagradost.api" + compileSdk = libs.versions.compileSdk.get().toInt() + defaultConfig { + minSdk = libs.versions.minSdk.get().toInt() + } + withJava() + compileOptions { + sourceCompatibility = JavaVersion.toVersion(javaTarget.target) + targetCompatibility = JavaVersion.toVersion(javaTarget.target) + } + lint { + targetSdk = libs.versions.targetSdk.get().toInt() + } + manifest.srcFile("src/androidMain/AndroidManifest.xml") + } + jvm() compilerOptions { @@ -73,32 +90,6 @@ buildkonfig { } } -android { - compileSdk = libs.versions.compileSdk.get().toInt() - sourceSets["main"].manifest.srcFile("src/androidMain/AndroidManifest.xml") - - defaultConfig { - minSdk = libs.versions.minSdk.get().toInt() - } - - // If this is the same com.lagradost.cloudstream3.R stops working - namespace = "com.lagradost.api" - - compileOptions { - sourceCompatibility = JavaVersion.toVersion(javaTarget.target) - targetCompatibility = JavaVersion.toVersion(javaTarget.target) - } - - @Suppress("UnstableApiUsage") - testOptions { - targetSdk = libs.versions.targetSdk.get().toInt() - } - - lint { - targetSdk = libs.versions.targetSdk.get().toInt() - } -} - publishing { publications { withType { @@ -124,4 +115,4 @@ dokka { } } } -} \ No newline at end of file +} From 4aa52c9c2886a2f9efc76769c6ebbe3dbe1af1cb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 12:27:39 -0600 Subject: [PATCH 011/389] Update build.gradle.kts --- library/build.gradle.kts | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 8d4742bb79c..d84693bd5dc 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -21,18 +21,17 @@ kotlin { // If this is the same com.lagradost.cloudstream3.R stops working namespace = "com.lagradost.api" compileSdk = libs.versions.compileSdk.get().toInt() - defaultConfig { + /*defaultConfig { minSdk = libs.versions.minSdk.get().toInt() - } + }*/ withJava() - compileOptions { - sourceCompatibility = JavaVersion.toVersion(javaTarget.target) - targetCompatibility = JavaVersion.toVersion(javaTarget.target) + compilerOptions { + jvmTarget.set(javaTarget) } lint { targetSdk = libs.versions.targetSdk.get().toInt() } - manifest.srcFile("src/androidMain/AndroidManifest.xml") + // manifest.srcFile("src/androidMain/AndroidManifest.xml") } jvm() From a3d76ad6cd9964d152ff8422f5af90d9341cb64a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 12:32:21 -0600 Subject: [PATCH 012/389] Update pull_request.yml --- .github/workflows/pull_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index a4bac503742..c4bdcd8e7e4 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -8,10 +8,10 @@ jobs: steps: - uses: actions/checkout@v5 - - name: Set up JDK 17 + - name: Set up JDK 21 uses: actions/setup-java@v5 with: - java-version: '17' + java-version: '21' distribution: 'adopt' cache: gradle From 077f55166ac292c68d32948bb89ce2d900e5f6b7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 31 Oct 2025 12:33:12 -0600 Subject: [PATCH 013/389] Update build.gradle.kts --- library/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index d84693bd5dc..d9a637ecebd 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -21,9 +21,6 @@ kotlin { // If this is the same com.lagradost.cloudstream3.R stops working namespace = "com.lagradost.api" compileSdk = libs.versions.compileSdk.get().toInt() - /*defaultConfig { - minSdk = libs.versions.minSdk.get().toInt() - }*/ withJava() compilerOptions { jvmTarget.set(javaTarget) @@ -31,7 +28,6 @@ kotlin { lint { targetSdk = libs.versions.targetSdk.get().toInt() } - // manifest.srcFile("src/androidMain/AndroidManifest.xml") } jvm() From 75bd8d6e23159a5942d8a4a2eae280ab35a9ba43 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 14:36:41 -0700 Subject: [PATCH 014/389] Update --- .../syncproviders/providers/Addic7ed.kt | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt index a66002409f2..785bd822d18 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt @@ -92,14 +92,17 @@ class Addic7ed : SubtitleAPI() { } // 3rd case: found several or no results. Still in $HOST/search.php?search=title } else {// (response.url.contains("/search.php")) - downloadPage = hostDocument.select("table.tabel a").selectFirst({ - // tv series - if (seasonNum > 0) "a[href~=serie\\/.+\\/$seasonNum\\/$epNum\\/\\w]" - // movie + year - else if( yearNum > 0) "a[href~=movie\\/]:contains($yearNum)" - // movie - else "a[href~=movie\\/]" - }())?.attr("href")?.fixUrl() ?: return null + downloadPage = hostDocument + .select("table.tabel a") + .selectFirst( + when { + seasonNum > 0 -> "a[href~=serie\\/.+\\/$seasonNum\\/$epNum\\/\\w]" + yearNum > 0 -> "a[href~=movie\\/]:contains($yearNum)" + else -> "a[href~=movie\\/]" + } + ) + ?.attr("href") + ?.fixUrl() ?: return null } // filter download page by language. Do not work for movies :/ @@ -202,4 +205,4 @@ class Addic7ed : SubtitleAPI() { "zh-hans" to Pair("41", "Chinese (Simplified)"), "zh-hant" to Pair("24", "Chinese (Traditional)"), ) -} \ No newline at end of file +} From a5738c7561a37b1aa1d2a16de41d3358eda05d2d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 14:49:12 -0700 Subject: [PATCH 015/389] Update libs.versions.toml --- gradle/libs.versions.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a606f5b7963..97170eeecca 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -16,6 +16,7 @@ fuzzywuzzy = "1.4.0" gradle = "9.0.0-alpha13" jacksonModuleKotlin = "2.13.1" json = "20250517" +jsoup = "1.21.2" junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" @@ -74,6 +75,7 @@ gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" } jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jacksonModuleKotlin" } jetbrains-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePluginVersion" } json = { module = "org.json:json", version.ref = "json" } +jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } junit = { module = "junit:junit", version.ref = "junit" } junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "junitKtx" } juniversalchardet = { module = "com.github.albfernandez:juniversalchardet", version.ref = "juniversalchardet" } From 5a961be62a911a216064d553b2af248786cf8f72 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 14:50:52 -0700 Subject: [PATCH 016/389] Update build.gradle.kts --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 32089593824..74d0e6d18ce 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -203,6 +203,7 @@ dependencies { implementation(libs.qrcode.kotlin) // QR Code for PIN Auth on TV // Extensions & Other Libs + implementation(libs.jsoup) // HTML Parser implementation(libs.rhino) // Run JavaScript implementation(libs.quickjs) implementation(libs.fuzzywuzzy) // Library/Ext Searching with Levenshtein Distance From f1da4b42d8123378e7811cdb13b5b5b3e9219b84 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 14:57:09 -0700 Subject: [PATCH 017/389] - --- .../syncproviders/providers/Addic7ed.kt | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt index 785bd822d18..af2c65e442a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt @@ -92,17 +92,14 @@ class Addic7ed : SubtitleAPI() { } // 3rd case: found several or no results. Still in $HOST/search.php?search=title } else {// (response.url.contains("/search.php")) - downloadPage = hostDocument - .select("table.tabel a") - .selectFirst( - when { - seasonNum > 0 -> "a[href~=serie\\/.+\\/$seasonNum\\/$epNum\\/\\w]" - yearNum > 0 -> "a[href~=movie\\/]:contains($yearNum)" - else -> "a[href~=movie\\/]" - } - ) - ?.attr("href") - ?.fixUrl() ?: return null + downloadPage = hostDocument.select("table.tabel a").selectFirst({ + // tv series + if (seasonNum > 0) "a[href~=serie\\/.+\\/$seasonNum\\/$epNum\\/\\w]" + // movie + year + else if( yearNum > 0) "a[href~=movie\\/]:contains($yearNum)" + // movie + else "a[href~=movie\\/]" + }())?.attr("href")?.fixUrl() ?: return null } // filter download page by language. Do not work for movies :/ From 446f73df5ce2ae505d87731f56f3362cfe04a142 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 14:58:54 -0700 Subject: [PATCH 018/389] Update build.gradle.kts --- app/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 74d0e6d18ce..f69a63b7bc2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.application") - // id("org.jetbrains.dokka") + id("org.jetbrains.dokka") } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) @@ -282,7 +282,7 @@ tasks.withType { } } -/*dokka { +dokka { moduleName = "App" dokkaSourceSets { main { @@ -299,4 +299,4 @@ tasks.withType { } } } -}*/ +} From 1cdaa5386a036cb3fa50f547b482b64dcc5a6af3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 15:02:05 -0700 Subject: [PATCH 019/389] Update build.gradle.kts --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f69a63b7bc2..d86f499e04c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,6 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.application") + id("kotlin-android") id("org.jetbrains.dokka") } From ee211785fcc9b2cd6a8a6ac382855f6107518963 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 15:04:10 -0700 Subject: [PATCH 020/389] Update build.gradle.kts --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d86f499e04c..b2ae2e78d01 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.application") - id("kotlin-android") + id("kotlin-android") apply false id("org.jetbrains.dokka") } From 7bc30d7b9b05d5c07e5d504868bf825fbd5676c9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 15:07:09 -0700 Subject: [PATCH 021/389] Update build.gradle.kts --- app/build.gradle.kts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b2ae2e78d01..74d0e6d18ce 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,8 +6,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.application") - id("kotlin-android") apply false - id("org.jetbrains.dokka") + // id("org.jetbrains.dokka") } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) @@ -283,7 +282,7 @@ tasks.withType { } } -dokka { +/*dokka { moduleName = "App" dokkaSourceSets { main { @@ -300,4 +299,4 @@ dokka { } } } -} +}*/ From c833c93d37ce32118fae44f86a76f54e364e4e30 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 4 Nov 2025 15:19:02 -0700 Subject: [PATCH 022/389] Update build.gradle.kts --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index d9a637ecebd..8ef6a6e682e 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -49,6 +49,7 @@ kotlin { implementation(libs.jackson.module.kotlin) // JSON Parser implementation(libs.kotlinx.coroutines.core) implementation(libs.fuzzywuzzy) // Match Extractors + implementation(libs.jsoup) // HTML Parser implementation(libs.rhino) // Run JavaScript implementation(libs.newpipeextractor) implementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit From 6b09962a07af3e6273796592d9771be37d35351a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 11:04:48 -0700 Subject: [PATCH 023/389] Update --- gradle.properties | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle.properties b/gradle.properties index 8dd6a87fc8a..361eb9571e9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,6 +24,8 @@ android.nonTransitiveRClass=true org.gradle.caching=true org.gradle.configuration-cache=true +org.gradle.warning.mode=all + # Dokka Gradle plugin V1 is deprecated, and will be removed in Dokka version 2.1.0 org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled org.jetbrains.dokka.experimental.gradle.pluginMode.noWarn=true From 80e0bd76c3b9f6bb5bb22d0cc853edbea4a7f050 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 11:24:42 -0700 Subject: [PATCH 024/389] Update --- app/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6cf02028d5f..41405312253 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -261,6 +261,10 @@ tasks.register("makeJar") { archiveBaseName = "classes" } +tasks.named("assemble") { + dependsOn(tasks.getByName("makeJar")) +} + tasks.withType { compilerOptions { jvmTarget.set(javaTarget) From 20b0bff73394800da2f1afc38d571e597b8ccd8a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 11:28:58 -0700 Subject: [PATCH 025/389] Update --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 41405312253..081e92b26a4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -262,6 +262,7 @@ tasks.register("makeJar") { } tasks.named("assemble") { + dependsOn(tasks.getByName("androidSourcesJar")) dependsOn(tasks.getByName("makeJar")) } From 267adfec0deda0ed108f7ca2a9e97bf2cbf330b8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 11:32:58 -0700 Subject: [PATCH 026/389] stacktrace --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c4bdcd8e7e4..bb1b21f0bb2 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,7 +19,7 @@ jobs: run: chmod +x gradlew - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug + run: ./gradlew assemblePrereleaseDebug --stacktrace - name: Upload Artifact uses: actions/upload-artifact@v5 From 61c911cb2dc9673131fa1fb7695ba6ae46357aeb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 12:13:43 -0700 Subject: [PATCH 027/389] Try --- library/build.gradle.kts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 8ef6a6e682e..023d21c3082 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -6,11 +6,11 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { - kotlin("multiplatform") - id("maven-publish") - id("com.android.kotlin.multiplatform.library") - id("com.codingfeline.buildkonfig") - id("org.jetbrains.dokka") + kotlin("multiplatform") version "2.2.21" + // id("maven-publish") + id("com.android.kotlin.multiplatform.library") version "9.0.0-alpha13" + id("com.codingfeline.buildkonfig") version "0.17.1" + id("org.jetbrains.dokka") version "2.1.0" } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) From cba54b1a1205a9ab8abd3a4c0198cdf1dad4cc3b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 12:42:30 -0700 Subject: [PATCH 028/389] - --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index bb1b21f0bb2..c4bdcd8e7e4 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,7 +19,7 @@ jobs: run: chmod +x gradlew - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug --stacktrace + run: ./gradlew assemblePrereleaseDebug - name: Upload Artifact uses: actions/upload-artifact@v5 From 9b9e38b08fa641d1ee2d27d411acb4c194841601 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 12:43:49 -0700 Subject: [PATCH 029/389] - --- library/build.gradle.kts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 023d21c3082..8ef6a6e682e 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -6,11 +6,11 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { - kotlin("multiplatform") version "2.2.21" - // id("maven-publish") - id("com.android.kotlin.multiplatform.library") version "9.0.0-alpha13" - id("com.codingfeline.buildkonfig") version "0.17.1" - id("org.jetbrains.dokka") version "2.1.0" + kotlin("multiplatform") + id("maven-publish") + id("com.android.kotlin.multiplatform.library") + id("com.codingfeline.buildkonfig") + id("org.jetbrains.dokka") } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) From fbacb313eb1b4916fad91b44c9acd8bb2eaaa848 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 12:44:16 -0700 Subject: [PATCH 030/389] remove assemble --- app/build.gradle.kts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 081e92b26a4..6cf02028d5f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -261,11 +261,6 @@ tasks.register("makeJar") { archiveBaseName = "classes" } -tasks.named("assemble") { - dependsOn(tasks.getByName("androidSourcesJar")) - dependsOn(tasks.getByName("makeJar")) -} - tasks.withType { compilerOptions { jvmTarget.set(javaTarget) From 522da3ecf5278f31a43b1f7eb5de5e7456e944e2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 12:45:59 -0700 Subject: [PATCH 031/389] Update --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index 361eb9571e9..ba79e69bf0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,7 @@ android.nonTransitiveRClass=true org.gradle.caching=true org.gradle.configuration-cache=true -org.gradle.warning.mode=all +org.gradle.warning.mode=summary # Dokka Gradle plugin V1 is deprecated, and will be removed in Dokka version 2.1.0 org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled From d89f5c4e5a9cec1c0c7fd2e1ed9253acb5c38936 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 12:50:53 -0700 Subject: [PATCH 032/389] Update kotlin --- 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 3d850fe0dbf..50c093f2c90 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePluginVersion = "2.2.21" +kotlinGradlePluginVersion = "2.3.0-Beta2" kotlinxCoroutinesCore = "1.10.2" lifecycleLivedataKtx = "2.9.4" lifecycleViewmodelKtx = "2.9.4" From dfe0c433c815fb9bad874adb344853c3a99c2934 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 12:52:49 -0700 Subject: [PATCH 033/389] all --- gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index ba79e69bf0d..361eb9571e9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,7 @@ android.nonTransitiveRClass=true org.gradle.caching=true org.gradle.configuration-cache=true -org.gradle.warning.mode=summary +org.gradle.warning.mode=all # Dokka Gradle plugin V1 is deprecated, and will be removed in Dokka version 2.1.0 org.jetbrains.dokka.experimental.gradle.pluginMode=V2Enabled From c62e6d01f8e990b80a715c6b6a1da56d9b312c58 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 14:20:08 -0700 Subject: [PATCH 034/389] Update param --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6cf02028d5f..122e3ea326a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -265,7 +265,7 @@ tasks.withType { compilerOptions { jvmTarget.set(javaTarget) freeCompilerArgs.addAll( - "-Xjvm-default=all-compatibility", + "-jvm-default=all-compatibility", "-Xannotation-default-target=param-property", "-opt-in=com.lagradost.cloudstream3.Prerelease" ) From 5ac1cb8091600a5d99fc65b43e2cb6827a91e186 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 9 Nov 2025 14:33:50 -0700 Subject: [PATCH 035/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 122e3ea326a..1f907ee790e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -265,7 +265,7 @@ tasks.withType { compilerOptions { jvmTarget.set(javaTarget) freeCompilerArgs.addAll( - "-jvm-default=all-compatibility", + "-jvm-default=enable", "-Xannotation-default-target=param-property", "-opt-in=com.lagradost.cloudstream3.Prerelease" ) From 72d35a2e5d4492d4a9621159f86919d59b45e264 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 10:16:19 -0700 Subject: [PATCH 036/389] - --- .../lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt index 96a403c8ddb..144efff99ce 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/syncproviders/providers/Addic7ed.kt @@ -202,4 +202,4 @@ class Addic7ed : SubtitleAPI() { "zh-hans" to Pair("41", "Chinese (Simplified)"), "zh-hant" to Pair("24", "Chinese (Traditional)"), ) -} +} \ No newline at end of file From 4d78c8ca394bbd540f6a2afa8b641a4527c2bb8c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 10:33:37 -0700 Subject: [PATCH 037/389] Update --- .../lagradost/cloudstream3/extractors/AStreamHub.kt | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/AStreamHub.kt b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/AStreamHub.kt index 6119e6426ae..7c148178661 100644 --- a/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/AStreamHub.kt +++ b/library/src/commonMain/kotlin/com/lagradost/cloudstream3/extractors/AStreamHub.kt @@ -15,11 +15,10 @@ open class AStreamHub : ExtractorApi() { override suspend fun getUrl(url: String, referer: String?): List { val sources = mutableListOf() - app.get(url).document.selectFirst("body > script")?.let { script -> - val text = script.html() - Log.i("Dev", "text => $text") - if (text.isNotBlank()) { - val m3link = "(?<=file:)(.*)(?=,)".toRegex().find(text) + app.get(url).document.selectFirst("body > script")?.data()?.let { script -> + Log.i("Dev", "script => $script") + if (script.isNotBlank()) { + val m3link = "(?<=file:)(.*)(?=,)".toRegex().find(script) ?.groupValues?.get(0)?.trim()?.trim('"') ?: "" Log.i("Dev", "m3link => $m3link") if (m3link.isNotBlank()) { @@ -40,4 +39,4 @@ open class AStreamHub : ExtractorApi() { return sources } -} \ No newline at end of file +} From 4b9931002e06d51083a92cdd9c97ae451b3df48e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 11:00:06 -0700 Subject: [PATCH 038/389] 14 --- 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 50c093f2c90..343be333ec1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -13,7 +13,7 @@ desugar_jdk_libs_nio = "2.1.5" dokkaGradlePlugin = "2.1.0" espressoCore = "3.7.0" fuzzywuzzy = "1.4.0" -gradle = "9.0.0-alpha13" +gradle = "9.0.0-alpha14" jacksonModuleKotlin = { strictly = "2.13.1" } # Later versions don't support minSdk <26 (Crashes on Android TV's and FireSticks) json = "20250517" jsoup = "1.21.2" From 64b4951a7a25e64bfdbba0b125ff345b73247525 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 11:20:01 -0700 Subject: [PATCH 039/389] Update --- library/build.gradle.kts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 8ef6a6e682e..3c1cc4f513a 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -17,10 +17,12 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) kotlin { version = "1.0.1" - android { + androidLibrary { // If this is the same com.lagradost.cloudstream3.R stops working namespace = "com.lagradost.api" compileSdk = libs.versions.compileSdk.get().toInt() + minSdk = libs.versions.minSdk.get().toInt() + withJava() compilerOptions { jvmTarget.set(javaTarget) From 70d4a00ca687a4233e8e839b6d11d594c45f43df Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 11:30:32 -0700 Subject: [PATCH 040/389] Update --- library/build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 3c1cc4f513a..5d7b874d4aa 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -10,14 +10,14 @@ plugins { id("maven-publish") id("com.android.kotlin.multiplatform.library") id("com.codingfeline.buildkonfig") - id("org.jetbrains.dokka") + // id("org.jetbrains.dokka") } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) kotlin { version = "1.0.1" - androidLibrary { + android { // If this is the same com.lagradost.cloudstream3.R stops working namespace = "com.lagradost.api" compileSdk = libs.versions.compileSdk.get().toInt() @@ -96,7 +96,7 @@ publishing { } } -dokka { +/*dokka { moduleName = "Library" dokkaSourceSets { configureEach { @@ -113,4 +113,4 @@ dokka { } } } -} +}*/ From f2d0477feb38b2fd4aee10bc3c046c4e979bc7cb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:01:12 -0700 Subject: [PATCH 041/389] - --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 343be333ec1..269c6ad5025 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePluginVersion = "2.3.0-Beta2" +#kotlinGradlePluginVersion = "2.3.0-Beta2" kotlinxCoroutinesCore = "1.10.2" lifecycleLivedataKtx = "2.9.4" lifecycleViewmodelKtx = "2.9.4" @@ -73,7 +73,7 @@ ext-junit = { module = "androidx.test.ext:junit", version.ref = "junitVersion" } fuzzywuzzy = { module = "me.xdrop:fuzzywuzzy", version.ref = "fuzzywuzzy" } gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" } jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jacksonModuleKotlin" } -jetbrains-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePluginVersion" } +# jetbrains-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePluginVersion" } json = { module = "org.json:json", version.ref = "json" } jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } junit = { module = "junit:junit", version.ref = "junit" } From a0187b344269afcf33ed40e31f0693932c82431c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:02:37 -0700 Subject: [PATCH 042/389] - --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index cefb836d744..6c59940a5eb 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ buildscript { dependencies { classpath(libs.gradle) - classpath(libs.jetbrains.kotlin.gradle.plugin) + // classpath(libs.jetbrains.kotlin.gradle.plugin) classpath(libs.dokka.gradle.plugin) // Universal build config classpath(libs.buildkonfig.gradle.plugin) From 4401139e72337be7df18fe8792793498052e87ff Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:05:54 -0700 Subject: [PATCH 043/389] Update libs.versions.toml --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 269c6ad5025..343be333ec1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -#kotlinGradlePluginVersion = "2.3.0-Beta2" +kotlinGradlePluginVersion = "2.3.0-Beta2" kotlinxCoroutinesCore = "1.10.2" lifecycleLivedataKtx = "2.9.4" lifecycleViewmodelKtx = "2.9.4" @@ -73,7 +73,7 @@ ext-junit = { module = "androidx.test.ext:junit", version.ref = "junitVersion" } fuzzywuzzy = { module = "me.xdrop:fuzzywuzzy", version.ref = "fuzzywuzzy" } gradle = { module = "com.android.tools.build:gradle", version.ref = "gradle" } jackson-module-kotlin = { module = "com.fasterxml.jackson.module:jackson-module-kotlin", version.ref = "jacksonModuleKotlin" } -# jetbrains-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePluginVersion" } +jetbrains-kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePluginVersion" } json = { module = "org.json:json", version.ref = "json" } jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } junit = { module = "junit:junit", version.ref = "junit" } From be3168b76f5921ab4d03dbe955a9eec65c67e4fd Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:06:26 -0700 Subject: [PATCH 044/389] Update build.gradle.kts --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 6c59940a5eb..cefb836d744 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -6,7 +6,7 @@ buildscript { dependencies { classpath(libs.gradle) - // classpath(libs.jetbrains.kotlin.gradle.plugin) + classpath(libs.jetbrains.kotlin.gradle.plugin) classpath(libs.dokka.gradle.plugin) // Universal build config classpath(libs.buildkonfig.gradle.plugin) From d0c55040fbda9886239360d47b4deeada0132758 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:08:26 -0700 Subject: [PATCH 045/389] Update --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c4bdcd8e7e4..b4dcd973418 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,7 +19,9 @@ jobs: run: chmod +x gradlew - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug + run: | + ./gradlew assemblePrereleaseDebug build androidSourcesJar + ./gradlew makeJar # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact uses: actions/upload-artifact@v5 From 441639f6406a7711bbbdf1b1bc587d9eab70cf86 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:17:46 -0700 Subject: [PATCH 046/389] Update pull_request.yml --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b4dcd973418..73dcd3677aa 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -20,7 +20,7 @@ jobs: - name: Run Gradle run: | - ./gradlew assemblePrereleaseDebug build androidSourcesJar + ./gradlew assemblePrerelease build androidSourcesJar ./gradlew makeJar # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact From c6bdc724201da8e1e90f69f351a322479fdce39c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:38:46 -0700 Subject: [PATCH 047/389] Add assemble --- app/build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1f907ee790e..e4d6541ce33 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -261,6 +261,11 @@ tasks.register("makeJar") { archiveBaseName = "classes" } +tasks.named("assemblePrerelease") { + dependsOn(tasks.getByName("androidSourcesJar")) + dependsOn(tasks.getByName("makeJar")) +} + tasks.withType { compilerOptions { jvmTarget.set(javaTarget) From 8a0e5e2d8d81c4cb2225c70cc60876191feb5ec4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:45:59 -0700 Subject: [PATCH 048/389] Try --- app/build.gradle.kts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e4d6541ce33..115571048e5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -261,9 +261,8 @@ tasks.register("makeJar") { archiveBaseName = "classes" } -tasks.named("assemblePrerelease") { - dependsOn(tasks.getByName("androidSourcesJar")) - dependsOn(tasks.getByName("makeJar")) +tasks.named("assemble") { + dependsOn("androidSourcesJar", "makeJar") } tasks.withType { From 02975117ac5704071a331157f4e957e97b8a0215 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 12:56:50 -0700 Subject: [PATCH 049/389] Update --- app/build.gradle.kts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 115571048e5..445542e6b4c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -262,7 +262,9 @@ tasks.register("makeJar") { } tasks.named("assemble") { - dependsOn("androidSourcesJar", "makeJar") + dependsOn(tasks.getByName("androidSourcesJar")) + dependsOn(tasks.getByName("copyJar")) + dependsOn(tasks.getByName("makeJar")) } tasks.withType { From 30803953d8d5b96504d3f59eb8b8ed329df049cc Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:16:21 -0700 Subject: [PATCH 050/389] Update --- app/build.gradle.kts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 445542e6b4c..1f8263a19be 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -244,27 +244,28 @@ tasks.register("copyJar") { ) into("build/app-classes") include("classes.jar", "library-jvm*.jar") - // Remove the version - rename("library-jvm.*.jar", "library-jvm.jar") + rename("library-jvm.*.jar", "library-jvm.jar") // Remove version suffix } -// Merge the app classes and the library classes into classes.jar tasks.register("makeJar") { + description = "Merges app and library classes into one classes.jar" + group = "build" + // Duplicates cause hard to catch errors, better to fail at compile time. duplicatesStrategy = DuplicatesStrategy.FAIL - dependsOn(tasks.getByName("copyJar")) + dependsOn("assemble", "copyJar") + from( zipTree("build/app-classes/classes.jar"), zipTree("build/app-classes/library-jvm.jar") ) + destinationDirectory.set(layout.buildDirectory) - archiveBaseName = "classes" + archiveBaseName.set("classes") } tasks.named("assemble") { - dependsOn(tasks.getByName("androidSourcesJar")) - dependsOn(tasks.getByName("copyJar")) - dependsOn(tasks.getByName("makeJar")) + dependsOn("androidSourcesJar") } tasks.withType { From 58e3aef987cea3ad389fff9fb6d3915bdf8492bb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:28:07 -0700 Subject: [PATCH 051/389] Update build.gradle.kts --- library/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 5d7b874d4aa..112278c8426 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -7,7 +7,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { kotlin("multiplatform") - id("maven-publish") + // id("maven-publish") id("com.android.kotlin.multiplatform.library") id("com.codingfeline.buildkonfig") // id("org.jetbrains.dokka") @@ -88,13 +88,13 @@ buildkonfig { } } -publishing { +/*publishing { publications { withType { groupId = "com.lagradost.api" } } -} +}*/ /*dokka { moduleName = "Library" From 2fffb01ec888a5018f49134af9d88a8a7f3e8ea7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:31:42 -0700 Subject: [PATCH 052/389] Update build.gradle.kts --- library/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 112278c8426..7888630354e 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -32,7 +32,7 @@ kotlin { } } - jvm() + // jvm() compilerOptions { freeCompilerArgs.addAll( From e7ba767995fa23069888215807cb01ac1b208ac5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:38:03 -0700 Subject: [PATCH 053/389] Update build.gradle.kts --- library/build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 7888630354e..5d7b874d4aa 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -7,7 +7,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { kotlin("multiplatform") - // id("maven-publish") + id("maven-publish") id("com.android.kotlin.multiplatform.library") id("com.codingfeline.buildkonfig") // id("org.jetbrains.dokka") @@ -32,7 +32,7 @@ kotlin { } } - // jvm() + jvm() compilerOptions { freeCompilerArgs.addAll( @@ -88,13 +88,13 @@ buildkonfig { } } -/*publishing { +publishing { publications { withType { groupId = "com.lagradost.api" } } -}*/ +} /*dokka { moduleName = "Library" From b6b1377c7fab05c3afd70c72c22fc5e89ddce92a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:42:51 -0700 Subject: [PATCH 054/389] New task dependencies attempt --- app/build.gradle.kts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1f8263a19be..7f356064bf1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -232,12 +232,12 @@ dependencies { }) } -tasks.register("androidSourcesJar") { +val androidSourcesJar = tasks.register("androidSourcesJar") { archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } -tasks.register("copyJar") { +val copyJar = tasks.register("copyJar") { from( "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar", "../library/build/libs" @@ -247,13 +247,13 @@ tasks.register("copyJar") { rename("library-jvm.*.jar", "library-jvm.jar") // Remove version suffix } -tasks.register("makeJar") { +val makeJar = tasks.register("makeJar") { description = "Merges app and library classes into one classes.jar" group = "build" // Duplicates cause hard to catch errors, better to fail at compile time. duplicatesStrategy = DuplicatesStrategy.FAIL - dependsOn("assemble", "copyJar") + dependsOn(copyJar) from( zipTree("build/app-classes/classes.jar"), @@ -265,7 +265,8 @@ tasks.register("makeJar") { } tasks.named("assemble") { - dependsOn("androidSourcesJar") + dependsOn(androidSourcesJar) + finalizedBy(makeJar) } tasks.withType { From 44f00a49a5d839bb9505af8d7de2000b992c639a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:54:35 -0700 Subject: [PATCH 055/389] Use new build --- library/build.gradle.kts | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 5d7b874d4aa..78e02098ece 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -70,22 +70,25 @@ buildkonfig { exposeObjectWithName = "BuildConfig" defaultConfigs { - val isDebug = kotlin.runCatching { extra.get("isDebug") }.getOrNull() == true - if (isDebug) { - logger.quiet("Compiling library with debug flag") - } else { - logger.quiet("Compiling library with release flag") - } - buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", isDebug.toString()) - // Reads local.properties val localProperties = gradleLocalProperties(rootDir, project.providers) - buildConfigField( FieldSpec.Type.STRING, - "MDL_API_KEY", (System.getenv("MDL_API_KEY") ?: localProperties["mdl.key"]).toString() + "MDL_API_KEY", + (System.getenv("MDL_API_KEY") ?: localProperties["mdl.key"]).toString() ) } + + android { + buildTypes { + getByName("debug") { + buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "true") + } + getByName("release") { + buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "false") + } + } + } } publishing { From c6457f81a81cd6c800943942a487fe5b98d38a17 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:55:31 -0700 Subject: [PATCH 056/389] Update library dependency --- app/build.gradle.kts | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7f356064bf1..cc9ea26b454 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -220,16 +220,8 @@ dependencies { implementation(libs.work.runtime.ktx) implementation(libs.nicehttp) // HTTP Lib - implementation(project(":library") { - // There does not seem to be a good way of getting the android flavor. - val isDebug = gradle.startParameter.taskRequests.any { task -> - task.args.any { arg -> - arg.contains("debug", true) - } - } - - this.extra.set("isDebug", isDebug) - }) + debugImplementation(project(":library")) + releaseImplementation(project(":library")) } val androidSourcesJar = tasks.register("androidSourcesJar") { From 0ce5ce8e2682aaba46f13cc0f0fe9b47824c1a30 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 13:56:59 -0700 Subject: [PATCH 057/389] Logger --- library/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 78e02098ece..ca8a21646a4 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -83,9 +83,11 @@ buildkonfig { buildTypes { getByName("debug") { buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "true") + logger.quiet("Compiling library with debug flag") } getByName("release") { buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "false") + logger.quiet("Compiling library with release flag") } } } From 782ba17ce61ad30d5c7e08dd71983e2ab0c62a13 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:01:18 -0700 Subject: [PATCH 058/389] Try again --- library/build.gradle.kts | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index ca8a21646a4..2700f556a85 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -17,6 +17,7 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) kotlin { version = "1.0.1" + android { // If this is the same com.lagradost.cloudstream3.R stops working namespace = "com.lagradost.api" @@ -30,6 +31,8 @@ kotlin { lint { targetSdk = libs.versions.targetSdk.get().toInt() } + + publishLibraryVariants("debug", "release") } jvm() @@ -56,6 +59,9 @@ kotlin { implementation(libs.newpipeextractor) implementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit } + + val androidDebug by getting + val androidRelease by getting } } @@ -79,16 +85,14 @@ buildkonfig { ) } - android { - buildTypes { - getByName("debug") { - buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "true") - logger.quiet("Compiling library with debug flag") - } - getByName("release") { - buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "false") - logger.quiet("Compiling library with release flag") - } + sourceSets { + val androidDebug by getting { + buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "true") + logger.quiet("Compiling library with debug flag") + } + val androidRelease by getting { + buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "false") + logger.quiet("Compiling library with release flag") } } } From 98a62427d2d639ffdf2ec1c91c7ed6a430e47e3f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:06:05 -0700 Subject: [PATCH 059/389] - --- library/build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 2700f556a85..372145b8d77 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -31,8 +31,6 @@ kotlin { lint { targetSdk = libs.versions.targetSdk.get().toInt() } - - publishLibraryVariants("debug", "release") } jvm() From 3e043a741d0010f4c9e2997202d28aa6e6ca65e6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:09:19 -0700 Subject: [PATCH 060/389] Try again --- library/build.gradle.kts | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 372145b8d77..7390170e29b 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -83,15 +83,20 @@ buildkonfig { ) } - sourceSets { - val androidDebug by getting { - buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "true") - logger.quiet("Compiling library with debug flag") - } - val androidRelease by getting { - buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "false") - logger.quiet("Compiling library with release flag") - } + target( + name = "androidDebug", + sourceSets = listOf("androidDebug") + ) { + buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "true") + logger.quiet("Compiling library with debug flag") + } + + target( + name = "androidRelease", + sourceSets = listOf("androidRelease") + ) { + buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "false") + logger.quiet("Compiling library with release flag") } } From 3325d654639d5b611c6f338e85fe92355f0f47bb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:13:27 -0700 Subject: [PATCH 061/389] - --- library/build.gradle.kts | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 7390170e29b..aacd05a18ce 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -57,9 +57,6 @@ kotlin { implementation(libs.newpipeextractor) implementation(libs.tmdb.java) // TMDB API v3 Wrapper Made with RetroFit } - - val androidDebug by getting - val androidRelease by getting } } @@ -82,22 +79,6 @@ buildkonfig { (System.getenv("MDL_API_KEY") ?: localProperties["mdl.key"]).toString() ) } - - target( - name = "androidDebug", - sourceSets = listOf("androidDebug") - ) { - buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "true") - logger.quiet("Compiling library with debug flag") - } - - target( - name = "androidRelease", - sourceSets = listOf("androidRelease") - ) { - buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", "false") - logger.quiet("Compiling library with release flag") - } } publishing { From d30573f18bd99c4803e27a474fd6849c4cc2f3be Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:17:00 -0700 Subject: [PATCH 062/389] Update build.gradle.kts --- library/build.gradle.kts | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index aacd05a18ce..34d1e5cb13e 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -71,6 +71,14 @@ buildkonfig { exposeObjectWithName = "BuildConfig" defaultConfigs { + val isDebug = kotlin.runCatching { extra.get("isDebug") }.getOrNull() == true + if (isDebug) { + logger.quiet("Compiling library with debug flag") + } else { + logger.quiet("Compiling library with release flag") + } + buildConfigField(FieldSpec.Type.BOOLEAN, "DEBUG", isDebug.toString()) + // Reads local.properties val localProperties = gradleLocalProperties(rootDir, project.providers) buildConfigField( From b26e134f39979fa1073fb72cc892af0690c1bc1e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:18:37 -0700 Subject: [PATCH 063/389] Try --- app/build.gradle.kts | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cc9ea26b454..118769ac9e6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -220,8 +220,16 @@ dependencies { implementation(libs.work.runtime.ktx) implementation(libs.nicehttp) // HTTP Lib - debugImplementation(project(":library")) - releaseImplementation(project(":library")) + implementation(project(":library") { + // There does not seem to be a good way of getting the android flavor. + val isDebug = gradle.startParameter.taskRequests.any { task -> + task.args.any { arg -> + arg.contains("debug", true) + } + } + + this.extra.set("isDebug", isDebug) + }) } val androidSourcesJar = tasks.register("androidSourcesJar") { @@ -256,6 +264,12 @@ val makeJar = tasks.register("makeJar") { archiveBaseName.set("classes") } +configurations { + consumable("classes") { + outgoing.artifact(makeJar) + } +} + tasks.named("assemble") { dependsOn(androidSourcesJar) finalizedBy(makeJar) From 3201c8dd9e1658a969f091dc2473cd49f5329ff9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:25:13 -0700 Subject: [PATCH 064/389] Update --- app/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 118769ac9e6..d06eadce042 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -265,6 +265,9 @@ val makeJar = tasks.register("makeJar") { } configurations { + consumable("sources") { + outgoing.artifact(androidSourcesJar) + } consumable("classes") { outgoing.artifact(makeJar) } From 806caed789807cae83d9bf7b90d054566ee44435 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:34:53 -0700 Subject: [PATCH 065/389] remove assemble --- app/build.gradle.kts | 33 ++++++++------------------------- 1 file changed, 8 insertions(+), 25 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d06eadce042..1f907ee790e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -232,50 +232,33 @@ dependencies { }) } -val androidSourcesJar = tasks.register("androidSourcesJar") { +tasks.register("androidSourcesJar") { archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } -val copyJar = tasks.register("copyJar") { +tasks.register("copyJar") { from( "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar", "../library/build/libs" ) into("build/app-classes") include("classes.jar", "library-jvm*.jar") - rename("library-jvm.*.jar", "library-jvm.jar") // Remove version suffix + // Remove the version + rename("library-jvm.*.jar", "library-jvm.jar") } -val makeJar = tasks.register("makeJar") { - description = "Merges app and library classes into one classes.jar" - group = "build" - +// Merge the app classes and the library classes into classes.jar +tasks.register("makeJar") { // Duplicates cause hard to catch errors, better to fail at compile time. duplicatesStrategy = DuplicatesStrategy.FAIL - dependsOn(copyJar) - + dependsOn(tasks.getByName("copyJar")) from( zipTree("build/app-classes/classes.jar"), zipTree("build/app-classes/library-jvm.jar") ) - destinationDirectory.set(layout.buildDirectory) - archiveBaseName.set("classes") -} - -configurations { - consumable("sources") { - outgoing.artifact(androidSourcesJar) - } - consumable("classes") { - outgoing.artifact(makeJar) - } -} - -tasks.named("assemble") { - dependsOn(androidSourcesJar) - finalizedBy(makeJar) + archiveBaseName = "classes" } tasks.withType { From 1b1468dff07783fee58f14e6b728f65f84cc39e0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 10 Nov 2025 14:35:43 -0700 Subject: [PATCH 066/389] - --- .github/workflows/pull_request.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 73dcd3677aa..c4bdcd8e7e4 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,9 +19,7 @@ jobs: run: chmod +x gradlew - name: Run Gradle - run: | - ./gradlew assemblePrerelease build androidSourcesJar - ./gradlew makeJar # for classes.jar, has to be done after assemblePrerelease + run: ./gradlew assemblePrereleaseDebug - name: Upload Artifact uses: actions/upload-artifact@v5 From 3de0e8a684723c1a2803475932a1ee64b60a71ae Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 13 Nov 2025 14:40:42 -0700 Subject: [PATCH 067/389] Use beta --- 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 3ccc1321fa9..531312e3bde 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] acraCore = "5.13.1" activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-alpha14" +androidGradlePlugin = "9.0.0-beta01" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From 49a9deabb23c1fdb162c4ce7a68d58b0f704f7c7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 18 Nov 2025 18:53:03 -0700 Subject: [PATCH 068/389] Update --- 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 bfa563d8729..ba54b9e9df5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -21,7 +21,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.0-Beta2" +kotlinGradlePlugin = "2.3.0-RC" kotlinxCoroutinesCore = "1.10.2" lifecycleLivedataKtx = "2.9.4" lifecycleViewmodelKtx = "2.9.4" From 4009ef0da546372719522952dd361898a708f939 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:21:16 -0700 Subject: [PATCH 069/389] Try --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 70556641c17..fd9f0a64965 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -275,6 +275,7 @@ tasks.withType { freeCompilerArgs.addAll( "-jvm-default=enable", "-Xannotation-default-target=param-property", + "-Xreport-perf", "-opt-in=com.lagradost.cloudstream3.Prerelease" ) } From a0ea9037e68905465a4173a92feb3dcc6359215c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:21:45 -0700 Subject: [PATCH 070/389] Try --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 34d1e5cb13e..0f708b05f73 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -38,6 +38,7 @@ kotlin { compilerOptions { freeCompilerArgs.addAll( "-Xexpect-actual-classes", + "-Xreport-perf", "-Xannotation-default-target=param-property" ) } From cf02a053d95e444b8e6c7028e500ef75d59157d8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:32:02 -0700 Subject: [PATCH 071/389] Try --- library/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 0f708b05f73..b3b739ca142 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -36,9 +36,9 @@ kotlin { jvm() compilerOptions { + progressiveMode.set(true) freeCompilerArgs.addAll( "-Xexpect-actual-classes", - "-Xreport-perf", "-Xannotation-default-target=param-property" ) } From 9667661a01c106baa17e8fd2e40871ed9f788696 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 20 Nov 2025 15:32:40 -0700 Subject: [PATCH 072/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index fd9f0a64965..c915de4dc7f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -272,10 +272,10 @@ tasks.register("makeJar") { tasks.withType { compilerOptions { jvmTarget.set(javaTarget) + progressiveMode.set(true) freeCompilerArgs.addAll( "-jvm-default=enable", "-Xannotation-default-target=param-property", - "-Xreport-perf", "-opt-in=com.lagradost.cloudstream3.Prerelease" ) } From f695052824c85c6b6721845116d5f74f09da650a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 14:15:45 -0700 Subject: [PATCH 073/389] - --- library/build.gradle.kts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index b3b739ca142..7e717f40827 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -10,7 +10,7 @@ plugins { id("maven-publish") id("com.android.kotlin.multiplatform.library") id("com.codingfeline.buildkonfig") - // id("org.jetbrains.dokka") + id("org.jetbrains.dokka") } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) @@ -36,7 +36,6 @@ kotlin { jvm() compilerOptions { - progressiveMode.set(true) freeCompilerArgs.addAll( "-Xexpect-actual-classes", "-Xannotation-default-target=param-property" @@ -98,7 +97,7 @@ publishing { } } -/*dokka { +dokka { moduleName = "Library" dokkaSourceSets { configureEach { @@ -115,4 +114,4 @@ publishing { } } } -}*/ +} From 39d4b1c1ebb1130c724d6bbf36488d96ae98861d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 14:17:26 -0700 Subject: [PATCH 074/389] Update --- app/build.gradle.kts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c915de4dc7f..97f95bea806 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,6 +1,7 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties import org.jetbrains.dokka.gradle.engine.parameters.KotlinPlatform import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier +import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile @@ -272,12 +273,9 @@ tasks.register("makeJar") { tasks.withType { compilerOptions { jvmTarget.set(javaTarget) - progressiveMode.set(true) - freeCompilerArgs.addAll( - "-jvm-default=enable", - "-Xannotation-default-target=param-property", - "-opt-in=com.lagradost.cloudstream3.Prerelease" - ) + jvmDefault.set(JvmDefaultMode.ENABLE) + optIn.add("com.lagradost.cloudstream3.Prerelease") + freeCompilerArgs.add("-Xannotation-default-target=param-property") } } From 4bbac93f0ebc5042ff9f0531db46e9f5886c295f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 14:41:05 -0700 Subject: [PATCH 075/389] Try --- .github/workflows/pull_request.yml | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c4bdcd8e7e4..841b2666e90 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -26,3 +26,24 @@ jobs: with: name: pull-request-build path: "app/build/outputs/apk/prerelease/debug/*.apk" + + deploy-gh-pages: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v5 + + - name: Copy Problems Report + run: | + BRANCH_NAME=${GITHUB_REF#refs/heads/} + TARGET_DIR=gh-pages/$BRANCH_NAME + mkdir -p $TARGET_DIR + cp -r build/reports/problems/* $TARGET_DIR/ + + - name: Deploy to GitHub Pages + uses: peaceiris/actions-gh-pages@v6 + with: + github_token: ${{ secrets.GITHUB_TOKEN }} + publish_dir: ./gh-pages + user_name: "github-actions" + user_email: "github-actions@github.com" + commit_message: "Update problems report for ${{ github.ref_name }} [ci skip]" From 722d603d127ddcf145e5989236fe40a504e4908f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 14:43:11 -0700 Subject: [PATCH 076/389] Fix --- .github/workflows/pull_request.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 841b2666e90..5eb81ac2256 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -28,6 +28,7 @@ jobs: path: "app/build/outputs/apk/prerelease/debug/*.apk" deploy-gh-pages: + needs: build runs-on: ubuntu-latest steps: - uses: actions/checkout@v5 @@ -40,7 +41,7 @@ jobs: cp -r build/reports/problems/* $TARGET_DIR/ - name: Deploy to GitHub Pages - uses: peaceiris/actions-gh-pages@v6 + uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} publish_dir: ./gh-pages From 0efe4038dbe4327b0b5a06e92d77cd1500eba9fa Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 14:48:56 -0700 Subject: [PATCH 077/389] Fix --- .github/workflows/pull_request.yml | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 5eb81ac2256..13211796f12 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -27,20 +27,15 @@ jobs: name: pull-request-build path: "app/build/outputs/apk/prerelease/debug/*.apk" - deploy-gh-pages: - needs: build - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v5 - - - name: Copy Problems Report + - name: Deploy Problems Report to GH Pages run: | BRANCH_NAME=${GITHUB_REF#refs/heads/} TARGET_DIR=gh-pages/$BRANCH_NAME mkdir -p $TARGET_DIR cp -r build/reports/problems/* $TARGET_DIR/ + shell: bash - - name: Deploy to GitHub Pages + - name: Push to GitHub Pages uses: peaceiris/actions-gh-pages@v4 with: github_token: ${{ secrets.GITHUB_TOKEN }} From 994843fc57ba3c42350a4f9972e0adef38a81e20 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 14:59:46 -0700 Subject: [PATCH 078/389] Try --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 13211796f12..ecc72ac4c2f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,7 +19,9 @@ jobs: run: chmod +x gradlew - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug + run: | + gradle help --scan + ./gradlew assemblePrereleaseDebug - name: Upload Artifact uses: actions/upload-artifact@v5 From f81c8f1d4805ee8b3ddc8c40a3a51cda4aba73c7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:07:11 -0700 Subject: [PATCH 079/389] Try --- .github/workflows/pull_request.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index ecc72ac4c2f..b79e614cdf6 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -18,10 +18,11 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + - name: Run Gradle - run: | - gradle help --scan - ./gradlew assemblePrereleaseDebug + run: ./gradlew assemblePrereleaseDebug - name: Upload Artifact uses: actions/upload-artifact@v5 From 188413662dc5128edda4cdd1094fa5753217d295 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:17:04 -0700 Subject: [PATCH 080/389] Fix --- .github/workflows/pull_request.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b79e614cdf6..0fca3cc3957 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -13,13 +13,14 @@ jobs: with: java-version: '21' distribution: 'adopt' - cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - name: Run Gradle run: ./gradlew assemblePrereleaseDebug From 171a7da6e9bfb0eb63815e0ee222c1dc85ad8f92 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:24:32 -0700 Subject: [PATCH 081/389] . --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 0fca3cc3957..435bea3be22 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -22,6 +22,7 @@ jobs: with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} + - name: Run Gradle run: ./gradlew assemblePrereleaseDebug From 04790584c19a251efad4d11564a7af488f36b08f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:27:19 -0700 Subject: [PATCH 082/389] Fix --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 435bea3be22..c785f983e5c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -21,7 +21,7 @@ jobs: uses: gradle/actions/setup-gradle@v5 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - + cache-read-only: false - name: Run Gradle run: ./gradlew assemblePrereleaseDebug From b56ed9b0632df3307fc568aecfa264c6c1ab69ac Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:37:24 -0700 Subject: [PATCH 083/389] test --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97f95bea806..4f44e11b06a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -241,7 +241,7 @@ dependencies { }) } -tasks.register("androidSourcesJar") { +/*tasks.register("androidSourcesJar") { archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } @@ -268,7 +268,7 @@ tasks.register("makeJar") { ) destinationDirectory.set(layout.buildDirectory) archiveBaseName = "classes" -} +}*/ tasks.withType { compilerOptions { From 9b61932ee258fb4164b966f6f03698b2db5a0f32 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:42:13 -0700 Subject: [PATCH 084/389] - --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4f44e11b06a..97f95bea806 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -241,7 +241,7 @@ dependencies { }) } -/*tasks.register("androidSourcesJar") { +tasks.register("androidSourcesJar") { archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } @@ -268,7 +268,7 @@ tasks.register("makeJar") { ) destinationDirectory.set(layout.buildDirectory) archiveBaseName = "classes" -}*/ +} tasks.withType { compilerOptions { From 8f0d49f0277cd7bd1811c69404cc96d8e64c6cc3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 15:50:17 -0700 Subject: [PATCH 085/389] test --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c785f983e5c..aa0ba48ba1b 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -23,6 +23,7 @@ jobs: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} cache-read-only: false + - name: Run Gradle run: ./gradlew assemblePrereleaseDebug From a9b3b738f4e2c60b0d2ea204e4eaf2830ea6f945 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:01:39 -0700 Subject: [PATCH 086/389] Update --- .github/workflows/pull_request.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index aa0ba48ba1b..821dd8c1e45 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -23,9 +23,8 @@ jobs: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} cache-read-only: false - - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug + run: gradle assemblePrereleaseDebug - name: Upload Artifact uses: actions/upload-artifact@v5 From f20da290866a95e652c6d58fa5b3bfd4775cd82f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:25:28 -0700 Subject: [PATCH 087/389] Update --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 821dd8c1e45..af6597b11cd 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -22,6 +22,7 @@ jobs: with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} cache-read-only: false + gradle-version: 9.2.1 - name: Run Gradle run: gradle assemblePrereleaseDebug From 9da32c15aeabcd047dd45ed55675631af9d57b49 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:29:32 -0700 Subject: [PATCH 088/389] Try --- .github/workflows/pull_request.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index af6597b11cd..4767b81bbec 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -17,12 +17,18 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew + - name: Get Gradle version + id: wrapper + run: | + VERSION=$(grep -oP 'gradle-\K[0-9\.]+' gradle/wrapper/gradle-wrapper.properties) + echo "gradle_version=$VERSION" >> $GITHUB_OUTPUT + - name: Setup Gradle uses: gradle/actions/setup-gradle@v5 with: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} cache-read-only: false - gradle-version: 9.2.1 + gradle-version: ${{ steps.wrapper.outputs.gradle_version }} - name: Run Gradle run: gradle assemblePrereleaseDebug From e665fb528940fa9c70509f437755c77eae74949e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:48:05 -0700 Subject: [PATCH 089/389] Try new git commit task --- app/build.gradle.kts | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97f95bea806..b84b9e46854 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,26 +14,34 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -fun getGitCommitHash(): String { - return try { - val headFile = file("${project.rootDir}/.git/HEAD") - - // Read the commit hash from .git/HEAD - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = file("${project.rootDir}/.git/$refPath") +abstract class GenerateGitHashTask : DefaultTask() { + @get:OutputFile + abstract val outputFile: RegularFileProperty + + @TaskAction + fun run() { + val head = project.file(".git/HEAD") + val hash = if (head.exists()) { + val text = head.readText().trim() + if (text.startsWith("ref:")) { + val ref = text.removePrefix("ref:").trim() + val commitFile = project.file(".git/$ref") if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent // If it's a detached HEAD (commit hash directly) - } else { - "" // If .git/HEAD doesn't exist - }.take(7) // Return the short commit hash - } catch (_: Throwable) { - "" // Just return an empty string if any exception occurs + } else text + } else "" + + outputFile.get().asFile.writeText(hash.take(7)) } } +val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { + outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) +} + +val commitHashProvider = generateGitHash.map { + it.outputFile.get().asFile.readText().trim() +} + android { @Suppress("UnstableApiUsage") testOptions { @@ -65,7 +73,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", getGitCommitHash()) + resValue("string", "commit_hash", commitHashProvider.orElse("").get()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 0feb2fc792eed245021b5186b5637f5843896147 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:50:26 -0700 Subject: [PATCH 090/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b84b9e46854..901c7b02557 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -20,7 +20,7 @@ abstract class GenerateGitHashTask : DefaultTask() { @TaskAction fun run() { - val head = project.file(".git/HEAD") + val head = file("${project.rootDir}/.git/HEAD") val hash = if (head.exists()) { val text = head.readText().trim() if (text.startsWith("ref:")) { From 00338ce6e4998013daa99073142f1135c142544a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:57:22 -0700 Subject: [PATCH 091/389] Fix --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 901c7b02557..2571df849a7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,7 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() +@CacheableTask abstract class GenerateGitHashTask : DefaultTask() { @get:OutputFile abstract val outputFile: RegularFileProperty From 33a3106b3966083905e30e63a1d11756efbc5a50 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 16:59:58 -0700 Subject: [PATCH 092/389] Add --- .../src/main/kotlin/GenerateGitHashTask.kt | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 buildSrc/src/main/kotlin/GenerateGitHashTask.kt diff --git a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt new file mode 100644 index 00000000000..443f7171aab --- /dev/null +++ b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt @@ -0,0 +1,25 @@ +import org.gradle.api.DefaultTask +import org.gradle.api.file.RegularFileProperty +import org.gradle.api.tasks.OutputFile +import org.gradle.api.tasks.TaskAction + +abstract class GenerateGitHashTask : DefaultTask() { + + @get:OutputFile + abstract val outputFile: RegularFileProperty + + @TaskAction + fun run() { + val head = project.layout.projectDirectory.file(".git/HEAD").asFile + val hash = if (head.exists()) { + val text = head.readText().trim() + if (text.startsWith("ref:")) { + val ref = text.removePrefix("ref:").trim() + val commitFile = project.layout.projectDirectory.file(".git/$ref").asFile + if (commitFile.exists()) commitFile.readText().trim() else "" + } else text + } else "" + + outputFile.get().asFile.writeText(hash.take(7)) + } +} From 9c20bb09dc56d3235536003095ba0b5bd69c0b51 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:00:23 -0700 Subject: [PATCH 093/389] Remove --- app/build.gradle.kts | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2571df849a7..59987829bb1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,27 +14,6 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -@CacheableTask -abstract class GenerateGitHashTask : DefaultTask() { - @get:OutputFile - abstract val outputFile: RegularFileProperty - - @TaskAction - fun run() { - val head = file("${project.rootDir}/.git/HEAD") - val hash = if (head.exists()) { - val text = head.readText().trim() - if (text.startsWith("ref:")) { - val ref = text.removePrefix("ref:").trim() - val commitFile = project.file(".git/$ref") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else text - } else "" - - outputFile.get().asFile.writeText(hash.take(7)) - } -} - val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) } From 2c4effbadcb177998d36218455edde2283a3d864 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:06:33 -0700 Subject: [PATCH 094/389] Try --- app/build.gradle.kts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 59987829bb1..bcb5ff8ebd0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,8 +14,25 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { +/*val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) +}*/ +val generateGitHash = tasks.register("generateGitHash") { + val outputFile = layout.buildDirectory.file("generated/git/commit-hash.txt") + + doLast { + val head = file("${project.rootDir}/.git/HEAD") + val hash = if (head.exists()) { + val text = head.readText().trim() + if (text.startsWith("ref:")) { + val ref = text.removePrefix("ref:").trim() + val commitFile = file("${project.rootDir}/.git/$ref") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else text + } else "" + + outputFile.get().asFile.writeText(hash.take(7)) + } } val commitHashProvider = generateGitHash.map { From 44f7d8adab12897c37162ad552e9c442f27cd3e0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:27:20 -0700 Subject: [PATCH 095/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bcb5ff8ebd0..770d2088fb3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -31,7 +31,7 @@ val generateGitHash = tasks.register("generateGitHash") { } else text } else "" - outputFile.get().asFile.writeText(hash.take(7)) + it.outputFile.get().asFile.writeText(hash.take(7)) } } From 08e3f45aa982654f887a5c7c5c4fb88411d134c1 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:30:07 -0700 Subject: [PATCH 096/389] Fix again --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 770d2088fb3..a4c09bdc6c7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -31,12 +31,12 @@ val generateGitHash = tasks.register("generateGitHash") { } else text } else "" - it.outputFile.get().asFile.writeText(hash.take(7)) + outputFile.get().asFile.writeText(hash.take(7)) } } val commitHashProvider = generateGitHash.map { - it.outputFile.get().asFile.readText().trim() + layout.buildDirectory.file("generated/git/commit-hash.txt").asFile.readText().trim() } android { From ebd4a37b676dac3b6aabaea9f9cd340a7ea7e419 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:31:49 -0700 Subject: [PATCH 097/389] Fix... --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a4c09bdc6c7..cba8017c49d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -36,7 +36,7 @@ val generateGitHash = tasks.register("generateGitHash") { } val commitHashProvider = generateGitHash.map { - layout.buildDirectory.file("generated/git/commit-hash.txt").asFile.readText().trim() + layout.buildDirectory.file("generated/git/commit-hash.txt").readText().trim() } android { From f3b7bf50e1f76613363ca647f039e9c8bc463d04 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:38:54 -0700 Subject: [PATCH 098/389] Again --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cba8017c49d..d6c54ffa9c3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -36,7 +36,7 @@ val generateGitHash = tasks.register("generateGitHash") { } val commitHashProvider = generateGitHash.map { - layout.buildDirectory.file("generated/git/commit-hash.txt").readText().trim() + file("${layout.buildDirectory.get().asFile}/generated/git/commit-hash.txt").readText().trim() } android { From 482f6039999903d4eb7163b047933caf8722ae7f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:41:27 -0700 Subject: [PATCH 099/389] Back again --- app/build.gradle.kts | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d6c54ffa9c3..5621f6738c5 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,10 +14,10 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -/*val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { +val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) -}*/ -val generateGitHash = tasks.register("generateGitHash") { +} +/*val generateGitHash = tasks.register("generateGitHash") { val outputFile = layout.buildDirectory.file("generated/git/commit-hash.txt") doLast { @@ -33,10 +33,11 @@ val generateGitHash = tasks.register("generateGitHash") { outputFile.get().asFile.writeText(hash.take(7)) } -} +}*/ val commitHashProvider = generateGitHash.map { - file("${layout.buildDirectory.get().asFile}/generated/git/commit-hash.txt").readText().trim() + // file("${layout.buildDirectory.get().asFile}/generated/git/commit-hash.txt").readText().trim() + it.outputFile.get().asFile.readText().trim() } android { From 243d23ae283c5117ef60620dc7d563de7dbf1587 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:42:03 -0700 Subject: [PATCH 100/389] - --- .github/workflows/pull_request.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 4767b81bbec..23673cf64b3 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -23,12 +23,12 @@ jobs: VERSION=$(grep -oP 'gradle-\K[0-9\.]+' gradle/wrapper/gradle-wrapper.properties) echo "gradle_version=$VERSION" >> $GITHUB_OUTPUT - - name: Setup Gradle - uses: gradle/actions/setup-gradle@v5 - with: - cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - cache-read-only: false - gradle-version: ${{ steps.wrapper.outputs.gradle_version }} + #- name: Setup Gradle + #uses: gradle/actions/setup-gradle@v5 + # with: + # cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} + # cache-read-only: false + # gradle-version: ${{ steps.wrapper.outputs.gradle_version }} - name: Run Gradle run: gradle assemblePrereleaseDebug From 90cc5c09d36f6e8ffeaae9fb73d16b149e27ef43 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:51:40 -0700 Subject: [PATCH 101/389] Fix --- .github/workflows/pull_request.yml | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 23673cf64b3..48ac0e16cab 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -17,21 +17,17 @@ jobs: - name: Grant execute permission for gradlew run: chmod +x gradlew - - name: Get Gradle version - id: wrapper - run: | - VERSION=$(grep -oP 'gradle-\K[0-9\.]+' gradle/wrapper/gradle-wrapper.properties) - echo "gradle_version=$VERSION" >> $GITHUB_OUTPUT + - name: Setup Gradle + uses: gradle/actions/setup-gradle@v5 + with: + cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} + cache-read-only: false - #- name: Setup Gradle - #uses: gradle/actions/setup-gradle@v5 - # with: - # cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} - # cache-read-only: false - # gradle-version: ${{ steps.wrapper.outputs.gradle_version }} + - name: Build buildSrc + run: ./gradlew :buildSrc:build - name: Run Gradle - run: gradle assemblePrereleaseDebug + run: ./gradlew assemblePrereleaseDebug - name: Upload Artifact uses: actions/upload-artifact@v5 From 507bdef9eeb2482c9fcad35bd19968a8028d1822 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:55:30 -0700 Subject: [PATCH 102/389] Add --- buildSrc/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 buildSrc/build.gradle.kts diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts new file mode 100644 index 00000000000..bc0172f0f07 --- /dev/null +++ b/buildSrc/build.gradle.kts @@ -0,0 +1,3 @@ +plugins { + `kotlin-dsl` +} From 8fb719f8a7aa2c057eea3e1efdcca3cc29df0c61 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 17:57:18 -0700 Subject: [PATCH 103/389] Add repos --- buildSrc/build.gradle.kts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index bc0172f0f07..597a658b915 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -1,3 +1,9 @@ plugins { `kotlin-dsl` } + +repositories { + mavenCentral() + google() + gradlePluginPortal() +} From a72d0a1f44949a942157f48f4a1262f8f36c2f1f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:00:00 -0700 Subject: [PATCH 104/389] Remove old --- app/build.gradle.kts | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5621f6738c5..59987829bb1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -17,26 +17,8 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) } -/*val generateGitHash = tasks.register("generateGitHash") { - val outputFile = layout.buildDirectory.file("generated/git/commit-hash.txt") - - doLast { - val head = file("${project.rootDir}/.git/HEAD") - val hash = if (head.exists()) { - val text = head.readText().trim() - if (text.startsWith("ref:")) { - val ref = text.removePrefix("ref:").trim() - val commitFile = file("${project.rootDir}/.git/$ref") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else text - } else "" - - outputFile.get().asFile.writeText(hash.take(7)) - } -}*/ val commitHashProvider = generateGitHash.map { - // file("${layout.buildDirectory.get().asFile}/generated/git/commit-hash.txt").readText().trim() it.outputFile.get().asFile.readText().trim() } From 282c4f005dff3f200d9dea2c14c076ef7830b80e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:02:14 -0700 Subject: [PATCH 105/389] Again --- app/build.gradle.kts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 59987829bb1..940cdac15c6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,9 +18,13 @@ val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::cla outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) } -val commitHashProvider = generateGitHash.map { +/*val commitHashProvider = generateGitHash.map { it.outputFile.get().asFile.readText().trim() -} +}*/ +val commitHashProvider: Provider = + generateGitHash.flatMap { it.outputFile }.map { + it.asFile.readText().trim() + } android { @Suppress("UnstableApiUsage") From 8c4cc187e9ca91be260cd47b67ae26865cbfc942 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:09:03 -0700 Subject: [PATCH 106/389] Try another way --- buildSrc/src/main/kotlin/GenerateGitHashTask.kt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt index 443f7171aab..36e021423a1 100644 --- a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt +++ b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt @@ -10,16 +10,24 @@ abstract class GenerateGitHashTask : DefaultTask() { @TaskAction fun run() { - val head = project.layout.projectDirectory.file(".git/HEAD").asFile + val head = file("${project.rootDir}/.git/HEAD") val hash = if (head.exists()) { val text = head.readText().trim() if (text.startsWith("ref:")) { val ref = text.removePrefix("ref:").trim() - val commitFile = project.layout.projectDirectory.file(".git/$ref").asFile + val commitFile = file("${project.rootDir}/.git/$ref") if (commitFile.exists()) commitFile.readText().trim() else "" } else text } else "" - outputFile.get().asFile.writeText(hash.take(7)) + val content = """ + package com.lagradost.cloudstream3 + object GitInfo { + const val HASH = "${hash.take(7)}" + } + """.trimIndent() + + outputFile.get().asFile.parentFile.mkdirs() + outputFile.get().asFile.writeText(content) } } From e2bb1333143a4478c0dd0f7488de36e5ed8b1dd8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:12:07 -0700 Subject: [PATCH 107/389] New method --- app/build.gradle.kts | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 940cdac15c6..511ccf5b84a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,18 +14,10 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -val generateGitHash = tasks.register("generateGitHash", GenerateGitHashTask::class) { - outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) +val generateGitHash = tasks.register("generateGitHash") { + outputFile.set(layout.buildDirectory.file("generated/git/GitInfo.kt")) } -/*val commitHashProvider = generateGitHash.map { - it.outputFile.get().asFile.readText().trim() -}*/ -val commitHashProvider: Provider = - generateGitHash.flatMap { it.outputFile }.map { - it.asFile.readText().trim() - } - android { @Suppress("UnstableApiUsage") testOptions { @@ -57,7 +49,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", commitHashProvider.orElse("").get()) + resValue("string", "commit_hash", "") resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() @@ -148,6 +140,11 @@ android { resValues = true } + sourceSets["main"].java.srcDir(layout.buildDirectory.dir("generated/git")) + tasks.named("preBuild") { + dependsOn(generateGitHash) + } + namespace = "com.lagradost.cloudstream3" } From adbea251648f345d9a109b4fc52806be662790f9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:13:55 -0700 Subject: [PATCH 108/389] Update --- buildSrc/src/main/kotlin/GenerateGitHashTask.kt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt index 36e021423a1..3d4f7e1f5e4 100644 --- a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt +++ b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt @@ -2,6 +2,7 @@ import org.gradle.api.DefaultTask import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction +import java.io.File abstract class GenerateGitHashTask : DefaultTask() { @@ -10,12 +11,12 @@ abstract class GenerateGitHashTask : DefaultTask() { @TaskAction fun run() { - val head = file("${project.rootDir}/.git/HEAD") + val head = File(project.rootDir, ".git/HEAD") val hash = if (head.exists()) { val text = head.readText().trim() if (text.startsWith("ref:")) { val ref = text.removePrefix("ref:").trim() - val commitFile = file("${project.rootDir}/.git/$ref") + val commitFile = File(project.rootDir, ".git/$ref") if (commitFile.exists()) commitFile.readText().trim() else "" } else text } else "" @@ -27,6 +28,7 @@ abstract class GenerateGitHashTask : DefaultTask() { } """.trimIndent() + // Ensure parent directories exist outputFile.get().asFile.parentFile.mkdirs() outputFile.get().asFile.writeText(content) } From 628cb78aa87c22928cd52c26d90f3d84940eba1f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:18:54 -0700 Subject: [PATCH 109/389] Use applicationVariants --- app/build.gradle.kts | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 511ccf5b84a..d88e3be873c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,10 +14,6 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -val generateGitHash = tasks.register("generateGitHash") { - outputFile.set(layout.buildDirectory.file("generated/git/GitInfo.kt")) -} - android { @Suppress("UnstableApiUsage") testOptions { @@ -141,8 +137,20 @@ android { } sourceSets["main"].java.srcDir(layout.buildDirectory.dir("generated/git")) - tasks.named("preBuild") { - dependsOn(generateGitHash) + applicationVariants.all { variant -> + val task = tasks.register("generateGitHash${variant.name.capitalize()}") { + outputFile.set(layout.buildDirectory.file("generated/git/${variant.name}/GitInfo.kt")) + } + + // Add the generated file to the variant’s sources + variant.sources.java.addGeneratedSourceDirectory( + task.flatMap { it.outputFile } + ) + + // Ensure variant compilation depends on task + tasks.named("pre${variant.name.capitalize()}Build") { + dependsOn(gitTask) + } } namespace = "com.lagradost.cloudstream3" From 1f8cc2ed506e3f33fbfe0945022b4a8794de3c73 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:19:40 -0700 Subject: [PATCH 110/389] Fix --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d88e3be873c..af99a8e5c2e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -138,13 +138,13 @@ android { sourceSets["main"].java.srcDir(layout.buildDirectory.dir("generated/git")) applicationVariants.all { variant -> - val task = tasks.register("generateGitHash${variant.name.capitalize()}") { + val gitTask = tasks.register("generateGitHash${variant.name.capitalize()}") { outputFile.set(layout.buildDirectory.file("generated/git/${variant.name}/GitInfo.kt")) } // Add the generated file to the variant’s sources variant.sources.java.addGeneratedSourceDirectory( - task.flatMap { it.outputFile } + gitTask.flatMap { it.outputFile } ) // Ensure variant compilation depends on task From cd207a0e67d3253464835ae7edfdc097d5366cae Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:21:23 -0700 Subject: [PATCH 111/389] Revert From 09677fcc979b0052c57256b136beb307ac231d9a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:22:29 -0700 Subject: [PATCH 112/389] Try --- gradle.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle.properties b/gradle.properties index 2b080727e54..d3ac511db79 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,3 +28,4 @@ org.gradle.configuration-cache=true android.javaCompile.suppressSourceTargetDeprecationWarning=true org.gradle.warning.mode=all +android.sourceset.disallowProvider=false From d9703eda70666e5f73687bc5be631e533a39bdc7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:23:34 -0700 Subject: [PATCH 113/389] Revert --- app/build.gradle.kts | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index af99a8e5c2e..511ccf5b84a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,10 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() +val generateGitHash = tasks.register("generateGitHash") { + outputFile.set(layout.buildDirectory.file("generated/git/GitInfo.kt")) +} + android { @Suppress("UnstableApiUsage") testOptions { @@ -137,20 +141,8 @@ android { } sourceSets["main"].java.srcDir(layout.buildDirectory.dir("generated/git")) - applicationVariants.all { variant -> - val gitTask = tasks.register("generateGitHash${variant.name.capitalize()}") { - outputFile.set(layout.buildDirectory.file("generated/git/${variant.name}/GitInfo.kt")) - } - - // Add the generated file to the variant’s sources - variant.sources.java.addGeneratedSourceDirectory( - gitTask.flatMap { it.outputFile } - ) - - // Ensure variant compilation depends on task - tasks.named("pre${variant.name.capitalize()}Build") { - dependsOn(gitTask) - } + tasks.named("preBuild") { + dependsOn(generateGitHash) } namespace = "com.lagradost.cloudstream3" From 47d1be29f37028056a4f20ef39993919f298760b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:29:53 -0700 Subject: [PATCH 114/389] Try fix --- .../src/main/kotlin/GenerateGitHashTask.kt | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt index 3d4f7e1f5e4..adbe452b36b 100644 --- a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt +++ b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt @@ -2,21 +2,24 @@ import org.gradle.api.DefaultTask import org.gradle.api.file.RegularFileProperty import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction -import java.io.File +import org.gradle.api.tasks.InputDirectory abstract class GenerateGitHashTask : DefaultTask() { @get:OutputFile abstract val outputFile: RegularFileProperty + @get:InputDirectory + abstract val gitDir: RegularFileProperty + @TaskAction fun run() { - val head = File(project.rootDir, ".git/HEAD") - val hash = if (head.exists()) { - val text = head.readText().trim() + val headFile = gitDir.get().asFile.resolve("HEAD") + val hash = if (headFile.exists()) { + val text = headFile.readText().trim() if (text.startsWith("ref:")) { val ref = text.removePrefix("ref:").trim() - val commitFile = File(project.rootDir, ".git/$ref") + val commitFile = gitDir.get().asFile.resolve(ref) if (commitFile.exists()) commitFile.readText().trim() else "" } else text } else "" @@ -28,8 +31,8 @@ abstract class GenerateGitHashTask : DefaultTask() { } """.trimIndent() - // Ensure parent directories exist - outputFile.get().asFile.parentFile.mkdirs() - outputFile.get().asFile.writeText(content) + val outFile = outputFile.get().asFile + outFile.parentFile.mkdirs() + outFile.writeText(content) } } From b0447435f0d3183b3d02c8c3996956926bf38993 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:31:01 -0700 Subject: [PATCH 115/389] Try fix --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 511ccf5b84a..a75c41b5703 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,6 +16,7 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() val generateGitHash = tasks.register("generateGitHash") { outputFile.set(layout.buildDirectory.file("generated/git/GitInfo.kt")) + gitDir.set(layout.projectDirectory.file(".git")) } android { From 7397f67a9c06160d620ca6f86da91f6fd70fd021 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:33:47 -0700 Subject: [PATCH 116/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a75c41b5703..510c0ed7ecf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,7 +16,7 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() val generateGitHash = tasks.register("generateGitHash") { outputFile.set(layout.buildDirectory.file("generated/git/GitInfo.kt")) - gitDir.set(layout.projectDirectory.file(".git")) + gitDir.set(rootProject.layout.projectDirectory.file(".git")) } android { From 75c69bd9f9fad7b292ae681e0cf6cdd5825b1edc Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:41:23 -0700 Subject: [PATCH 117/389] Use new GitInfo class --- .../cloudstream3/ui/settings/SettingsFragment.kt | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 6ad0fffc6be..6649ee02997 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -13,6 +13,7 @@ import androidx.preference.PreferenceFragmentCompat import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.MaterialToolbar import com.lagradost.cloudstream3.BuildConfig +import com.lagradost.cloudstream3.GitInfo import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.MainSettingsBinding import com.lagradost.cloudstream3.mvvm.logError @@ -246,16 +247,17 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitInfo = getString(R.string.commit_hash) + val commitHash = GitInfo.HASH val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") }.format(Date(BuildConfig.BUILD_DATE)).replace("UTC", "") binding.buildDate.text = buildTimestamp + binding.commitHash.text = commitHash binding.appVersionInfo.setOnLongClickListener { - clipboardHelper(txt(R.string.extension_version), "$appVersion $commitInfo $buildTimestamp") + clipboardHelper(txt(R.string.extension_version), "$appVersion $commitHash $buildTimestamp") true } } -} \ No newline at end of file +} From efca68a7a16bc0a55456681f2fe72737063c178f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:46:51 -0700 Subject: [PATCH 118/389] - --- .../lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 6649ee02997..8a9384c62a6 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -13,7 +13,6 @@ import androidx.preference.PreferenceFragmentCompat import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.MaterialToolbar import com.lagradost.cloudstream3.BuildConfig -import com.lagradost.cloudstream3.GitInfo import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.MainSettingsBinding import com.lagradost.cloudstream3.mvvm.logError @@ -247,16 +246,15 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitHash = GitInfo.HASH + val commitInfo = getString(R.string.commit_hash) val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") }.format(Date(BuildConfig.BUILD_DATE)).replace("UTC", "") binding.buildDate.text = buildTimestamp - binding.commitHash.text = commitHash binding.appVersionInfo.setOnLongClickListener { - clipboardHelper(txt(R.string.extension_version), "$appVersion $commitHash $buildTimestamp") + clipboardHelper(txt(R.string.extension_version), "$appVersion $commitInfo $buildTimestamp") true } } From 9d704a621df04b13cbe75ead5cbf4e1a601df526 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:49:02 -0700 Subject: [PATCH 119/389] Try txt again --- app/build.gradle.kts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 510c0ed7ecf..d6bb92d6879 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,7 +15,7 @@ val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() val generateGitHash = tasks.register("generateGitHash") { - outputFile.set(layout.buildDirectory.file("generated/git/GitInfo.kt")) + outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) gitDir.set(rootProject.layout.projectDirectory.file(".git")) } @@ -50,9 +50,11 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", "") resValue("bool", "is_prerelease", "false") + val commitHashFile = layout.buildDirectory.file("generated/git/commit-hash.txt") + resValue("string", "commit_hash", commitHashFile.get().asFile.takeIf { it.exists() }?.readText()?.trim() ?: ") + manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() // Reads local.properties @@ -141,7 +143,7 @@ android { resValues = true } - sourceSets["main"].java.srcDir(layout.buildDirectory.dir("generated/git")) + //sourceSets["main"].java.srcDir(layout.buildDirectory.dir("generated/git")) tasks.named("preBuild") { dependsOn(generateGitHash) } From 7e23c723efbbe2bde3aece45ad8c5c6d8de080a9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:51:06 -0700 Subject: [PATCH 120/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d6bb92d6879..24b73d2439c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -53,7 +53,7 @@ android { resValue("bool", "is_prerelease", "false") val commitHashFile = layout.buildDirectory.file("generated/git/commit-hash.txt") - resValue("string", "commit_hash", commitHashFile.get().asFile.takeIf { it.exists() }?.readText()?.trim() ?: ") + resValue("string", "commit_hash", commitHashFile.get().asFile.takeIf { it.exists() }?.readText()?.trim() ?: "") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From d9ad25314f2600122330b1fa75c45b40fee4e935 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:54:13 -0700 Subject: [PATCH 121/389] Try txt again --- buildSrc/src/main/kotlin/GenerateGitHashTask.kt | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt index adbe452b36b..50dd68f354a 100644 --- a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt +++ b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt @@ -24,15 +24,7 @@ abstract class GenerateGitHashTask : DefaultTask() { } else text } else "" - val content = """ - package com.lagradost.cloudstream3 - object GitInfo { - const val HASH = "${hash.take(7)}" - } - """.trimIndent() - - val outFile = outputFile.get().asFile - outFile.parentFile.mkdirs() - outFile.writeText(content) + outputFile.get().asFile.parentFile.mkdirs() + outputFile.get().asFile.writeText(hash.take(7)) } } From 554e0015f59373c4573bf0840991cb831337b4c6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 18:58:58 -0700 Subject: [PATCH 122/389] Remove --- gradle.properties | 1 - 1 file changed, 1 deletion(-) diff --git a/gradle.properties b/gradle.properties index d3ac511db79..2b080727e54 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,4 +28,3 @@ org.gradle.configuration-cache=true android.javaCompile.suppressSourceTargetDeprecationWarning=true org.gradle.warning.mode=all -android.sourceset.disallowProvider=false From 39de4e87ef783b88d0989db771fd0149acb6e374 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:01:56 -0700 Subject: [PATCH 123/389] Remove --- .github/workflows/pull_request.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 48ac0e16cab..c785f983e5c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -23,9 +23,6 @@ jobs: cache-encryption-key: ${{ secrets.GRADLE_ENCRYPTION_KEY }} cache-read-only: false - - name: Build buildSrc - run: ./gradlew :buildSrc:build - - name: Run Gradle run: ./gradlew assemblePrereleaseDebug From 8c1cbdb7e2747345f3fba57778415d8fdd0a1094 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:12:44 -0700 Subject: [PATCH 124/389] Try once again --- app/build.gradle.kts | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 24b73d2439c..37a4ece0023 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,10 +14,10 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -val generateGitHash = tasks.register("generateGitHash") { +/*val generateGitHash = tasks.register("generateGitHash") { outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) gitDir.set(rootProject.layout.projectDirectory.file(".git")) -} +}*/ android { @Suppress("UnstableApiUsage") @@ -52,14 +52,31 @@ android { resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") resValue("bool", "is_prerelease", "false") - val commitHashFile = layout.buildDirectory.file("generated/git/commit-hash.txt") - resValue("string", "commit_hash", commitHashFile.get().asFile.takeIf { it.exists() }?.readText()?.trim() ?: "") + //val commitHashFile = layout.buildDirectory.file("generated/git/commit-hash.txt") + resValue("string", "commit_hash", /*commitHashFile.get().asFile.takeIf { it.exists() }?.readText()?.trim() ?: */ "") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() // Reads local.properties val localProperties = gradleLocalProperties(rootDir, project.providers) + val gitHashProvider = providers.provider { + try { + // Try reading .git/HEAD and resolve ref + val headFile = rootProject.file(".git/HEAD") + if (headFile.exists()) { + val text = headFile.readText().trim() + if (text.startsWith("ref:")) { + val ref = text.removePrefix("ref:").trim() + val commitFile = rootProject.file(".git/$ref") + if (commitFile.exists()) commitFile.readText().trim().take(7) else "" + } else text.take(7) + } else "" + } catch (_: Exception) { "" } + } + + buildConfigField("String", "COMMIT_HASH", "\"${gitHashProvider.get()}\"") + buildConfigField( "long", "BUILD_DATE", From ed78080fd00b0c287a5ebebfa3efa6789aab1313 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:14:11 -0700 Subject: [PATCH 125/389] delete --- buildSrc/build.gradle.kts | 9 ------ .../src/main/kotlin/GenerateGitHashTask.kt | 30 ------------------- 2 files changed, 39 deletions(-) delete mode 100644 buildSrc/build.gradle.kts delete mode 100644 buildSrc/src/main/kotlin/GenerateGitHashTask.kt diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts deleted file mode 100644 index 597a658b915..00000000000 --- a/buildSrc/build.gradle.kts +++ /dev/null @@ -1,9 +0,0 @@ -plugins { - `kotlin-dsl` -} - -repositories { - mavenCentral() - google() - gradlePluginPortal() -} diff --git a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt b/buildSrc/src/main/kotlin/GenerateGitHashTask.kt deleted file mode 100644 index 50dd68f354a..00000000000 --- a/buildSrc/src/main/kotlin/GenerateGitHashTask.kt +++ /dev/null @@ -1,30 +0,0 @@ -import org.gradle.api.DefaultTask -import org.gradle.api.file.RegularFileProperty -import org.gradle.api.tasks.OutputFile -import org.gradle.api.tasks.TaskAction -import org.gradle.api.tasks.InputDirectory - -abstract class GenerateGitHashTask : DefaultTask() { - - @get:OutputFile - abstract val outputFile: RegularFileProperty - - @get:InputDirectory - abstract val gitDir: RegularFileProperty - - @TaskAction - fun run() { - val headFile = gitDir.get().asFile.resolve("HEAD") - val hash = if (headFile.exists()) { - val text = headFile.readText().trim() - if (text.startsWith("ref:")) { - val ref = text.removePrefix("ref:").trim() - val commitFile = gitDir.get().asFile.resolve(ref) - if (commitFile.exists()) commitFile.readText().trim() else "" - } else text - } else "" - - outputFile.get().asFile.parentFile.mkdirs() - outputFile.get().asFile.writeText(hash.take(7)) - } -} From e09f66e49cb2073f2bc041591dd03a18bb614893 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:15:05 -0700 Subject: [PATCH 126/389] Remove --- app/build.gradle.kts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 37a4ece0023..aeb68101140 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,11 +14,6 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -/*val generateGitHash = tasks.register("generateGitHash") { - outputFile.set(layout.buildDirectory.file("generated/git/commit-hash.txt")) - gitDir.set(rootProject.layout.projectDirectory.file(".git")) -}*/ - android { @Suppress("UnstableApiUsage") testOptions { @@ -52,8 +47,7 @@ android { resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") resValue("bool", "is_prerelease", "false") - //val commitHashFile = layout.buildDirectory.file("generated/git/commit-hash.txt") - resValue("string", "commit_hash", /*commitHashFile.get().asFile.takeIf { it.exists() }?.readText()?.trim() ?: */ "") + resValue("string", "commit_hash", "") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() @@ -160,11 +154,6 @@ android { resValues = true } - //sourceSets["main"].java.srcDir(layout.buildDirectory.dir("generated/git")) - tasks.named("preBuild") { - dependsOn(generateGitHash) - } - namespace = "com.lagradost.cloudstream3" } From e57932672847fd3f33228f3fe696f44eb1c66584 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:20:42 -0700 Subject: [PATCH 127/389] Use BuildConfig.COMMIT_HASH --- .../lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 8a9384c62a6..af7e1098783 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -246,15 +246,16 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitInfo = getString(R.string.commit_hash) + val commitHash = BuildConfig.COMMIT_HASH val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") }.format(Date(BuildConfig.BUILD_DATE)).replace("UTC", "") binding.buildDate.text = buildTimestamp + binding.commitHash.text = commitHash binding.appVersionInfo.setOnLongClickListener { - clipboardHelper(txt(R.string.extension_version), "$appVersion $commitInfo $buildTimestamp") + clipboardHelper(txt(R.string.extension_version), "$appVersion $commitHash $buildTimestamp") true } } From 3ede60efc165a817feba6c4820577bb40f8c6e6c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:23:18 -0700 Subject: [PATCH 128/389] Update --- .github/workflows/pull_request.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c785f983e5c..0b4c36a51ae 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -14,6 +14,9 @@ jobs: java-version: '21' distribution: 'adopt' + - name: Set commit hash + run: echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV + - name: Grant execute permission for gradlew run: chmod +x gradlew From 22da8b599df0c9b81411dfcfb9ed215e9b104d19 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:25:51 -0700 Subject: [PATCH 129/389] Maybe now? --- app/build.gradle.kts | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index aeb68101140..c697cea8238 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -54,22 +54,11 @@ android { // Reads local.properties val localProperties = gradleLocalProperties(rootDir, project.providers) - val gitHashProvider = providers.provider { - try { - // Try reading .git/HEAD and resolve ref - val headFile = rootProject.file(".git/HEAD") - if (headFile.exists()) { - val text = headFile.readText().trim() - if (text.startsWith("ref:")) { - val ref = text.removePrefix("ref:").trim() - val commitFile = rootProject.file(".git/$ref") - if (commitFile.exists()) commitFile.readText().trim().take(7) else "" - } else text.take(7) - } else "" - } catch (_: Exception) { "" } - } - - buildConfigField("String", "COMMIT_HASH", "\"${gitHashProvider.get()}\"") + buildConfigField( + "String", + "COMMIT_HASH", + "\"" + (System.getenv("COMMIT_HASH") ?: localProperties["commit.hash"]) + "\"" + ) buildConfigField( "long", From 098f3e11754de27fc52c2d3e78b541a3ff696152 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 21 Nov 2025 19:28:58 -0700 Subject: [PATCH 130/389] Test --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 0b4c36a51ae..08699c38ea9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,3 +1,4 @@ + name: Artifact Build on: [pull_request] From 8a64c8378f4f6bb1c0347aeec70e49396df95b3c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:13:06 -0700 Subject: [PATCH 131/389] - --- .github/workflows/pull_request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 08699c38ea9..0b4c36a51ae 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,4 +1,3 @@ - name: Artifact Build on: [pull_request] From 765fa909d79b7fc10d7ab6881b2996d13c6676d4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:14:21 -0700 Subject: [PATCH 132/389] - --- app/build.gradle.kts | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c697cea8238..97f95bea806 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,26 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() +fun getGitCommitHash(): String { + return try { + val headFile = file("${project.rootDir}/.git/HEAD") + + // Read the commit hash from .git/HEAD + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) // e.g., refs/heads/main + val commitFile = file("${project.rootDir}/.git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent // If it's a detached HEAD (commit hash directly) + } else { + "" // If .git/HEAD doesn't exist + }.take(7) // Return the short commit hash + } catch (_: Throwable) { + "" // Just return an empty string if any exception occurs + } +} + android { @Suppress("UnstableApiUsage") testOptions { @@ -45,21 +65,14 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") + resValue("string", "commit_hash", getGitCommitHash()) resValue("bool", "is_prerelease", "false") - resValue("string", "commit_hash", "") - manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() // Reads local.properties val localProperties = gradleLocalProperties(rootDir, project.providers) - buildConfigField( - "String", - "COMMIT_HASH", - "\"" + (System.getenv("COMMIT_HASH") ?: localProperties["commit.hash"]) + "\"" - ) - buildConfigField( "long", "BUILD_DATE", From 0e5347edc0f72622de2e9b15f951928957d882d7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:15:10 -0700 Subject: [PATCH 133/389] - --- .../lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index af7e1098783..8a9384c62a6 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -246,16 +246,15 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitHash = BuildConfig.COMMIT_HASH + val commitInfo = getString(R.string.commit_hash) val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") }.format(Date(BuildConfig.BUILD_DATE)).replace("UTC", "") binding.buildDate.text = buildTimestamp - binding.commitHash.text = commitHash binding.appVersionInfo.setOnLongClickListener { - clipboardHelper(txt(R.string.extension_version), "$appVersion $commitHash $buildTimestamp") + clipboardHelper(txt(R.string.extension_version), "$appVersion $commitInfo $buildTimestamp") true } } From 0183ccb8c9c5c1a7f1d9bb494300355e1e6289b0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:15:37 -0700 Subject: [PATCH 134/389] - --- .github/workflows/pull_request.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 0b4c36a51ae..c785f983e5c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -14,9 +14,6 @@ jobs: java-version: '21' distribution: 'adopt' - - name: Set commit hash - run: echo "COMMIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV - - name: Grant execute permission for gradlew run: chmod +x gradlew From 4f209fa77492329882d5f9599d48d272f8780b2d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:16:41 -0700 Subject: [PATCH 135/389] - --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 8a9384c62a6..6ad0fffc6be 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -258,4 +258,4 @@ class SettingsFragment : BaseFragment( true } } -} +} \ No newline at end of file From 3e3be13ba7b7aac0601f20462f32bf5c2db5819b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:21:27 -0700 Subject: [PATCH 136/389] beta2 --- 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 ba54b9e9df5..2755c98f836 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] acraCore = "5.13.1" activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-beta01" +androidGradlePlugin = "9.0.0-beta02" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From a6d429d5e77cf5868eae01499c8da145ac91e8bb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:33:32 -0700 Subject: [PATCH 137/389] Try all reports --- .github/workflows/pull_request.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c785f983e5c..d711e31cc98 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -32,12 +32,12 @@ jobs: name: pull-request-build path: "app/build/outputs/apk/prerelease/debug/*.apk" - - name: Deploy Problems Report to GH Pages + - name: Deploy Reports to GitHub Pages run: | BRANCH_NAME=${GITHUB_REF#refs/heads/} TARGET_DIR=gh-pages/$BRANCH_NAME - mkdir -p $TARGET_DIR - cp -r build/reports/problems/* $TARGET_DIR/ + mkdir -p "$TARGET_DIR" + cp -r build/reports/* "$TARGET_DIR/" shell: bash - name: Push to GitHub Pages @@ -47,4 +47,4 @@ jobs: publish_dir: ./gh-pages user_name: "github-actions" user_email: "github-actions@github.com" - commit_message: "Update problems report for ${{ github.ref_name }} [ci skip]" + commit_message: "Update reports for ${{ github.ref_name }} [ci skip]" From 8d4365479b1cfa3a9349765235bd69611a602d21 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:48:30 -0700 Subject: [PATCH 138/389] Try --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index d711e31cc98..c1374eca871 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug + run: ./gradlew assemblePrereleaseDebug --info --stacktrace --scan - name: Upload Artifact uses: actions/upload-artifact@v5 From 4963709eb50741d63947fb4c0bb6b42b3cff16c7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 11:58:13 -0700 Subject: [PATCH 139/389] More --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c1374eca871..9fb116504d9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug --info --stacktrace --scan + run: ./gradlew assemblePrereleaseDebug --info --stacktrace --scan --profile --no-build-cache --configuration-cache-problems=warn - name: Upload Artifact uses: actions/upload-artifact@v5 From 1886923d1bc042c892d7780662cde3670b3866fe Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 12:03:59 -0700 Subject: [PATCH 140/389] Order --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9fb116504d9..1c205beafa3 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug --info --stacktrace --scan --profile --no-build-cache --configuration-cache-problems=warn + run: ./gradlew assemblePrereleaseDebug --info --stacktrace --profile --scan --no-build-cache --configuration-cache-problems=warn - name: Upload Artifact uses: actions/upload-artifact@v5 From c320e45e5b1311d789d0ea874db5ac5b998bc622 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 12:52:23 -0700 Subject: [PATCH 141/389] Test --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97f95bea806..057964c60b1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,7 +65,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", getGitCommitHash()) + resValue("string", "commit_hash", lazy(getGitCommitHash())) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 67f39b1d35f7483d9071fbd05bc38b88113f9588 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 12:53:31 -0700 Subject: [PATCH 142/389] Remove --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 1c205beafa3..d711e31cc98 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug --info --stacktrace --profile --scan --no-build-cache --configuration-cache-problems=warn + run: ./gradlew assemblePrereleaseDebug - name: Upload Artifact uses: actions/upload-artifact@v5 From f24f3c0575c547ecc118a84550827e7e6c025a27 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 12:58:22 -0700 Subject: [PATCH 143/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 057964c60b1..165737d79dd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,7 +65,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", lazy(getGitCommitHash())) + resValue("string", "commit_hash", providers.provider { getGitCommitHash() }.get()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 9438555612e53a2dc247468b91065a979b41b1d0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 13:04:04 -0700 Subject: [PATCH 144/389] Try --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index d711e31cc98..39991ee1933 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,3 +1,4 @@ + name: Artifact Build on: [pull_request] From 1fdd4a235ead6ca705d8087eee9b44fef50d6b10 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 13:30:33 -0700 Subject: [PATCH 145/389] - --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 165737d79dd..97f95bea806 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,7 +65,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", providers.provider { getGitCommitHash() }.get()) + resValue("string", "commit_hash", getGitCommitHash()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 8796e97f5747f6c2f2e12f9f9abf0c3844c3ab84 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 13:30:51 -0700 Subject: [PATCH 146/389] - --- .github/workflows/pull_request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 39991ee1933..d711e31cc98 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,4 +1,3 @@ - name: Artifact Build on: [pull_request] From 3777e37748053f525cb525261c5ad50e575cbd26 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 14:11:24 -0700 Subject: [PATCH 147/389] - --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97f95bea806..6f8a809c201 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -243,7 +243,7 @@ dependencies { tasks.register("androidSourcesJar") { archiveClassifier.set("sources") - from(android.sourceSets.getByName("main").java.directories) // Full Sources + from(android.sourceSets.getByName("main").java.srcDirs) // Full Sources } tasks.register("copyJar") { From 939e7e195bf804bfa5847653d6e510f6671b8705 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 14:13:59 -0700 Subject: [PATCH 148/389] - --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6f8a809c201..97f95bea806 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -243,7 +243,7 @@ dependencies { tasks.register("androidSourcesJar") { archiveClassifier.set("sources") - from(android.sourceSets.getByName("main").java.srcDirs) // Full Sources + from(android.sourceSets.getByName("main").java.directories) // Full Sources } tasks.register("copyJar") { From aaddc37422609de3b440eba5dcbb4a9cd497296e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 14:57:43 -0700 Subject: [PATCH 149/389] try --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9e557f8a89e..203cd7799b8 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,9 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrereleaseDebug + run: | + ./gradlew assemblePrerelease build androidSourcesJar + ./gradlew makeJar # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact uses: actions/upload-artifact@v5 From e0a0306c242dce80691c25faa7815fbb0a6880e5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 15:18:24 -0700 Subject: [PATCH 150/389] Try --- .github/workflows/pull_request.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 203cd7799b8..ee79576a05d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -39,7 +39,14 @@ jobs: BRANCH_NAME=${GITHUB_REF#refs/heads/} TARGET_DIR=gh-pages/$BRANCH_NAME mkdir -p "$TARGET_DIR" - cp -r build/reports/* "$TARGET_DIR/" + if [ -d "build/reports" ]; then + cp -r build/reports/. "$TARGET_DIR/" + fi + for REPORT_DIR in */build/reports; do + if [ -d "$REPORT_DIR" ]; then + cp -r "$REPORT_DIR/." "$TARGET_DIR/" + fi + done shell: bash - name: Push to GitHub Pages From 4809dbccf560f75de7d006b6497699098997d08e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 15:34:30 -0700 Subject: [PATCH 151/389] generate index --- .github/workflows/pull_request.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index ee79576a05d..c81a261916a 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -47,6 +47,23 @@ jobs: cp -r "$REPORT_DIR/." "$TARGET_DIR/" fi done + INDEX_FILE="$TARGET_DIR/index.html" + echo " + + + + Reports for $BRANCH_NAME + + +

Reports for branch $BRANCH_NAME

+
    " > "$INDEX_FILE" + find "$TARGET_DIR" -type f ! -name "index.html" | while read FILE; do + REL_PATH="${FILE#$TARGET_DIR/}" + echo "
  • $REL_PATH
  • " >> "$INDEX_FILE" + done + echo "
+ + " >> "$INDEX_FILE" shell: bash - name: Push to GitHub Pages From 747e65cea4044329d79726c47d4e924fd4378be3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:11:14 -0700 Subject: [PATCH 152/389] Only html files --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c81a261916a..a13d7534084 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -57,7 +57,7 @@ jobs:

Reports for branch $BRANCH_NAME

    " > "$INDEX_FILE" - find "$TARGET_DIR" -type f ! -name "index.html" | while read FILE; do + find "$TARGET_DIR" -type f -name "*.html" ! -name "index.html" | while read FILE; do REL_PATH="${FILE#$TARGET_DIR/}" echo "
  • $REL_PATH
  • " >> "$INDEX_FILE" done From 8e6a019af460e06ecdf8d2eb9a66842015ff2b84 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:20:47 -0700 Subject: [PATCH 153/389] Update --- .github/workflows/pull_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index a13d7534084..116e0e1e08a 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,8 +25,8 @@ jobs: - name: Run Gradle run: | - ./gradlew assemblePrerelease build androidSourcesJar - ./gradlew makeJar # for classes.jar, has to be done after assemblePrerelease + ./gradlew assemblePrerelease build androidSourcesJar htmlDependencyReport --profile --scan + ./gradlew makeJar --profile --scan # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact uses: actions/upload-artifact@v5 From 833d2765f9532b16115673846da566ab7a0bc4ba Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:23:19 -0700 Subject: [PATCH 154/389] Update --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 116e0e1e08a..266d140243d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,7 +25,9 @@ jobs: - name: Run Gradle run: | - ./gradlew assemblePrerelease build androidSourcesJar htmlDependencyReport --profile --scan + ./gradlew htmlDependencyReport + ./gradlew taskReport + ./gradlew assemblePrerelease build androidSourcesJar --profile --scan ./gradlew makeJar --profile --scan # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact From 16cfde75e65b665492828971ca08a4579d23348d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:25:35 -0700 Subject: [PATCH 155/389] update --- .github/workflows/pull_request.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 266d140243d..b5074bce98e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,8 +25,7 @@ jobs: - name: Run Gradle run: | - ./gradlew htmlDependencyReport - ./gradlew taskReport + ./gradlew dependencies ./gradlew assemblePrerelease build androidSourcesJar --profile --scan ./gradlew makeJar --profile --scan # for classes.jar, has to be done after assemblePrerelease From 232548cd042357562b7aa47f1f23f40ed52443f0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:27:07 -0700 Subject: [PATCH 156/389] scan --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b5074bce98e..72cd46d9ffb 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,7 +25,7 @@ jobs: - name: Run Gradle run: | - ./gradlew dependencies + ./gradlew dependencies --scan ./gradlew assemblePrerelease build androidSourcesJar --profile --scan ./gradlew makeJar --profile --scan # for classes.jar, has to be done after assemblePrerelease From 0c5b757fd9f9762ec704789d73c1c7993cfa970e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:29:56 -0700 Subject: [PATCH 157/389] Try --- .github/workflows/pull_request.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 72cd46d9ffb..c6b8842a374 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,8 +25,9 @@ jobs: - name: Run Gradle run: | - ./gradlew dependencies --scan - ./gradlew assemblePrerelease build androidSourcesJar --profile --scan + ./gradlew app:dependencies + ./gradlew library:dependencies + ./gradlew assemblePrerelease build androidSourcesJar --profile ./gradlew makeJar --profile --scan # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact From 2cc54c750ad2d37f5e39a852edc356991978a63f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:39:58 -0700 Subject: [PATCH 158/389] - --- .github/workflows/pull_request.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c6b8842a374..39fbc00f172 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,9 +25,7 @@ jobs: - name: Run Gradle run: | - ./gradlew app:dependencies - ./gradlew library:dependencies - ./gradlew assemblePrerelease build androidSourcesJar --profile + ./gradlew assemblePrerelease build androidSourcesJar --profile --scan ./gradlew makeJar --profile --scan # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact From 0f8c4914663c8a5544c19e7ecfe045f75de7a24e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:50:06 -0700 Subject: [PATCH 159/389] - --- .github/workflows/pull_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 39fbc00f172..96da3f5f238 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,8 +25,8 @@ jobs: - name: Run Gradle run: | - ./gradlew assemblePrerelease build androidSourcesJar --profile --scan - ./gradlew makeJar --profile --scan # for classes.jar, has to be done after assemblePrerelease + ./gradlew assemblePrerelease build androidSourcesJar --profile + ./gradlew makeJar --profile # for classes.jar, has to be done after assemblePrerelease - name: Upload Artifact uses: actions/upload-artifact@v5 From 9d7d8e47ad9dc1e80e33089dd5f5e18329ee685b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 16:53:15 -0700 Subject: [PATCH 160/389] Try --- .github/workflows/pull_request.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 96da3f5f238..016b52e7cb8 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -27,6 +27,7 @@ jobs: run: | ./gradlew assemblePrerelease build androidSourcesJar --profile ./gradlew makeJar --profile # for classes.jar, has to be done after assemblePrerelease + ./gradlew --scan - name: Upload Artifact uses: actions/upload-artifact@v5 @@ -57,7 +58,7 @@ jobs:

    Reports for branch $BRANCH_NAME

      " > "$INDEX_FILE" - find "$TARGET_DIR" -type f -name "*.html" ! -name "index.html" | while read FILE; do + find "$TARGET_DIR" -type f -name "*.html" | while read FILE; do REL_PATH="${FILE#$TARGET_DIR/}" echo "
    • $REL_PATH
    • " >> "$INDEX_FILE" done From 0b660ad0179300c8d84c2ccbf023b9cb6d5f2f5e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 17:03:32 -0700 Subject: [PATCH 161/389] - --- .github/workflows/pull_request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 016b52e7cb8..b4838ec0253 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -27,7 +27,6 @@ jobs: run: | ./gradlew assemblePrerelease build androidSourcesJar --profile ./gradlew makeJar --profile # for classes.jar, has to be done after assemblePrerelease - ./gradlew --scan - name: Upload Artifact uses: actions/upload-artifact@v5 From 36c70c2825071dacc8ef802271309a347b35af82 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 17:15:11 -0700 Subject: [PATCH 162/389] Scan --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b4838ec0253..016b52e7cb8 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -27,6 +27,7 @@ jobs: run: | ./gradlew assemblePrerelease build androidSourcesJar --profile ./gradlew makeJar --profile # for classes.jar, has to be done after assemblePrerelease + ./gradlew --scan - name: Upload Artifact uses: actions/upload-artifact@v5 From ca076fd993fcb183eb0e8b57262f7c17cb8e8d77 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 17:50:23 -0700 Subject: [PATCH 163/389] - --- .github/workflows/pull_request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 016b52e7cb8..b4838ec0253 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -27,7 +27,6 @@ jobs: run: | ./gradlew assemblePrerelease build androidSourcesJar --profile ./gradlew makeJar --profile # for classes.jar, has to be done after assemblePrerelease - ./gradlew --scan - name: Upload Artifact uses: actions/upload-artifact@v5 From 16040d105a796d93ae623d2807544b7327ba883c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 17:58:31 -0700 Subject: [PATCH 164/389] Try new plugin --- app/build.gradle.kts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97f95bea806..6ccca97a8e9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -7,6 +7,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("com.android.application") + id("com.palantir.git-version") // id("org.jetbrains.dokka") } @@ -14,7 +15,10 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -fun getGitCommitHash(): String { +val versionDetails: groovy.lang.Closure by extra +val details = versionDetails() + +/*fun getGitCommitHash(): String { return try { val headFile = file("${project.rootDir}/.git/HEAD") @@ -32,7 +36,7 @@ fun getGitCommitHash(): String { } catch (_: Throwable) { "" // Just return an empty string if any exception occurs } -} +}*/ android { @Suppress("UnstableApiUsage") @@ -65,7 +69,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", getGitCommitHash()) + resValue("string", "commit_hash", details.gitHash) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 69c2598dc95b9772d25750bee47ef8457bc6f2a2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 18:00:48 -0700 Subject: [PATCH 165/389] Add --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index 22cdc4ba3df..8ff059cb829 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ buildscript { classpath(libs.android.gradle.plugin) classpath(libs.buildkonfig.gradle.plugin) // Universal build config classpath(libs.dokka.gradle.plugin) + classpath(libs.palantir.gradle.plugin) classpath(libs.kotlin.gradle.plugin) } } From 5b999098b812ad0a2e2baa41e03f0fab1d865fc5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 18:03:32 -0700 Subject: [PATCH 166/389] Add --- gradle/libs.versions.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2755c98f836..122d6a831a9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -32,6 +32,7 @@ newpipeextractor = "v0.24.8" nextlibMedia3 = "1.8.0-0.9.0" nicehttp = "0.4.13" overlappingpanels = "0.1.5" +palantirGradlePlugin = "4.2.0" paletteKtx = "1.0.0" preferenceKtx = "1.2.1" previewseekbarMedia3 = "1.1.1.0" @@ -102,6 +103,7 @@ nextlib-media3ext = { module = "io.github.anilbeesetti:nextlib-media3ext", versi nextlib-mediainfo = { module = "io.github.anilbeesetti:nextlib-mediainfo", version.ref = "nextlibMedia3" } nicehttp = { module = "com.github.Blatzar:NiceHttp", version.ref = "nicehttp" } overlappingpanels = { module = "com.github.discord:OverlappingPanels", version.ref = "overlappingpanels" } +palantir-gradle-plugin = { module = "com.palantir.git-version", version.ref = "palantirGradlePlugin" } palette-ktx = { module = "androidx.palette:palette-ktx", version.ref = "paletteKtx" } preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preferenceKtx" } previewseekbar-media3 = { module = "com.github.rubensousa:previewseekbar-media3", version.ref = "previewseekbarMedia3" } From bafd3120c1ad57065a46704ab43f1db14172054e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 22 Nov 2025 18:07:05 -0700 Subject: [PATCH 167/389] Try --- 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 122d6a831a9..a2e2fbed464 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -103,7 +103,7 @@ nextlib-media3ext = { module = "io.github.anilbeesetti:nextlib-media3ext", versi nextlib-mediainfo = { module = "io.github.anilbeesetti:nextlib-mediainfo", version.ref = "nextlibMedia3" } nicehttp = { module = "com.github.Blatzar:NiceHttp", version.ref = "nicehttp" } overlappingpanels = { module = "com.github.discord:OverlappingPanels", version.ref = "overlappingpanels" } -palantir-gradle-plugin = { module = "com.palantir.git-version", version.ref = "palantirGradlePlugin" } +palantir-gradle-plugin = { module = "com.palantir.git-version:com.palantir.git-version.gradle.plugin", version.ref = "palantirGradlePlugin" } palette-ktx = { module = "androidx.palette:palette-ktx", version.ref = "paletteKtx" } preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preferenceKtx" } previewseekbar-media3 = { module = "com.github.rubensousa:previewseekbar-media3", version.ref = "previewseekbarMedia3" } From 860d4501a0e4849c5cdb9c52a49d9027d4ddb510 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 12:41:50 -0700 Subject: [PATCH 168/389] Use version catalog for plugins --- app/build.gradle.kts | 14 +++++--------- build.gradle.kts | 27 +++++++-------------------- docs/build.gradle.kts | 6 +++--- gradle/libs.versions.toml | 12 ++++++------ library/build.gradle.kts | 10 +++++----- settings.gradle.kts | 24 ++++++++++++++++++++---- 6 files changed, 46 insertions(+), 47 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6ccca97a8e9..f918083844e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,19 +6,15 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { - id("com.android.application") - id("com.palantir.git-version") - // id("org.jetbrains.dokka") + alias(libs.plugins.android.application) + // alias(libs.plugins.dokka) } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -val versionDetails: groovy.lang.Closure by extra -val details = versionDetails() - -/*fun getGitCommitHash(): String { +fun getGitCommitHash(): String { return try { val headFile = file("${project.rootDir}/.git/HEAD") @@ -36,7 +32,7 @@ val details = versionDetails() } catch (_: Throwable) { "" // Just return an empty string if any exception occurs } -}*/ +} android { @Suppress("UnstableApiUsage") @@ -69,7 +65,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", details.gitHash) + resValue("string", "commit_hash", getGitCommitHash()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() diff --git a/build.gradle.kts b/build.gradle.kts index 8ff059cb829..e3b1241b9bd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,26 +1,13 @@ -buildscript { - repositories { - google() - mavenCentral() - } - - dependencies { - classpath(libs.android.gradle.plugin) - classpath(libs.buildkonfig.gradle.plugin) // Universal build config - classpath(libs.dokka.gradle.plugin) - classpath(libs.palantir.gradle.plugin) - classpath(libs.kotlin.gradle.plugin) - } +plugins { + alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.multiplatform.library) apply false + alias(libs.plugins.buildkonfig) apply false // Universal build config + alias(libs.plugins.dokka) apply false + alias(libs.plugins.kotlin.jvm) apply false + alias(libs.plugins.kotlin.multiplatform) apply false } allprojects { - repositories { - google() - mavenCentral() - mavenLocal() - maven("https://jitpack.io") - } - // https://docs.gradle.org/current/userguide/upgrading_major_version_9.html#test_task_fails_when_no_tests_are_discovered tasks.withType().configureEach { failOnNoDiscoveredTests = false diff --git a/docs/build.gradle.kts b/docs/build.gradle.kts index 203b938181e..8f5be2a2dbe 100644 --- a/docs/build.gradle.kts +++ b/docs/build.gradle.kts @@ -1,6 +1,6 @@ plugins { - kotlin("jvm") - id("org.jetbrains.dokka") + alias(libs.plugins.kotlin.jvm) + alias(libs.plugins.dokka) } dependencies { @@ -10,4 +10,4 @@ dependencies { dokka { moduleName = "Cloudstream" -} \ No newline at end of file +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a2e2fbed464..ad3c436aea5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -32,7 +32,6 @@ newpipeextractor = "v0.24.8" nextlibMedia3 = "1.8.0-0.9.0" nicehttp = "0.4.13" overlappingpanels = "0.1.5" -palantirGradlePlugin = "4.2.0" paletteKtx = "1.0.0" preferenceKtx = "1.2.1" previewseekbarMedia3 = "1.1.1.0" @@ -58,10 +57,8 @@ targetSdk = "36" acra-core = { module = "ch.acra:acra-core", version.ref = "acraCore" } acra-toast = { module = "ch.acra:acra-toast", version.ref = "acraCore" } activity-ktx = { module = "androidx.activity:activity-ktx", version.ref = "activityKtx" } -android-gradle-plugin = { module = "com.android.tools.build:gradle", version.ref = "androidGradlePlugin" } appcompat = { module = "androidx.appcompat:appcompat", version.ref = "appcompat" } biometric = { module = "androidx.biometric:biometric", version.ref = "biometric" } -buildkonfig-gradle-plugin = { module = "com.codingfeline.buildkonfig:buildkonfig-gradle-plugin", version.ref = "buildkonfigGradlePlugin" } coil = { module = "io.coil-kt.coil3:coil", version.ref = "coil" } coil-network-okhttp = { module = "io.coil-kt.coil3:coil-network-okhttp", version.ref = "coil" } colorpicker = { module = "com.github.recloudstream:color-picker-android", version.ref = "colorpicker" } @@ -71,7 +68,6 @@ core = { module = "androidx.test:core" } core-ktx = { module = "androidx.core:core-ktx", version.ref = "coreKtx" } databinding = { module = "androidx.databinding:viewbinding", version.ref = "androidGradlePlugin" } desugar_jdk_libs_nio = { module = "com.android.tools:desugar_jdk_libs_nio", version.ref = "desugar_jdk_libs_nio" } -dokka-gradle-plugin = { module = "org.jetbrains.dokka:dokka-gradle-plugin", version.ref = "dokkaGradlePlugin" } espresso-core = { module = "androidx.test.espresso:espresso-core", version.ref = "espressoCore" } ext-junit = { module = "androidx.test.ext:junit", version.ref = "junitVersion" } fuzzywuzzy = { module = "me.xdrop:fuzzywuzzy", version.ref = "fuzzywuzzy" } @@ -81,7 +77,6 @@ jsoup = { module = "org.jsoup:jsoup", version.ref = "jsoup" } junit = { module = "junit:junit", version.ref = "junit" } junit-ktx = { module = "androidx.test.ext:junit-ktx", version.ref = "junitKtx" } juniversalchardet = { module = "com.github.albfernandez:juniversalchardet", version.ref = "juniversalchardet" } -kotlin-gradle-plugin = { module = "org.jetbrains.kotlin:kotlin-gradle-plugin", version.ref = "kotlinGradlePlugin" } kotlinx-coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "kotlinxCoroutinesCore" } lifecycle-livedata-ktx = { module = "androidx.lifecycle:lifecycle-livedata-ktx", version.ref = "lifecycleLivedataKtx" } lifecycle-viewmodel-ktx = { module = "androidx.lifecycle:lifecycle-viewmodel-ktx", version.ref = "lifecycleViewmodelKtx" } @@ -103,7 +98,6 @@ nextlib-media3ext = { module = "io.github.anilbeesetti:nextlib-media3ext", versi nextlib-mediainfo = { module = "io.github.anilbeesetti:nextlib-mediainfo", version.ref = "nextlibMedia3" } nicehttp = { module = "com.github.Blatzar:NiceHttp", version.ref = "nicehttp" } overlappingpanels = { module = "com.github.discord:OverlappingPanels", version.ref = "overlappingpanels" } -palantir-gradle-plugin = { module = "com.palantir.git-version:com.palantir.git-version.gradle.plugin", version.ref = "palantirGradlePlugin" } palette-ktx = { module = "androidx.palette:palette-ktx", version.ref = "paletteKtx" } preference-ktx = { module = "androidx.preference:preference-ktx", version.ref = "preferenceKtx" } previewseekbar-media3 = { module = "com.github.rubensousa:previewseekbar-media3", version.ref = "previewseekbarMedia3" } @@ -121,6 +115,12 @@ work-runtime = { module = "androidx.work:work-runtime", version.ref = "workRunti work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "workRuntimeKtx" } [plugins] +android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } +android-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "androidGradlePlugin" } +buildkonfig = { id = "com.codingfeline.buildkonfig", version.ref = "buildkonfigGradlePlugin" } +dokka = { id = "org.jetbrains.dokka", version.ref = "dokkaGradlePlugin" } +kotlin-jvm = { id = "org.jetbrains.kotlin.jvm" , version.ref = "kotlinGradlePlugin" } +kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlinGradlePlugin" } [bundles] media3 = ["media3-cast", "media3-common", "media3-container", "media3-datasource-cronet", "media3-datasource-okhttp", "media3-exoplayer", "media3-exoplayer-dash", "media3-exoplayer-hls", "media3-session", "media3-ui"] diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 7e717f40827..9955ab25218 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -6,11 +6,11 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { - kotlin("multiplatform") - id("maven-publish") - id("com.android.kotlin.multiplatform.library") - id("com.codingfeline.buildkonfig") - id("org.jetbrains.dokka") + id("maven-publish") // Gradle core plugin + alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.android.multiplatform.library) + alias(libs.plugins.buildkonfig) + alias(libs.plugins.dokka) } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) diff --git a/settings.gradle.kts b/settings.gradle.kts index bd26f9f3499..73bf5a1958b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,21 @@ -rootProject.name = "CloudStream" +// https://developer.android.com/build#settings-file +pluginManagement { + repositories { + gradlePluginPortal() + google() + mavenCentral() + } +} + +dependencyResolutionManagement { + repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) + repositories { + google() + mavenCentral() + mavenLocal() + maven("https://jitpack.io") + } +} -include(":app") -include(":library") -include(":docs") \ No newline at end of file +rootProject.name = "CloudStream" +include(":app", ":library", ":docs") From 748b8c4f838a08d704e26b742a027a8ea5fc2e48 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 15:27:09 -0700 Subject: [PATCH 169/389] Try filecontents provider --- app/build.gradle.kts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f918083844e..114e6a3dd62 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -16,15 +16,15 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() fun getGitCommitHash(): String { return try { - val headFile = file("${project.rootDir}/.git/HEAD") + val headFile = providers.fileContents(rootProject.layout.projectDirectory.file(".git/HEAD")) // Read the commit hash from .git/HEAD - if (headFile.exists()) { - val headContent = headFile.readText().trim() + if (/*headFile.exists()*/true) { + val headContent = headFile.asText.trim() if (headContent.startsWith("ref:")) { val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = file("${project.rootDir}/.git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" + val commitFile = providers.fileContents(rootProject.layout.projectDirectory.file(".git/$refPath")) + if (commitFile.exists()) commitFile.asText.trim() else "" } else headContent // If it's a detached HEAD (commit hash directly) } else { "" // If .git/HEAD doesn't exist From 7d324bc833f5390e5de285097aa67fc08b798be2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 15:40:05 -0700 Subject: [PATCH 170/389] Try something else --- app/build.gradle.kts | 35 ++++++++++++++++++++++++++++++----- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 114e6a3dd62..611a8065820 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,6 +4,7 @@ import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile +import java.io.ByteArrayOutputStream plugins { alias(libs.plugins.android.application) @@ -14,17 +15,17 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -fun getGitCommitHash(): String { +/*fun getGitCommitHash(): Provider { return try { val headFile = providers.fileContents(rootProject.layout.projectDirectory.file(".git/HEAD")) // Read the commit hash from .git/HEAD - if (/*headFile.exists()*/true) { - val headContent = headFile.asText.trim() + if (headFile.exists()true) { + val headContent = headFile.asText if (headContent.startsWith("ref:")) { val refPath = headContent.substring(5) // e.g., refs/heads/main val commitFile = providers.fileContents(rootProject.layout.projectDirectory.file(".git/$refPath")) - if (commitFile.exists()) commitFile.asText.trim() else "" + if (commitFile.exists()true) commitFile.asText else "" } else headContent // If it's a detached HEAD (commit hash directly) } else { "" // If .git/HEAD doesn't exist @@ -32,6 +33,30 @@ fun getGitCommitHash(): String { } catch (_: Throwable) { "" // Just return an empty string if any exception occurs } +}*/ + +fun currentGitCommit() = git(rootProject.layout.projectDirectory, "rev-parse", "HEAD") +fun git(checkoutDir: Directory, vararg args: String): Provider = provider { + val execOutput = ByteArrayOutputStream() + val execResult = exec { + workingDir = checkoutDir.asFile + isIgnoreExitValue = true + commandLine = listOf("git", *args) + if (OperatingSystem.current().isWindows) { + commandLine = listOf("cmd", "/c") + commandLine + } + standardOutput = execOutput + } + when { + execResult.exitValue == 0 -> String(execOutput.toByteArray()).trim() + checkoutDir.asFile.resolve(".git/HEAD").exists() -> { + // Read commit id directly from filesystem + val headRef = checkoutDir.asFile.resolve(".git/HEAD").readText() + .replace("ref: ", "").trim() + checkoutDir.asFile.resolve(".git/$headRef").readText().trim() + } + else -> "" // It's a source distribution, we don't know. + } } android { @@ -65,7 +90,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", getGitCommitHash()) + resValue("string", "commit_hash", currentGitCommit()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From f173fa7239cdc5629f379c249a509f1959a9ff17 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 15:43:33 -0700 Subject: [PATCH 171/389] Again --- app/build.gradle.kts | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 611a8065820..43d40b48bf0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -35,28 +35,9 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ -fun currentGitCommit() = git(rootProject.layout.projectDirectory, "rev-parse", "HEAD") -fun git(checkoutDir: Directory, vararg args: String): Provider = provider { - val execOutput = ByteArrayOutputStream() - val execResult = exec { - workingDir = checkoutDir.asFile - isIgnoreExitValue = true - commandLine = listOf("git", *args) - if (OperatingSystem.current().isWindows) { - commandLine = listOf("cmd", "/c") + commandLine - } - standardOutput = execOutput - } - when { - execResult.exitValue == 0 -> String(execOutput.toByteArray()).trim() - checkoutDir.asFile.resolve(".git/HEAD").exists() -> { - // Read commit id directly from filesystem - val headRef = checkoutDir.asFile.resolve(".git/HEAD").readText() - .replace("ref: ", "").trim() - checkoutDir.asFile.resolve(".git/$headRef").readText().trim() - } - else -> "" // It's a source distribution, we don't know. - } +fun currentGitCommit() = providers.exec { + executable("git") + args("rev-parse", "--short", "HEAD") } android { From 17e1e61c89399aa54b63862ab538b22874f8dbf5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 15:44:56 -0700 Subject: [PATCH 172/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 43d40b48bf0..636ac3787f3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -71,7 +71,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", currentGitCommit()) + resValue("string", "commit_hash", currentGitCommit().standardOutput.asText.get().trim()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 5ed7674fcdefe0730641210285851bf06f2d0e2e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 16:02:06 -0700 Subject: [PATCH 173/389] Try something else --- app/build.gradle.kts | 32 +++++++++----------------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 636ac3787f3..c339738667a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,7 +4,6 @@ import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile -import java.io.ByteArrayOutputStream plugins { alias(libs.plugins.android.application) @@ -15,31 +14,18 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -/*fun getGitCommitHash(): Provider { - return try { - val headFile = providers.fileContents(rootProject.layout.projectDirectory.file(".git/HEAD")) - - // Read the commit hash from .git/HEAD - if (headFile.exists()true) { - val headContent = headFile.asText - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = providers.fileContents(rootProject.layout.projectDirectory.file(".git/$refPath")) - if (commitFile.exists()true) commitFile.asText else "" - } else headContent // If it's a detached HEAD (commit hash directly) - } else { - "" // If .git/HEAD doesn't exist - }.take(7) // Return the short commit hash - } catch (_: Throwable) { - "" // Just return an empty string if any exception occurs - } -}*/ - -fun currentGitCommit() = providers.exec { +fun getCommitHashExec() = providers.exec { executable("git") args("rev-parse", "--short", "HEAD") } +fun getGitCommitHash(): String = try { + getCommitHashExec().standardOutput.asText.get().trim() +} catch (e: Exception) { + logger.error("Failed to get git commit hash", e) + "" +} + android { @Suppress("UnstableApiUsage") testOptions { @@ -71,7 +57,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", currentGitCommit().standardOutput.asText.get().trim()) + resValue("string", "commit_hash", getGitCommitHash()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 7990fdedb8ba82341587ad0fd579280478751b2c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 16:13:37 -0700 Subject: [PATCH 174/389] Maybe? --- app/build.gradle.kts | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c339738667a..b71821edde9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,18 +14,6 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -fun getCommitHashExec() = providers.exec { - executable("git") - args("rev-parse", "--short", "HEAD") -} - -fun getGitCommitHash(): String = try { - getCommitHashExec().standardOutput.asText.get().trim() -} catch (e: Exception) { - logger.error("Failed to get git commit hash", e) - "" -} - android { @Suppress("UnstableApiUsage") testOptions { @@ -57,7 +45,11 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", getGitCommitHash()) + resValue("string", "commit_hash", + providers.exec { + commandLine("git", "rev-parse", "--short", "HEAD") + }.standardOutput.asText.get().trim() + ) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From ff3e1e94f10f3e80d2920a99b983be233bb8245f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 23 Nov 2025 16:22:42 -0700 Subject: [PATCH 175/389] Revert method for now --- app/build.gradle.kts | 26 +++++++++++++++++++++----- 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b71821edde9..f918083844e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,6 +14,26 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() +fun getGitCommitHash(): String { + return try { + val headFile = file("${project.rootDir}/.git/HEAD") + + // Read the commit hash from .git/HEAD + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) // e.g., refs/heads/main + val commitFile = file("${project.rootDir}/.git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent // If it's a detached HEAD (commit hash directly) + } else { + "" // If .git/HEAD doesn't exist + }.take(7) // Return the short commit hash + } catch (_: Throwable) { + "" // Just return an empty string if any exception occurs + } +} + android { @Suppress("UnstableApiUsage") testOptions { @@ -45,11 +65,7 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", - providers.exec { - commandLine("git", "rev-parse", "--short", "HEAD") - }.standardOutput.asText.get().trim() - ) + resValue("string", "commit_hash", getGitCommitHash()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() From 2b8c649a9470ae652c006141ca5606d51a7e6ac5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 24 Nov 2025 10:50:49 -0700 Subject: [PATCH 176/389] Update --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 9955ab25218..a2a00ab4742 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -21,6 +21,7 @@ kotlin { android { // If this is the same com.lagradost.cloudstream3.R stops working namespace = "com.lagradost.api" + compileSdk = libs.versions.compileSdk.get().toInt() minSdk = libs.versions.minSdk.get().toInt() From f89340d51ed463e8fc76bbdd9841147d9eac4fee Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 24 Nov 2025 12:19:03 -0700 Subject: [PATCH 177/389] Test --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index f11726f0422..b178e4ce967 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -36,6 +36,7 @@ jobs: - name: Deploy Reports to GitHub Pages run: | + ls app/build/libs/app-sources.jar BRANCH_NAME=${GITHUB_REF#refs/heads/} TARGET_DIR=gh-pages/$BRANCH_NAME mkdir -p "$TARGET_DIR" From 747400dcf3078325ea318474f064515a09f576cf Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 24 Nov 2025 12:31:53 -0700 Subject: [PATCH 178/389] - --- .github/workflows/pull_request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b178e4ce967..f11726f0422 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -36,7 +36,6 @@ jobs: - name: Deploy Reports to GitHub Pages run: | - ls app/build/libs/app-sources.jar BRANCH_NAME=${GITHUB_REF#refs/heads/} TARGET_DIR=gh-pages/$BRANCH_NAME mkdir -p "$TARGET_DIR" From f14af00a916746a8151603b6f5aea7693e77d443 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 13:39:33 -0700 Subject: [PATCH 179/389] Update --- .github/workflows/pull_request.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index f11726f0422..904d02864e8 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,9 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: | - ./gradlew assemblePrerelease build androidSourcesJar --profile - ./gradlew makeJar --profile # for classes.jar, has to be done after assemblePrerelease + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --profile - name: Upload Artifact uses: actions/upload-artifact@v5 From 208ae13355ff9fcae2b3b24a3d109414087be581 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 13:41:10 -0700 Subject: [PATCH 180/389] Update --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 30ef4184217..6783a60e737 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -258,6 +258,7 @@ tasks.register("makeJar") { // Duplicates cause hard to catch errors, better to fail at compile time. duplicatesStrategy = DuplicatesStrategy.FAIL dependsOn(tasks.getByName("copyJar")) + mustRunAfter(tasks.getByName("assemble")) from( zipTree("build/app-classes/classes.jar"), zipTree("build/app-classes/library-jvm.jar") From 69f5b26c7794e478804381bc75291d562d2b1586 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 13:51:41 -0700 Subject: [PATCH 181/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6783a60e737..c56f9e95127 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -243,6 +243,7 @@ tasks.register("androidSourcesJar") { } tasks.register("copyJar") { + mustRunAfter(tasks.getByName("assemble")) from( "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar", "../library/build/libs" @@ -258,7 +259,6 @@ tasks.register("makeJar") { // Duplicates cause hard to catch errors, better to fail at compile time. duplicatesStrategy = DuplicatesStrategy.FAIL dependsOn(tasks.getByName("copyJar")) - mustRunAfter(tasks.getByName("assemble")) from( zipTree("build/app-classes/classes.jar"), zipTree("build/app-classes/library-jvm.jar") From f2fe1bee0086d36e4e1667e53a9b090fb167f80e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:03:19 -0700 Subject: [PATCH 182/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c56f9e95127..53638379c98 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -243,7 +243,7 @@ tasks.register("androidSourcesJar") { } tasks.register("copyJar") { - mustRunAfter(tasks.getByName("assemble")) + dependsOn(tasks.getByName("build")) from( "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar", "../library/build/libs" From cfbbd21ed4b6f83c3779d75421263fd899bf13a3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:13:19 -0700 Subject: [PATCH 183/389] Try --- app/build.gradle.kts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 53638379c98..5d7e3952f14 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -239,11 +239,16 @@ dependencies { tasks.register("androidSourcesJar") { archiveClassifier.set("sources") - from(android.sourceSets.getByName("main").java.directories) // Full Sources + // from(android.sourceSets.getByName("main").java.directories) // Full Sources + extensions.findByType()?.getByName("main")?.java + ?.srcDirs?.let { from(it) } ?: error("Could not find srcDirs") } tasks.register("copyJar") { - dependsOn(tasks.getByName("build")) + dependsOn( + tasks.getByName("build"), + tasks.getByName("jvmJar") + ) from( "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar", "../library/build/libs" From 74735b23d118e01f43e4bf342e9aed5f8711db2a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:15:48 -0700 Subject: [PATCH 184/389] - --- app/build.gradle.kts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5d7e3952f14..75e1aae662d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -245,10 +245,7 @@ tasks.register("androidSourcesJar") { } tasks.register("copyJar") { - dependsOn( - tasks.getByName("build"), - tasks.getByName("jvmJar") - ) + dependsOn("build", "jvmJar") from( "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar", "../library/build/libs" From 627448ccc77d7e44234e2b7a4a2dc445a30cddcb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:17:13 -0700 Subject: [PATCH 185/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 75e1aae662d..97a64e5560a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -240,7 +240,7 @@ dependencies { tasks.register("androidSourcesJar") { archiveClassifier.set("sources") // from(android.sourceSets.getByName("main").java.directories) // Full Sources - extensions.findByType()?.getByName("main")?.java + extensions.findByType()?.getByName("main")?.allJava ?.srcDirs?.let { from(it) } ?: error("Could not find srcDirs") } From fde40bf4cb0af7c4019d9f50c68c62eca8843121 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:18:47 -0700 Subject: [PATCH 186/389] - --- app/build.gradle.kts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 97a64e5560a..87936540392 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -239,9 +239,7 @@ dependencies { tasks.register("androidSourcesJar") { archiveClassifier.set("sources") - // from(android.sourceSets.getByName("main").java.directories) // Full Sources - extensions.findByType()?.getByName("main")?.allJava - ?.srcDirs?.let { from(it) } ?: error("Could not find srcDirs") + from(android.sourceSets.getByName("main").java.directories) // Full Sources } tasks.register("copyJar") { From a6e74eb7a6c24224e0be794280ff24c9d8a24815 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 25 Nov 2025 14:24:53 -0700 Subject: [PATCH 187/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 87936540392..bbcf2758ade 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -243,7 +243,7 @@ tasks.register("androidSourcesJar") { } tasks.register("copyJar") { - dependsOn("build", "jvmJar") + dependsOn("build", ":library:jvmJar") from( "build/intermediates/compile_app_classes_jar/prereleaseDebug/bundlePrereleaseDebugClassesToCompileJar", "../library/build/libs" From ce5e7974a3ddc659f2d8f63a04dd16b416e76e6e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 26 Nov 2025 20:00:47 -0700 Subject: [PATCH 188/389] beta3 --- 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 ac0d09c53ff..610a4c4a33e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-beta02" +androidGradlePlugin = "9.0.0-beta03" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From f7669ded7ae33ab67b562346fb3df6a763b7ecfa Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 27 Nov 2025 13:07:58 -0700 Subject: [PATCH 189/389] Add --- app/build.gradle.kts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0a2b60aa922..219061577e9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -269,7 +269,10 @@ tasks.withType { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) optIn.add("com.lagradost.cloudstream3.Prerelease") - freeCompilerArgs.add("-Xannotation-default-target=param-property") + freeCompilerArgs.addAll( + "-Xannotation-default-target=param-property", + "-Xreturn-value-checker=check" + ) } } From f4d710fb38ed6402453d5e9506e9041387247e58 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 27 Nov 2025 13:08:28 -0700 Subject: [PATCH 190/389] Add --- library/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index a2a00ab4742..fd992b61727 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -39,7 +39,8 @@ kotlin { compilerOptions { freeCompilerArgs.addAll( "-Xexpect-actual-classes", - "-Xannotation-default-target=param-property" + "-Xannotation-default-target=param-property", + "-Xreturn-value-checker=check" ) } From 0f7440a7d715178064a2d17283406d9b89630909 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 27 Nov 2025 13:13:32 -0700 Subject: [PATCH 191/389] - --- app/build.gradle.kts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 219061577e9..0a2b60aa922 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -269,10 +269,7 @@ tasks.withType { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) optIn.add("com.lagradost.cloudstream3.Prerelease") - freeCompilerArgs.addAll( - "-Xannotation-default-target=param-property", - "-Xreturn-value-checker=check" - ) + freeCompilerArgs.add("-Xannotation-default-target=param-property") } } From 4de5b2b2ae483ce0cc98e053440d142dd2488ab6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 27 Nov 2025 13:13:54 -0700 Subject: [PATCH 192/389] - --- library/build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index fd992b61727..a2a00ab4742 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -39,8 +39,7 @@ kotlin { compilerOptions { freeCompilerArgs.addAll( "-Xexpect-actual-classes", - "-Xannotation-default-target=param-property", - "-Xreturn-value-checker=check" + "-Xannotation-default-target=param-property" ) } From 64585fb9b187b449515da36cf017f0aa239f9ebf Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 28 Nov 2025 19:12:53 -0700 Subject: [PATCH 193/389] Suppress MissingTranslation --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0a2b60aa922..4a9a2b9977a 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -149,6 +149,7 @@ android { lint { abortOnError = false checkReleaseBuilds = false + disable.add("MissingTranslation") } buildFeatures { From 12dcb5941afeb8c86d2ccd5570f6a0d2652bb50c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 29 Nov 2025 16:01:08 -0700 Subject: [PATCH 194/389] Test --- .github/workflows/pull_request.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 904d02864e8..fe2b47b390e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -30,7 +30,11 @@ jobs: uses: actions/upload-artifact@v5 with: name: pull-request-build - path: "app/build/outputs/apk/prerelease/debug/*.apk" + path: | + app/build/outputs/apk/prerelease/debug/*.apk + app/build/outputs/apk/prerelease/release/*.apk + app/build/libs/app-sources.jar + app/build/classes.jar - name: Deploy Reports to GitHub Pages run: | From ef8d84702afc4d6103480fe034a227567d2fcf84 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 29 Nov 2025 16:14:33 -0700 Subject: [PATCH 195/389] Test --- 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 0275e661254..00b1f29bbec 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -48,7 +48,7 @@ workRuntimeKtx = "2.10.5" jvmTarget = "1.8" jdkToolchain = "17" -minSdk = "21" +minSdk = "23" compileSdk = "36" targetSdk = "36" From 47b35f6231e0db46a6b7fb2dbdd34fc83dc2686e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 29 Nov 2025 16:26:57 -0700 Subject: [PATCH 196/389] - --- 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 00b1f29bbec..0275e661254 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -48,7 +48,7 @@ workRuntimeKtx = "2.10.5" jvmTarget = "1.8" jdkToolchain = "17" -minSdk = "23" +minSdk = "21" compileSdk = "36" targetSdk = "36" From ce2207fd5be6f65315e7da664c5b4632b5895b12 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 30 Nov 2025 11:15:14 -0700 Subject: [PATCH 197/389] Test without maven --- library/build.gradle.kts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index a2a00ab4742..700d902500c 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -6,7 +6,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { - id("maven-publish") // Gradle core plugin + // id("maven-publish") // Gradle core plugin alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.multiplatform.library) alias(libs.plugins.buildkonfig) @@ -90,13 +90,13 @@ buildkonfig { } } -publishing { +/*publishing { publications { withType { groupId = "com.lagradost.api" } } -} +}*/ dokka { moduleName = "Library" From c55077a54e9791932256a103db2829cfc125e6b0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 30 Nov 2025 11:49:53 -0700 Subject: [PATCH 198/389] -dokka --- library/build.gradle.kts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 700d902500c..772dab46f5a 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -1,7 +1,7 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties import com.codingfeline.buildkonfig.compiler.FieldSpec -import org.jetbrains.dokka.gradle.engine.parameters.KotlinPlatform -import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier +// import org.jetbrains.dokka.gradle.engine.parameters.KotlinPlatform +// import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile @@ -10,7 +10,7 @@ plugins { alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.multiplatform.library) alias(libs.plugins.buildkonfig) - alias(libs.plugins.dokka) + // alias(libs.plugins.dokka) } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) @@ -98,7 +98,7 @@ buildkonfig { } }*/ -dokka { +/*dokka { moduleName = "Library" dokkaSourceSets { configureEach { @@ -115,4 +115,4 @@ dokka { } } } -} +}*/ From c56c642e5c11cc69f523910913be4b93d1896c99 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 30 Nov 2025 12:03:51 -0700 Subject: [PATCH 199/389] Try --- library/build.gradle.kts | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 772dab46f5a..4e0dcc1b240 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -1,16 +1,16 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties import com.codingfeline.buildkonfig.compiler.FieldSpec -// import org.jetbrains.dokka.gradle.engine.parameters.KotlinPlatform -// import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier +import org.jetbrains.dokka.gradle.engine.parameters.KotlinPlatform +import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { - // id("maven-publish") // Gradle core plugin + id("maven-publish") // Gradle core plugin alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.multiplatform.library) alias(libs.plugins.buildkonfig) - // alias(libs.plugins.dokka) + alias(libs.plugins.dokka) } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) @@ -90,15 +90,19 @@ buildkonfig { } } -/*publishing { +tasks.named("assemble") { + dependsOn("generateBuildKonfig") +} + +publishing { publications { withType { groupId = "com.lagradost.api" } } -}*/ +} -/*dokka { +dokka { moduleName = "Library" dokkaSourceSets { configureEach { @@ -115,4 +119,4 @@ buildkonfig { } } } -}*/ +} From 7bb83c0c3f52d7a869453acd920f8d1229ab8e83 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 30 Nov 2025 12:15:23 -0700 Subject: [PATCH 200/389] Remove --- library/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 4e0dcc1b240..a2a00ab4742 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -90,10 +90,6 @@ buildkonfig { } } -tasks.named("assemble") { - dependsOn("generateBuildKonfig") -} - publishing { publications { withType { From 1300bc4148bb6527434282b2ec93ad1419637228 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:12:41 -0700 Subject: [PATCH 201/389] Try new generator task --- app/build.gradle.kts | 53 +++++++++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 28e373421d2..eba2da60b24 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,25 +15,46 @@ val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() fun getGitCommitHash(): String { - return try { - val headFile = file("${project.rootDir}/.git/HEAD") - - // Read the commit hash from .git/HEAD - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = file("${project.rootDir}/.git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent // If it's a detached HEAD (commit hash directly) - } else { - "" // If .git/HEAD doesn't exist - }.take(7) // Return the short commit hash - } catch (_: Throwable) { - "" // Just return an empty string if any exception occurs + return "" +} + +val generatorTask = project.tasks.register("generator") { + val outputDirectory = project.layout.projectDirectory.dir("src/main/kotlinGen") + outputs.dir(outputDirectory) + val hash = project.provider { + try { + val headFile = file("${project.rootDir}/.git/HEAD") + + // Read the commit hash from .git/HEAD + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) // e.g., refs/heads/main + val commitFile = file("${project.rootDir}/.git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent // If it's a detached HEAD (commit hash directly) + } else { + "" // If .git/HEAD doesn't exist + }.take(7) // Return the short commit hash + } catch (_: Throwable) { + "" // Just return an empty string if any exception occurs + } + } + doLast { + outputDirectory.file("GitInfo.kt").asFile.writeText( + // language=kotlin + """ + package com.lagradost.cloudstream3 + object GitInfo { + const val HASH = "${hash.get()}" + } + """.trimIndent() + ) } } +kotlin.sourceSets.getByName("main").generatedKotlin.srcDir(generatorTask) + android { @Suppress("UnstableApiUsage") testOptions { From cd4f12a45888b38c2fee28ae4e6fa08a90171276 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:19:00 -0700 Subject: [PATCH 202/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index eba2da60b24..ab4f0b997e0 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -53,7 +53,7 @@ val generatorTask = project.tasks.register("generator") { } } -kotlin.sourceSets.getByName("main").generatedKotlin.srcDir(generatorTask) +android.sourceSets.getByName("main").java.srcDir(generatorTask) android { @Suppress("UnstableApiUsage") From 15cea9380c4647d7aa0c2aec5deb364f0c3f220d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:21:06 -0700 Subject: [PATCH 203/389] test --- gradle.properties | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle.properties b/gradle.properties index 2b080727e54..d3ac511db79 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,3 +28,4 @@ org.gradle.configuration-cache=true android.javaCompile.suppressSourceTargetDeprecationWarning=true org.gradle.warning.mode=all +android.sourceset.disallowProvider=false From 76050e83bd25b16169243a5fdb567b3a5cd60217 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:35:20 -0700 Subject: [PATCH 204/389] Try --- .../lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index c2d5e43e954..ea899c804f1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -13,6 +13,7 @@ import androidx.preference.PreferenceFragmentCompat import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.MaterialToolbar import com.lagradost.cloudstream3.BuildConfig +import com.lagradost.cloudstream3.GitInfo import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.MainSettingsBinding import com.lagradost.cloudstream3.mvvm.logError @@ -247,7 +248,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitInfo = getString(R.string.commit_hash) + val commitInfo = GitInfo.HASH/*getString(R.string.commit_hash)*/ val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") @@ -259,4 +260,4 @@ class SettingsFragment : BaseFragment( true } } -} \ No newline at end of file +} From 3d6e2de1588e06d98a89fe32e0fc89c3b9403519 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:43:00 -0700 Subject: [PATCH 205/389] Try? --- app/build.gradle.kts | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ab4f0b997e0..da48d85483c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,7 +18,7 @@ fun getGitCommitHash(): String { return "" } -val generatorTask = project.tasks.register("generator") { +/*val generatorTask = project.tasks.register("generator") { val outputDirectory = project.layout.projectDirectory.dir("src/main/kotlinGen") outputs.dir(outputDirectory) val hash = project.provider { @@ -53,7 +53,42 @@ val generatorTask = project.tasks.register("generator") { } } -android.sourceSets.getByName("main").java.srcDir(generatorTask) +android.sourceSets.getByName("main").java.srcDir(generatorTask)*/ +val generatorTask = project.tasks.register("generator") { + val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") + + outputs.dir(outputDirectory) + + val hash = project.provider { + try { + val headFile = file("${project.rootDir}/.git/HEAD") + + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) + val commitFile = file("${project.rootDir}/.git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent + } else { + "" + }.take(7) + } catch (_: Throwable) { + "" + } + } + + doLast { + outputDirectory.file("GitInfo.kt").asFile.writeText( + """ + package com.lagradost.cloudstream3 + object GitInfo { + const val HASH = "${hash.get()}" + } + """.trimIndent() + ) + } +} android { @Suppress("UnstableApiUsage") From ce87f4f9c9689a2b60cf811870eaca99f8aeac07 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:46:40 -0700 Subject: [PATCH 206/389] Try --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index fe2b47b390e..a26362503b9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --profile + run: ./gradlew generator assemblePrerelease build androidSourcesJar makeJar --profile - name: Upload Artifact uses: actions/upload-artifact@v5 From f4e5d7513d8b2f24bc883bda05678371a06ef892 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 10:50:58 -0700 Subject: [PATCH 207/389] Try??? --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index da48d85483c..b358802af21 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -322,6 +322,7 @@ tasks.register("makeJar") { } tasks.withType { + dependsOn(tasks.named("generator")) compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) From f7d55444b39d7e3decd2aa0e696fe1ada5c9b743 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:07:55 -0700 Subject: [PATCH 208/389] Remove old task and rename new task and fix dependency --- .github/workflows/pull_request.yml | 2 +- app/build.gradle.kts | 42 +++--------------------------- gradle.properties | 1 - 3 files changed, 4 insertions(+), 41 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index a26362503b9..fe2b47b390e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew generator assemblePrerelease build androidSourcesJar makeJar --profile + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --profile - name: Upload Artifact uses: actions/upload-artifact@v5 diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b358802af21..bb362a3b20c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,45 +18,8 @@ fun getGitCommitHash(): String { return "" } -/*val generatorTask = project.tasks.register("generator") { - val outputDirectory = project.layout.projectDirectory.dir("src/main/kotlinGen") - outputs.dir(outputDirectory) - val hash = project.provider { - try { - val headFile = file("${project.rootDir}/.git/HEAD") - - // Read the commit hash from .git/HEAD - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = file("${project.rootDir}/.git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent // If it's a detached HEAD (commit hash directly) - } else { - "" // If .git/HEAD doesn't exist - }.take(7) // Return the short commit hash - } catch (_: Throwable) { - "" // Just return an empty string if any exception occurs - } - } - doLast { - outputDirectory.file("GitInfo.kt").asFile.writeText( - // language=kotlin - """ - package com.lagradost.cloudstream3 - object GitInfo { - const val HASH = "${hash.get()}" - } - """.trimIndent() - ) - } -} - -android.sourceSets.getByName("main").java.srcDir(generatorTask)*/ -val generatorTask = project.tasks.register("generator") { +project.tasks.register("generateGitInfo") { val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") - outputs.dir(outputDirectory) val hash = project.provider { @@ -292,6 +255,7 @@ dependencies { } tasks.register("androidSourcesJar") { + dependsOn("generateGitInfo") archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } @@ -322,7 +286,7 @@ tasks.register("makeJar") { } tasks.withType { - dependsOn(tasks.named("generator")) + dependsOn("generateGitInfo") compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) diff --git a/gradle.properties b/gradle.properties index d3ac511db79..2b080727e54 100644 --- a/gradle.properties +++ b/gradle.properties @@ -28,4 +28,3 @@ org.gradle.configuration-cache=true android.javaCompile.suppressSourceTargetDeprecationWarning=true org.gradle.warning.mode=all -android.sourceset.disallowProvider=false From eabc2bc030fe6e1e36daa37bfc02492ef45001be Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:16:25 -0700 Subject: [PATCH 209/389] test --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index ea899c804f1..1d1b5d177b7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -248,7 +248,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitInfo = GitInfo.HASH/*getString(R.string.commit_hash)*/ + val commitInfo = GitInfo.HASH/*getString(R.string.commit_hash) */ val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") From 1b136c09c7578175406c4b76f4acb0c0d9b1dfc1 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:22:13 -0700 Subject: [PATCH 210/389] Try again... --- app/build.gradle.kts | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bb362a3b20c..80d3db91736 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -18,35 +18,29 @@ fun getGitCommitHash(): String { return "" } -project.tasks.register("generateGitInfo") { +tasks.register("generateGitInfo") { val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") outputs.dir(outputDirectory) - val hash = project.provider { - try { - val headFile = file("${project.rootDir}/.git/HEAD") - + doLast { + val headFile = file("${project.rootDir}/.git/HEAD") + val hash = try { if (headFile.exists()) { val headContent = headFile.readText().trim() if (headContent.startsWith("ref:")) { val refPath = headContent.substring(5) val commitFile = file("${project.rootDir}/.git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" + if (commitFile.exists()) commitFile.readText().trim() + else "" } else headContent - } else { - "" - }.take(7) - } catch (_: Throwable) { - "" - } - } + } else "" + }.take(7) - doLast { outputDirectory.file("GitInfo.kt").asFile.writeText( """ package com.lagradost.cloudstream3 - object GitInfo { - const val HASH = "${hash.get()}" + object GitInfo { + const val HASH = "$hash" } """.trimIndent() ) From 59b5187a4c876de5b2a31234f9b2fe06c600833c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:27:46 -0700 Subject: [PATCH 211/389] Fix --- app/build.gradle.kts | 65 ++++++++++++++++++++++++-------------------- 1 file changed, 35 insertions(+), 30 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 80d3db91736..8519e63be67 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -19,32 +19,37 @@ fun getGitCommitHash(): String { } tasks.register("generateGitInfo") { - val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") - outputs.dir(outputDirectory) - - doLast { - val headFile = file("${project.rootDir}/.git/HEAD") - val hash = try { - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) - val commitFile = file("${project.rootDir}/.git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() - else "" - } else headContent - } else "" - }.take(7) - - outputDirectory.file("GitInfo.kt").asFile.writeText( - """ - package com.lagradost.cloudstream3 - object GitInfo { - const val HASH = "$hash" - } - """.trimIndent() - ) - } + val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") + outputs.dir(outputDirectory) + + doLast { + val hash = try { + val headFile = file("${project.rootDir}/.git/HEAD") + + // Read the commit hash from .git/HEAD + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) // e.g., refs/heads/main + val commitFile = file("${project.rootDir}/.git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent // If it's a detached HEAD (commit hash directly) + } else { + "" // If .git/HEAD doesn't exist + }.take(7) // Return the short commit hash + } catch (_: Throwable) { + "" // Just return an empty string if any exception occurs + } + + outputDirectory.file("GitInfo.kt").asFile.writeText( + """ + package com.lagradost.cloudstream3 + object GitInfo { + const val HASH = "$hash" + } + """.trimIndent() + ) + } } android { @@ -152,11 +157,11 @@ android { } java { - // Use Java 17 toolchain even if a higher JDK runs the build. + // Use Java 17 toolchain even if a higher JDK runs the build. // We still use Java 8 for now which higher JDKs have deprecated. - toolchain { - languageVersion.set(JavaLanguageVersion.of(libs.versions.jdkToolchain.get())) - } + toolchain { + languageVersion.set(JavaLanguageVersion.of(libs.versions.jdkToolchain.get())) + } } lint { From 179b3ae099665c8c3c445f81367292930c588c19 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:41:20 -0700 Subject: [PATCH 212/389] Try fix --- app/build.gradle.kts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8519e63be67..379fa7c1825 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -20,18 +20,19 @@ fun getGitCommitHash(): String { tasks.register("generateGitInfo") { val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") + val rootDir = project.rootDir outputs.dir(outputDirectory) doLast { val hash = try { - val headFile = file("${project.rootDir}/.git/HEAD") + val headFile = File(rootDir, ".git/HEAD") // Read the commit hash from .git/HEAD if (headFile.exists()) { val headContent = headFile.readText().trim() if (headContent.startsWith("ref:")) { val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = file("${project.rootDir}/.git/$refPath") + val commitFile = File(rootDir, ".git/$refPath") if (commitFile.exists()) commitFile.readText().trim() else "" } else headContent // If it's a detached HEAD (commit hash directly) } else { From 6295a20f759758fd64b9647fa563368ebf4f7d49 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 11:49:20 -0700 Subject: [PATCH 213/389] test --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 1d1b5d177b7..ea899c804f1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -248,7 +248,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitInfo = GitInfo.HASH/*getString(R.string.commit_hash) */ + val commitInfo = GitInfo.HASH/*getString(R.string.commit_hash)*/ val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") From 74a30b9355c8a3a726b408bf2727667b62367fac Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:00:57 -0700 Subject: [PATCH 214/389] use string again --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index ea899c804f1..992edac6aa7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -13,7 +13,6 @@ import androidx.preference.PreferenceFragmentCompat import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.MaterialToolbar import com.lagradost.cloudstream3.BuildConfig -import com.lagradost.cloudstream3.GitInfo import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.MainSettingsBinding import com.lagradost.cloudstream3.mvvm.logError @@ -248,7 +247,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitInfo = GitInfo.HASH/*getString(R.string.commit_hash)*/ + val commitInfo = getString(R.string.commit_hash) val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") From 65160759fa0387b0c47fe9b29650752f77048e01 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:05:51 -0700 Subject: [PATCH 215/389] Try using string --- app/build.gradle.kts | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 379fa7c1825..62259d1e936 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,12 +14,8 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -fun getGitCommitHash(): String { - return "" -} - tasks.register("generateGitInfo") { - val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") + val outputDirectory = project.layout.projectDirectory.dir("src/main/res/values") val rootDir = project.rootDir outputs.dir(outputDirectory) @@ -42,12 +38,11 @@ tasks.register("generateGitInfo") { "" // Just return an empty string if any exception occurs } - outputDirectory.file("GitInfo.kt").asFile.writeText( + outputDirectory.file("donottranslate-git.xml").asFile.writeText( """ - package com.lagradost.cloudstream3 - object GitInfo { - const val HASH = "$hash" - } + + $hash + """.trimIndent() ) } @@ -84,7 +79,6 @@ android { versionName = "4.6.1" resValue("string", "app_version", "${defaultConfig.versionName}${versionNameSuffix ?: ""}") - resValue("string", "commit_hash", getGitCommitHash()) resValue("bool", "is_prerelease", "false") manifestPlaceholders["target_sdk_version"] = libs.versions.targetSdk.get() @@ -255,7 +249,7 @@ dependencies { } tasks.register("androidSourcesJar") { - dependsOn("generateGitInfo") + // dependsOn("generateGitInfo") archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } @@ -286,7 +280,7 @@ tasks.register("makeJar") { } tasks.withType { - dependsOn("generateGitInfo") + // dependsOn("generateGitInfo") compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) From 6054260ffc7db9f2aface5963cfc402ec5ec0614 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:07:15 -0700 Subject: [PATCH 216/389] Add --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index fe2b47b390e..c160b92212e 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --profile + run: ./gradlew generateGitInfo assemblePrerelease build androidSourcesJar makeJar --profile - name: Upload Artifact uses: actions/upload-artifact@v5 From ef390e21b3d839e961d8c439753a256f3b440e53 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:12:02 -0700 Subject: [PATCH 217/389] Fix --- app/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 62259d1e936..1e1d92cb927 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -173,6 +173,10 @@ android { namespace = "com.lagradost.cloudstream3" } +tasks.named("preBuild") { + dependsOn("generateGitInfo") +} + dependencies { // Testing testImplementation(libs.junit) From fd5ad826844bb6169f10cf424662771cac124dfd Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:21:50 -0700 Subject: [PATCH 218/389] - --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 992edac6aa7..c2d5e43e954 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -259,4 +259,4 @@ class SettingsFragment : BaseFragment( true } } -} +} \ No newline at end of file From ece6cc3cc35d0fd81f42716dea30ac3ae05fcdb8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:29:23 -0700 Subject: [PATCH 219/389] - --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c160b92212e..9c89d0054de 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew generateGitInfo assemblePrerelease build androidSourcesJar makeJar --profile + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From f8bb46c61cd1ba32159df19a2ab958c29f01d511 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:40:54 -0700 Subject: [PATCH 220/389] Use GitInfo.kt again --- app/build.gradle.kts | 19 ++++++++----------- .../ui/settings/SettingsFragment.kt | 8 +++++--- .../cloudstream3/utils/InAppUpdater.kt | 9 +-------- app/src/main/res/layout/main_settings.xml | 6 +++--- 4 files changed, 17 insertions(+), 25 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1e1d92cb927..68825e08c7b 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,7 +15,7 @@ val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() tasks.register("generateGitInfo") { - val outputDirectory = project.layout.projectDirectory.dir("src/main/res/values") + val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") val rootDir = project.rootDir outputs.dir(outputDirectory) @@ -38,11 +38,12 @@ tasks.register("generateGitInfo") { "" // Just return an empty string if any exception occurs } - outputDirectory.file("donottranslate-git.xml").asFile.writeText( + outputDirectory.file("GitInfo.kt").asFile.writeText( """ - - $hash - + package com.lagradost.cloudstream3 + object GitInfo { + const val HASH = "$hash" + } """.trimIndent() ) } @@ -173,10 +174,6 @@ android { namespace = "com.lagradost.cloudstream3" } -tasks.named("preBuild") { - dependsOn("generateGitInfo") -} - dependencies { // Testing testImplementation(libs.junit) @@ -253,7 +250,7 @@ dependencies { } tasks.register("androidSourcesJar") { - // dependsOn("generateGitInfo") + dependsOn("generateGitInfo") archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } @@ -284,7 +281,7 @@ tasks.register("makeJar") { } tasks.withType { - // dependsOn("generateGitInfo") + dependsOn("generateGitInfo") compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index c2d5e43e954..5f572295db4 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -13,6 +13,7 @@ import androidx.preference.PreferenceFragmentCompat import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.MaterialToolbar import com.lagradost.cloudstream3.BuildConfig +import com.lagradost.cloudstream3.GitInfo import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.MainSettingsBinding import com.lagradost.cloudstream3.mvvm.logError @@ -247,16 +248,17 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitInfo = getString(R.string.commit_hash) + val commitHash = GitInfo.HASH val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") }.format(Date(BuildConfig.BUILD_DATE)).replace("UTC", "") binding.buildDate.text = buildTimestamp + binding.commitHash.text = commitHash binding.appVersionInfo.setOnLongClickListener { - clipboardHelper(txt(R.string.extension_version), "$appVersion $commitInfo $buildTimestamp") + clipboardHelper(txt(R.string.extension_version), "$appVersion $commitHash $buildTimestamp") true } } -} \ No newline at end of file +} diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt index 12befafe02e..d482e351e6a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt @@ -180,14 +180,7 @@ class InAppUpdater { Log.d(LOG_TAG, "Fetched GitHub tag: ${tagResponse.githubObject.sha.take(7)}") - val shouldUpdate = - (getString(R.string.commit_hash) - .trim { c -> c.isWhitespace() } - .take(7) - != - tagResponse.githubObject.sha - .trim { c -> c.isWhitespace() } - .take(7)) + val shouldUpdate = GitInfo.HASH != tagResponse.githubObject.sha.trim().take(7) return if (foundAsset != null) { Update( diff --git a/app/src/main/res/layout/main_settings.xml b/app/src/main/res/layout/main_settings.xml index 0b931843dd1..dedff8dbd3f 100644 --- a/app/src/main/res/layout/main_settings.xml +++ b/app/src/main/res/layout/main_settings.xml @@ -134,8 +134,8 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:padding="10dp" - android:text="@string/commit_hash" - android:textColor="?attr/textColor" /> + android:textColor="?attr/textColor" + tools:text="1234567" /> + tools:text="21/03/2024 09:02 pm" /> From 4dd7b3545704eb9c056da5745550e3292fc9df10 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:49:20 -0700 Subject: [PATCH 221/389] - --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 5f572295db4..d0899803a65 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -261,4 +261,4 @@ class SettingsFragment : BaseFragment( true } } -} +} \ No newline at end of file From 4f42b388e5a9d8d5ec2e9413222c294f573f3b3b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 12:56:34 -0700 Subject: [PATCH 222/389] Test --- app/src/main/res/layout/main_settings.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/res/layout/main_settings.xml b/app/src/main/res/layout/main_settings.xml index dedff8dbd3f..3442fce8e41 100644 --- a/app/src/main/res/layout/main_settings.xml +++ b/app/src/main/res/layout/main_settings.xml @@ -152,7 +152,6 @@ android:textColor="?attr/textColor" tools:text="21/03/2024 09:02 pm" /> - \ No newline at end of file From 0b2e847ca00b8c810e124a4c0a809251a8f63376 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:12:34 -0700 Subject: [PATCH 223/389] Test --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9c89d0054de..cbde90c4cd3 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,9 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: | + ./gradlew generateGitInfo + ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From 77aa08c60ce65e346afffeb58fc11de91e96f97f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:18:26 -0700 Subject: [PATCH 224/389] - --- .github/workflows/pull_request.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index cbde90c4cd3..9c89d0054de 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,9 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: | - ./gradlew generateGitInfo - ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From 9c76c8ed75e5208320ed477f1f939e2c6585ec12 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:24:00 -0700 Subject: [PATCH 225/389] Try something else --- app/build.gradle.kts | 47 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 46 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 68825e08c7b..0e907b6d773 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,7 +14,7 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -tasks.register("generateGitInfo") { +/*tasks.register("generateGitInfo") { val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") val rootDir = project.rootDir outputs.dir(outputDirectory) @@ -47,6 +47,51 @@ tasks.register("generateGitInfo") { """.trimIndent() ) } +}*/ + +val gitInfoDir = layout.buildDirectory.dir("generated/source/gitInfo") + +val generateGitInfo by tasks.registering { + outputs.dir(gitInfoDir) + + doLast { + val root = rootDir + val hash = try { + val headFile = File(root, ".git/HEAD") + val fullHash = if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.removePrefix("ref:").trim() + val commitFile = File(root, ".git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else { + headContent // detached HEAD contains commit directly + } + } else "" + fullHash.take(7) + } catch (_: Throwable) { + "" + } + + val outFile = gitInfoDir.get().file("GitInfo.kt").asFile + outFile.parentFile.mkdirs() + outFile.writeText( + """ + package com.lagradost.cloudstream3 + + object GitInfo { + const val HASH = "$hash" + } + """.trimIndent() + ) + } +} + +kotlin { + sourceSets { + val main by getting + main.kotlin.srcDir(gitInfoDir) + } } android { From bc6fee7d843c22dbce7756632e663f40c257984c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:41:00 -0700 Subject: [PATCH 226/389] Fix? --- app/build.gradle.kts | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0e907b6d773..baba8ad4c70 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -87,13 +87,6 @@ val generateGitInfo by tasks.registering { } } -kotlin { - sourceSets { - val main by getting - main.kotlin.srcDir(gitInfoDir) - } -} - android { @Suppress("UnstableApiUsage") testOptions { @@ -117,6 +110,12 @@ android { compileSdk = libs.versions.compileSdk.get().toInt() + sourceSets { + getByName("main") { + kotlin.srcDir(gitInfoDir) + } + } + defaultConfig { applicationId = "com.lagradost.cloudstream3" minSdk = libs.versions.minSdk.get().toInt() @@ -295,7 +294,7 @@ dependencies { } tasks.register("androidSourcesJar") { - dependsOn("generateGitInfo") + // dependsOn("generateGitInfo") archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } @@ -326,7 +325,7 @@ tasks.register("makeJar") { } tasks.withType { - dependsOn("generateGitInfo") + dependsOn(generateGitInfo) compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) From ec6c23a94682f777da2e0b4976566d7905da4e75 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:43:46 -0700 Subject: [PATCH 227/389] Again --- app/build.gradle.kts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index baba8ad4c70..2c5be533ddf 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -110,10 +110,9 @@ android { compileSdk = libs.versions.compileSdk.get().toInt() - sourceSets { - getByName("main") { - kotlin.srcDir(gitInfoDir) - } + applicationVariants.all { variant -> + val javaDir = gitInfoDir.get().asFile + variant.registerJavaGeneratingTask(generateGitInfo.get(), javaDir) } defaultConfig { From b3a8f95cf9df65678cc0c7bd0306b8776f002c29 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:54:25 -0700 Subject: [PATCH 228/389] Try --- app/build.gradle.kts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2c5be533ddf..0d147b22c55 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -110,11 +110,6 @@ android { compileSdk = libs.versions.compileSdk.get().toInt() - applicationVariants.all { variant -> - val javaDir = gitInfoDir.get().asFile - variant.registerJavaGeneratingTask(generateGitInfo.get(), javaDir) - } - defaultConfig { applicationId = "com.lagradost.cloudstream3" minSdk = libs.versions.minSdk.get().toInt() @@ -217,6 +212,13 @@ android { namespace = "com.lagradost.cloudstream3" } +androidComponents { + onVariants { variant -> + // Register the generated folder for this variant + variant.sources.java?.addGeneratedDirectory(gitInfoDir) + } +} + dependencies { // Testing testImplementation(libs.junit) From e526ea6fb665f24ee4765da24e96b6b60c7e76b7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 13:57:57 -0700 Subject: [PATCH 229/389] Fix --- app/build.gradle.kts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0d147b22c55..3f256dba221 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -214,8 +214,7 @@ android { androidComponents { onVariants { variant -> - // Register the generated folder for this variant - variant.sources.java?.addGeneratedDirectory(gitInfoDir) + variant.sources.java?.addGeneratedSourceDirectory(gitInfoDir) } } From 09032c8c4678b2331eb899c17c553bb1d30f3283 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:02:20 -0700 Subject: [PATCH 230/389] Fix --- app/build.gradle.kts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 3f256dba221..4972e3e9717 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -214,7 +214,10 @@ android { androidComponents { onVariants { variant -> - variant.sources.java?.addGeneratedSourceDirectory(gitInfoDir) + variant.sources.java?.addGeneratedSourceDirectory( + gitInfoDir, + generateGitInfo + ) } } From 1bfb6d5bf05f12b843a21b162811033d235e426c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:06:44 -0700 Subject: [PATCH 231/389] Try again --- app/build.gradle.kts | 44 +++++++++++++++++++------------------------- 1 file changed, 19 insertions(+), 25 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4972e3e9717..ab8a1b1115c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,31 +49,25 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ -val gitInfoDir = layout.buildDirectory.dir("generated/source/gitInfo") - val generateGitInfo by tasks.registering { - outputs.dir(gitInfoDir) + val outputDir = layout.buildDirectory.dir("generated/source/gitInfo") + outputs.dir(outputDir) doLast { - val root = rootDir val hash = try { - val headFile = File(root, ".git/HEAD") + val headFile = file(".git/HEAD") val fullHash = if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.removePrefix("ref:").trim() - val commitFile = File(root, ".git/$refPath") + val content = headFile.readText().trim() + if (content.startsWith("ref:")) { + val ref = content.removePrefix("ref:").trim() + val commitFile = file(".git/$ref") if (commitFile.exists()) commitFile.readText().trim() else "" - } else { - headContent // detached HEAD contains commit directly - } + } else content } else "" fullHash.take(7) - } catch (_: Throwable) { - "" - } + } catch (_: Throwable) { "" } - val outFile = gitInfoDir.get().file("GitInfo.kt").asFile + val outFile = outputDir.get().file("GitInfo.kt").asFile outFile.parentFile.mkdirs() outFile.writeText( """ @@ -87,6 +81,15 @@ val generateGitInfo by tasks.registering { } } +androidComponents { + onVariants { variant -> + variant.sources.java?.addGeneratedSourceDirectory( + generateGitInfo.flatMap { it.layout.outputDirectory }, + generateGitInfo + ) + } +} + android { @Suppress("UnstableApiUsage") testOptions { @@ -212,15 +215,6 @@ android { namespace = "com.lagradost.cloudstream3" } -androidComponents { - onVariants { variant -> - variant.sources.java?.addGeneratedSourceDirectory( - gitInfoDir, - generateGitInfo - ) - } -} - dependencies { // Testing testImplementation(libs.junit) From aaffb8ba323eb0fb07c64fad24f49e72885bc2c8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:10:29 -0700 Subject: [PATCH 232/389] Try --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ab8a1b1115c..61a7d8e8f9c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -84,8 +84,8 @@ val generateGitInfo by tasks.registering { androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( - generateGitInfo.flatMap { it.layout.outputDirectory }, - generateGitInfo + generateGitInfo, + generateGitInfo.flatMap { it.layout.outputDirectory } ) } } From cfffbad1281b04df5d88e48f37bc319b2146e807 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:12:10 -0700 Subject: [PATCH 233/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 61a7d8e8f9c..ac324b65e7c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -85,7 +85,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - generateGitInfo.flatMap { it.layout.outputDirectory } + generateGitInfo.outputDir ) } } From d09ef5e26d469ee6031cea32413afc914ad6d4a4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:18:58 -0700 Subject: [PATCH 234/389] Fix --- app/build.gradle.kts | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ac324b65e7c..96b875194be 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,8 +49,10 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ +val gitInfoDir = layout.buildDirectory.dir("generated/gitInfo") + val generateGitInfo by tasks.registering { - val outputDir = layout.buildDirectory.dir("generated/source/gitInfo") + val outputDir = gitInfoDir outputs.dir(outputDir) doLast { @@ -85,11 +87,22 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - generateGitInfo.outputDir + TaskBasedDirectoryProperty(generateGitInfo, gitInfoDir)) ) } } +class TaskBasedDirectoryProperty( + private val task: TaskProvider<*>, + private val dirProvider: Provider +) : (Task) -> DirectoryProperty { + override fun invoke(t: Task): DirectoryProperty { + return t.project.objects.directoryProperty().apply { + set(dirProvider) + } + } +} + android { @Suppress("UnstableApiUsage") testOptions { From d9debfb651883a85d5a60eb53f1d1ff0077f9b44 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:19:40 -0700 Subject: [PATCH 235/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 96b875194be..7fbd9c09dc2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -87,7 +87,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - TaskBasedDirectoryProperty(generateGitInfo, gitInfoDir)) + TaskBasedDirectoryProperty(generateGitInfo, gitInfoDir) ) } } From 0da2fc26118c16b1efdd80a5fa25824b3cbbeabb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:22:15 -0700 Subject: [PATCH 236/389] Fix --- app/build.gradle.kts | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 7fbd9c09dc2..9fde8a78bf7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -87,22 +87,11 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - TaskBasedDirectoryProperty(generateGitInfo, gitInfoDir) + gitInfoDir ) } } -class TaskBasedDirectoryProperty( - private val task: TaskProvider<*>, - private val dirProvider: Provider -) : (Task) -> DirectoryProperty { - override fun invoke(t: Task): DirectoryProperty { - return t.project.objects.directoryProperty().apply { - set(dirProvider) - } - } -} - android { @Suppress("UnstableApiUsage") testOptions { From 2526c717e77b8cc829b14460e78721bfc2b8f417 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:27:57 -0700 Subject: [PATCH 237/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9fde8a78bf7..c0e0a830288 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -87,7 +87,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - gitInfoDir + { task -> task.outputs.files.singleFile } ) } } From 2b44f246bed42e468378995667b8942493502bc1 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:30:31 -0700 Subject: [PATCH 238/389] Fix --- app/build.gradle.kts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c0e0a830288..d899799ece3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,10 +49,8 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ -val gitInfoDir = layout.buildDirectory.dir("generated/gitInfo") - val generateGitInfo by tasks.registering { - val outputDir = gitInfoDir + val outputDir: DirectoryProperty = layout.buildDirectory.dir("generated/gitInfo") outputs.dir(outputDir) doLast { From 811251a3c98e0bc58a744fdc57c2a4a3e39e5e18 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:31:46 -0700 Subject: [PATCH 239/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d899799ece3..2be082b4cbc 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -85,7 +85,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - { task -> task.outputs.files.singleFile } + { task -> task.layout.buildDirectory.dir("generated/gitInfo") } ) } } From 803d21c8ef4783e79b990f521ace1c1073951155 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:35:49 -0700 Subject: [PATCH 240/389] Fix --- app/build.gradle.kts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2be082b4cbc..521d0827ee7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -50,7 +50,8 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() }*/ val generateGitInfo by tasks.registering { - val outputDir: DirectoryProperty = layout.buildDirectory.dir("generated/gitInfo") + val outputDir: DirectoryProperty = objects.directoryProperty() + outputDir.set(layout.buildDirectory.dir("generated/gitInfo")) outputs.dir(outputDir) doLast { @@ -85,7 +86,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - { task -> task.layout.buildDirectory.dir("generated/gitInfo") } + { task -> task.outputs.files.singleDirectory } ) } } From 56e1684b27a4cc7860e97bc75a1d34a9ea6bb4d5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:37:24 -0700 Subject: [PATCH 241/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 521d0827ee7..80867b41714 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -86,7 +86,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - { task -> task.outputs.files.singleDirectory } + { task -> task.outputDir } ) } } From 4ee5a85a4b6f3c02b4d358b134b881d6b30c3a33 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:44:03 -0700 Subject: [PATCH 242/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 80867b41714..a7b779ad9e7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -86,7 +86,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - { task -> task.outputDir } + layout.buildDirectory.dir("generated/gitInfo").get() ) } } From d1b3827a770269327ee59279bb9c949e30f02743 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:51:19 -0700 Subject: [PATCH 243/389] Fix --- app/build.gradle.kts | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a7b779ad9e7..c383b3104e9 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,9 +49,10 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ -val generateGitInfo by tasks.registering { - val outputDir: DirectoryProperty = objects.directoryProperty() - outputDir.set(layout.buildDirectory.dir("generated/gitInfo")) +val gitInfoDir = File(buildDir, "generated/source/gitInfo") + +val generateGitInfo = tasks.register("generateGitInfo") { + val outputDir = gitInfoDir outputs.dir(outputDir) doLast { @@ -86,11 +87,22 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - layout.buildDirectory.dir("generated/gitInfo").get() + TaskBasedDirectoryProperty(generateGitInfo, gitInfoDir) ) } } +class TaskBasedDirectoryProperty( + private val task: TaskProvider<*>, + private val dirProvider: Provider +) : (Task) -> DirectoryProperty { + override fun invoke(t: Task): DirectoryProperty { + return t.project.objects.directoryProperty().apply { + set(dirProvider) + } + } +} + android { @Suppress("UnstableApiUsage") testOptions { From acb32fd5011ab04fd3399dfec98f277fae8c6aa2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:52:12 -0700 Subject: [PATCH 244/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c383b3104e9..8f2e7957e55 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,7 +49,7 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ -val gitInfoDir = File(buildDir, "generated/source/gitInfo") +val gitInfoDir = layout.buildDirectory.dir("generated/gitInfo") val generateGitInfo = tasks.register("generateGitInfo") { val outputDir = gitInfoDir From 03da68b89b0226df42f11fa1f3239023f10a0d56 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 14:59:26 -0700 Subject: [PATCH 245/389] Try something else again --- app/build.gradle.kts | 51 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8f2e7957e55..a0dacc92dd8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,7 +49,7 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ -val gitInfoDir = layout.buildDirectory.dir("generated/gitInfo") +/*val gitInfoDir = layout.buildDirectory.dir("generated/gitInfo") val generateGitInfo = tasks.register("generateGitInfo") { val outputDir = gitInfoDir @@ -101,6 +101,55 @@ class TaskBasedDirectoryProperty( set(dirProvider) } } +}*/ + +val gitInfoDir: Provider = layout.buildDirectory.dir("generated/gitInfo") + +val generateGitInfo = tasks.register("generateGitInfo") { + val outputDir: DirectoryProperty = objects.directoryProperty() + outputDir.set(gitInfoDir) + outputs.dir(outputDir) + + // Make the DirectoryProperty accessible from the task + extensions.add("outputDir", outputDir) + + doLast { + val hash = try { + val headFile = file(".git/HEAD") + val fullHash = if (headFile.exists()) { + val content = headFile.readText().trim() + if (content.startsWith("ref:")) { + val ref = content.removePrefix("ref:").trim() + val commitFile = file(".git/$ref") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else content + } else "" + fullHash.take(7) + } catch (_: Throwable) { "" } + + val outFile = outputDir.get().file("GitInfo.kt").asFile + outFile.parentFile.mkdirs() + outFile.writeText( + """ + package com.lagradost.cloudstream3 + + object GitInfo { + const val HASH = "$hash" + } + """.trimIndent() + ) + } +} + +androidComponents { + onVariants { variant -> + variant.sources.java?.addGeneratedSourceDirectory( + generateGitInfo, + wiredWith = { task -> + (task.extensions.getByName("outputDir") as DirectoryProperty) + } + ) + } } android { From ce30cb7dffcbd1a5079d58c42b86c25703832525 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:06:48 -0700 Subject: [PATCH 246/389] remove --- app/build.gradle.kts | 60 ++------------------------------------------ 1 file changed, 2 insertions(+), 58 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a0dacc92dd8..40af98e437e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -49,65 +49,9 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() } }*/ -/*val gitInfoDir = layout.buildDirectory.dir("generated/gitInfo") - -val generateGitInfo = tasks.register("generateGitInfo") { - val outputDir = gitInfoDir - outputs.dir(outputDir) - - doLast { - val hash = try { - val headFile = file(".git/HEAD") - val fullHash = if (headFile.exists()) { - val content = headFile.readText().trim() - if (content.startsWith("ref:")) { - val ref = content.removePrefix("ref:").trim() - val commitFile = file(".git/$ref") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else content - } else "" - fullHash.take(7) - } catch (_: Throwable) { "" } - - val outFile = outputDir.get().file("GitInfo.kt").asFile - outFile.parentFile.mkdirs() - outFile.writeText( - """ - package com.lagradost.cloudstream3 - - object GitInfo { - const val HASH = "$hash" - } - """.trimIndent() - ) - } -} - -androidComponents { - onVariants { variant -> - variant.sources.java?.addGeneratedSourceDirectory( - generateGitInfo, - TaskBasedDirectoryProperty(generateGitInfo, gitInfoDir) - ) - } -} - -class TaskBasedDirectoryProperty( - private val task: TaskProvider<*>, - private val dirProvider: Provider -) : (Task) -> DirectoryProperty { - override fun invoke(t: Task): DirectoryProperty { - return t.project.objects.directoryProperty().apply { - set(dirProvider) - } - } -}*/ - -val gitInfoDir: Provider = layout.buildDirectory.dir("generated/gitInfo") - val generateGitInfo = tasks.register("generateGitInfo") { val outputDir: DirectoryProperty = objects.directoryProperty() - outputDir.set(gitInfoDir) + outputDir.set(layout.buildDirectory.dir("generated/gitInfo")) outputs.dir(outputDir) // Make the DirectoryProperty accessible from the task @@ -145,7 +89,7 @@ androidComponents { onVariants { variant -> variant.sources.java?.addGeneratedSourceDirectory( generateGitInfo, - wiredWith = { task -> + { task -> (task.extensions.getByName("outputDir") as DirectoryProperty) } ) From 8cd25afe7e863e2d56692d8ea8af4241a453e747 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:15:26 -0700 Subject: [PATCH 247/389] Fix? --- app/build.gradle.kts | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 40af98e437e..930240ef437 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -51,7 +51,8 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() val generateGitInfo = tasks.register("generateGitInfo") { val outputDir: DirectoryProperty = objects.directoryProperty() - outputDir.set(layout.buildDirectory.dir("generated/gitInfo")) + val rootDir = project.rootDir + outputDir.set(layout.buildDirectory.dir("generated")) outputs.dir(outputDir) // Make the DirectoryProperty accessible from the task @@ -59,21 +60,24 @@ val generateGitInfo = tasks.register("generateGitInfo") { doLast { val hash = try { - val headFile = file(".git/HEAD") - val fullHash = if (headFile.exists()) { - val content = headFile.readText().trim() - if (content.startsWith("ref:")) { - val ref = content.removePrefix("ref:").trim() - val commitFile = file(".git/$ref") + val headFile = File(rootDir, ".git/HEAD") + + // Read the commit hash from .git/HEAD + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) // e.g., refs/heads/main + val commitFile = File(rootDir, ".git/$refPath") if (commitFile.exists()) commitFile.readText().trim() else "" - } else content - } else "" - fullHash.take(7) - } catch (_: Throwable) { "" } - - val outFile = outputDir.get().file("GitInfo.kt").asFile - outFile.parentFile.mkdirs() - outFile.writeText( + } else headContent // If it's a detached HEAD (commit hash directly) + } else { + "" // If .git/HEAD doesn't exist + }.take(7) // Return the short commit hash + } catch (_: Throwable) { + "" // Just return an empty string if any exception occurs + } + + outputDir.file("GitInfo.kt").asFile.writeText( """ package com.lagradost.cloudstream3 From 1903f6901a024eb26c79476bda429f0b63fe90cb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:18:48 -0700 Subject: [PATCH 248/389] Fix --- app/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 930240ef437..9ef5df3984f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -77,7 +77,8 @@ val generateGitInfo = tasks.register("generateGitInfo") { "" // Just return an empty string if any exception occurs } - outputDir.file("GitInfo.kt").asFile.writeText( + outputDir.mkdirs() + outputDir.file("GitInfo.kt").writeText( """ package com.lagradost.cloudstream3 From 91cbf04031f4673c1f4348b46df74a64b27bfbcb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:20:43 -0700 Subject: [PATCH 249/389] Fix --- app/build.gradle.kts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 9ef5df3984f..b49885fe0fe 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -52,7 +52,7 @@ val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() val generateGitInfo = tasks.register("generateGitInfo") { val outputDir: DirectoryProperty = objects.directoryProperty() val rootDir = project.rootDir - outputDir.set(layout.buildDirectory.dir("generated")) + outputDir.set(layout.buildDirectory.dir("generated/gitInfo")) outputs.dir(outputDir) // Make the DirectoryProperty accessible from the task @@ -77,8 +77,9 @@ val generateGitInfo = tasks.register("generateGitInfo") { "" // Just return an empty string if any exception occurs } - outputDir.mkdirs() - outputDir.file("GitInfo.kt").writeText( + val outFile = outputDir.get().file("GitInfo.kt").asFile + outFile.parentFile.mkdirs() + outFile.writeText( """ package com.lagradost.cloudstream3 From b625fba8b07f6c926f98c75edb226c9e58df12b9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:25:11 -0700 Subject: [PATCH 250/389] No java --- library/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index a2a00ab4742..2438901bc93 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -25,7 +25,7 @@ kotlin { compileSdk = libs.versions.compileSdk.get().toInt() minSdk = libs.versions.minSdk.get().toInt() - withJava() + // withJava() compilerOptions { jvmTarget.set(javaTarget) } From c09695725d564561c7665aeeec723826ff2468e3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:32:00 -0700 Subject: [PATCH 251/389] Test --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index d0899803a65..5f572295db4 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -261,4 +261,4 @@ class SettingsFragment : BaseFragment( true } } -} \ No newline at end of file +} From 3f65303a2f4aa3c9a91aff63bbd95d87fb198c26 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:39:35 -0700 Subject: [PATCH 252/389] Test --- app/src/main/res/layout/main_settings.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/res/layout/main_settings.xml b/app/src/main/res/layout/main_settings.xml index 3442fce8e41..3cdf7514d61 100644 --- a/app/src/main/res/layout/main_settings.xml +++ b/app/src/main/res/layout/main_settings.xml @@ -154,4 +154,4 @@ - \ No newline at end of file + From 8b3b51b8f3eae3748e55b435920467490a86e099 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:48:46 -0700 Subject: [PATCH 253/389] Try yet another method --- app/build.gradle.kts | 68 +++++++++++++++++++------------------------- 1 file changed, 30 insertions(+), 38 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b49885fe0fe..e4df194ede7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -14,42 +14,7 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -/*tasks.register("generateGitInfo") { - val outputDirectory = project.layout.projectDirectory.dir("src/main/java/com/lagradost/cloudstream3") - val rootDir = project.rootDir - outputs.dir(outputDirectory) - - doLast { - val hash = try { - val headFile = File(rootDir, ".git/HEAD") - - // Read the commit hash from .git/HEAD - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = File(rootDir, ".git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent // If it's a detached HEAD (commit hash directly) - } else { - "" // If .git/HEAD doesn't exist - }.take(7) // Return the short commit hash - } catch (_: Throwable) { - "" // Just return an empty string if any exception occurs - } - - outputDirectory.file("GitInfo.kt").asFile.writeText( - """ - package com.lagradost.cloudstream3 - object GitInfo { - const val HASH = "$hash" - } - """.trimIndent() - ) - } -}*/ - -val generateGitInfo = tasks.register("generateGitInfo") { +/* val generateGitInfo = tasks.register("generateGitInfo") { val outputDir: DirectoryProperty = objects.directoryProperty() val rootDir = project.rootDir outputDir.set(layout.buildDirectory.dir("generated/gitInfo")) @@ -100,6 +65,34 @@ androidComponents { } ) } +} */ + +val generateGitHashTxt = tasks.register("generateGitHashTxt") { + doLast { + val root = project.rootDir + val headFile = File(root, ".git/HEAD") + val hash = try { + val head = headFile.readText().trim() + if (head.startsWith("ref:")) { + val ref = head.removePrefix("ref: ").trim() + File(root, ".git/$ref").readText().trim() + } else head + } catch (_: Throwable) { + "" + } + + val outFile = layout.buildDirectory.file("generated/git/hash.txt").get().asFile + outFile.parentFile.mkdirs() + outFile.writeText(hash) + } +} + +androidComponents.onVariants { variant -> + variant.artifacts.use(generateGitHashTxt) + .wiredWithFiles( + { generateGitHashTxt.get().outputs.files.singleFile }, + { out -> out } + ) } android { @@ -303,7 +296,6 @@ dependencies { } tasks.register("androidSourcesJar") { - // dependsOn("generateGitInfo") archiveClassifier.set("sources") from(android.sourceSets.getByName("main").java.directories) // Full Sources } @@ -334,7 +326,7 @@ tasks.register("makeJar") { } tasks.withType { - dependsOn(generateGitInfo) + // dependsOn(generateGitInfo) compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) From 7c19fb5e0593144f491cdb091586fdcc385e3850 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:54:20 -0700 Subject: [PATCH 254/389] Try --- app/build.gradle.kts | 47 ++++++++++++++++++++++++-------------------- 1 file changed, 26 insertions(+), 21 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e4df194ede7..1ddeed1eb79 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -67,32 +67,37 @@ androidComponents { } } */ -val generateGitHashTxt = tasks.register("generateGitHashTxt") { - doLast { - val root = project.rootDir - val headFile = File(root, ".git/HEAD") - val hash = try { - val head = headFile.readText().trim() - if (head.startsWith("ref:")) { - val ref = head.removePrefix("ref: ").trim() - File(root, ".git/$ref").readText().trim() - } else head - } catch (_: Throwable) { - "" +androidComponents.onVariants { variant -> + val taskName = "generate${variant.name.capitalize()}GitHash" + val outputFile = layout.buildDirectory + .file("generated/git/${variant.name}/git-hash.txt") + + val generateGitHash = tasks.register(taskName) { + outputs.file(outputFile) + + doLast { + val head = file(".git/HEAD") + val hash = if (head.exists()) { + val ref = head.readText().trim() + if (ref.startsWith("ref:")) { + val path = ".git/" + ref.removePrefix("ref:").trim() + file(path).takeIf { it.exists() }?.readText()?.trim() + } else ref + } else "unknown" + + outputFile.get().asFile.apply { + parentFile.mkdirs() + writeText(hash ?: "unknown") + } } - - val outFile = layout.buildDirectory.file("generated/git/hash.txt").get().asFile - outFile.parentFile.mkdirs() - outFile.writeText(hash) } -} -androidComponents.onVariants { variant -> - variant.artifacts.use(generateGitHashTxt) + variant.artifacts.use(generateGitHash) .wiredWithFiles( - { generateGitHashTxt.get().outputs.files.singleFile }, - { out -> out } + { outputFile }, + { it } ) + .toAppendTo(gitInfo) } android { From 8302add6f7c7d1a49382d3eefda79a011754689b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 15:56:46 -0700 Subject: [PATCH 255/389] Fix --- app/build.gradle.kts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1ddeed1eb79..1ebeba69a21 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -67,10 +67,18 @@ androidComponents { } } */ +val gitInfo = configurations.create("gitInfo") { + isCanBeConsumed = true + isCanBeResolved = false +} + androidComponents.onVariants { variant -> - val taskName = "generate${variant.name.capitalize()}GitHash" - val outputFile = layout.buildDirectory - .file("generated/git/${variant.name}/git-hash.txt") + val taskName = "generate${variant.name.replaceFirstChar { it.uppercase() }}GitHash" + + val outputFile = objects.fileProperty() + outputFile.set( + layout.buildDirectory.file("generated/git/${variant.name}/git-hash.txt") + ) val generateGitHash = tasks.register(taskName) { outputs.file(outputFile) @@ -92,14 +100,10 @@ androidComponents.onVariants { variant -> } } - variant.artifacts.use(generateGitHash) - .wiredWithFiles( - { outputFile }, - { it } - ) - .toAppendTo(gitInfo) + artifacts.add("gitInfo", generateGitHash.flatMap { outputFile }) } + android { @Suppress("UnstableApiUsage") testOptions { From 5372e638849d69a912428579287067e6fe2783e0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:01:52 -0700 Subject: [PATCH 256/389] Add --- .../java/com/lagradost/cloudstream3/GitInfo.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt diff --git a/app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt b/app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt new file mode 100644 index 00000000000..95d35e88312 --- /dev/null +++ b/app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt @@ -0,0 +1,16 @@ +package com.lagradost.cloudstream3 + +import android.content.Context + +object GitInfo { + fun hash(context: Context): String { + return try { + context.assets.open("git-hash.txt") + .bufferedReader() + .readText() + .trim() + } catch (_: Exception) { + "unknown" + } + } +} From ed3f2e50d50c16b011d43c7255711a70091cf0ee Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:02:53 -0700 Subject: [PATCH 257/389] Update --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 5f572295db4..e062b2dcaa8 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -248,7 +248,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitHash = GitInfo.HASH + val commitHash = GitInfo.hash(activity) val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") From 5af0c1fe09efe0f716b483597f3e65ddaaea88e0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:04:16 -0700 Subject: [PATCH 258/389] Update --- .../main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt index d482e351e6a..69233a3d528 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt @@ -180,7 +180,7 @@ class InAppUpdater { Log.d(LOG_TAG, "Fetched GitHub tag: ${tagResponse.githubObject.sha.take(7)}") - val shouldUpdate = GitInfo.HASH != tagResponse.githubObject.sha.trim().take(7) + val shouldUpdate = GitInfo.hash(this) != tagResponse.githubObject.sha.trim().take(7) return if (foundAsset != null) { Update( From cb549201b50a89e622cde6ce9456b6fff2e891a3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:06:45 -0700 Subject: [PATCH 259/389] Fix --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index e062b2dcaa8..2b873fd90d4 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -248,7 +248,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitHash = GitInfo.hash(activity) + val commitHash = GitInfo.hash(binding.root.context) val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") From 173f09a7c0a0626b7c98a6496da0ed66684139da Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:14:19 -0700 Subject: [PATCH 260/389] Update --- app/build.gradle.kts | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1ebeba69a21..ceae550e058 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -76,6 +76,7 @@ androidComponents.onVariants { variant -> val taskName = "generate${variant.name.replaceFirstChar { it.uppercase() }}GitHash" val outputFile = objects.fileProperty() + val rootDir = project.rootDir outputFile.set( layout.buildDirectory.file("generated/git/${variant.name}/git-hash.txt") ) @@ -84,14 +85,23 @@ androidComponents.onVariants { variant -> outputs.file(outputFile) doLast { - val head = file(".git/HEAD") - val hash = if (head.exists()) { - val ref = head.readText().trim() - if (ref.startsWith("ref:")) { - val path = ".git/" + ref.removePrefix("ref:").trim() - file(path).takeIf { it.exists() }?.readText()?.trim() - } else ref - } else "unknown" + val hash = try { + val headFile = File(rootDir, ".git/HEAD") + + // Read the commit hash from .git/HEAD + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) // e.g., refs/heads/main + val commitFile = File(rootDir, ".git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent // If it's a detached HEAD (commit hash directly) + } else { + "" // If .git/HEAD doesn't exist + }.take(7) // Return the short commit hash + } catch (_: Throwable) { + "" // Just return an empty string if any exception occurs + } outputFile.get().asFile.apply { parentFile.mkdirs() From 8624e99e18e8b05bec13073a5f64fe2ebb74ff2e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:21:53 -0700 Subject: [PATCH 261/389] Test --- app/src/main/res/layout/main_settings.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/res/layout/main_settings.xml b/app/src/main/res/layout/main_settings.xml index 3cdf7514d61..10ed42248fc 100644 --- a/app/src/main/res/layout/main_settings.xml +++ b/app/src/main/res/layout/main_settings.xml @@ -154,4 +154,5 @@ + From d306d9d88527bec08c1dfe806af5d2ba9d407457 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:33:42 -0700 Subject: [PATCH 262/389] Try asset --- app/build.gradle.kts | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ceae550e058..29d33be259e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -67,11 +67,6 @@ androidComponents { } } */ -val gitInfo = configurations.create("gitInfo") { - isCanBeConsumed = true - isCanBeResolved = false -} - androidComponents.onVariants { variant -> val taskName = "generate${variant.name.replaceFirstChar { it.uppercase() }}GitHash" @@ -110,7 +105,16 @@ androidComponents.onVariants { variant -> } } - artifacts.add("gitInfo", generateGitHash.flatMap { outputFile }) + val mergeAssetsTaskName = "merge${variantNameCapitalized}Assets" + tasks.named(mergeAssetsTaskName).configure { + dependsOn(generateGitHash) + + doLast { + val assetsDir = outputs.files.singleFile + val outFile = File(assetsDir, "git-hash.txt") + outputFile.get().asFile.copyTo(outFile, overwrite = true) + } + } } From bba7f0cba8035646cff3531e67ca5397d5a1eeb5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:35:39 -0700 Subject: [PATCH 263/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 29d33be259e..466cbf10a13 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -105,7 +105,7 @@ androidComponents.onVariants { variant -> } } - val mergeAssetsTaskName = "merge${variantNameCapitalized}Assets" + val mergeAssetsTaskName = "merge${variant.name.replaceFirstChar { it.uppercase() }}Assets" tasks.named(mergeAssetsTaskName).configure { dependsOn(generateGitHash) From 4ba071a7dbd515383af058a60b4a3fa22226fe38 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:39:19 -0700 Subject: [PATCH 264/389] Once more --- app/build.gradle.kts | 51 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 49 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 466cbf10a13..446f7e70e38 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -67,7 +67,7 @@ androidComponents { } } */ -androidComponents.onVariants { variant -> +/*androidComponents.onVariants { variant -> val taskName = "generate${variant.name.replaceFirstChar { it.uppercase() }}GitHash" val outputFile = objects.fileProperty() @@ -115,8 +115,55 @@ androidComponents.onVariants { variant -> outputFile.get().asFile.copyTo(outFile, overwrite = true) } } -} +}*/ +androidComponents.onVariants { variant -> + val variantNameCapitalized = variant.name.replaceFirstChar { it.uppercase() } + + val taskName = "generate${variantNameCapitalized}GitHash" + + val outputFile = objects.fileProperty() + val rootDir = project.rootDir + outputFile.set(layout.buildDirectory.file("generated/git/${variant.name}/git-hash.txt")) + + val generateGitHash = tasks.register(taskName) { + outputs.file(outputFile) + + doLast { + val hash = try { + val headFile = File(rootDir, ".git/HEAD") + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) + val commitFile = File(rootDir, ".git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent + } else "" + } catch (_: Throwable) { + "" + }.take(7) + + outputFile.get().asFile.apply { + parentFile.mkdirs() + writeText(hash.ifBlank { "unknown" }) + } + } + } + + val mergeAssetsTaskName = "merge${variantNameCapitalized}Assets" + tasks.findByName(mergeAssetsTaskName)?.let { mergeTask -> + mergeTask.configure { + dependsOn(generateGitHash) + + doLast { + val assetsDir = outputs.files.singleFile + val outFile = File(assetsDir, "git-hash.txt") + outputFile.get().asFile.copyTo(outFile, overwrite = true) + } + } + } +} android { @Suppress("UnstableApiUsage") From 679431130eb3965de8d6add75373171caeae79f5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:41:54 -0700 Subject: [PATCH 265/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 446f7e70e38..dd57d9975d7 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -153,7 +153,7 @@ androidComponents.onVariants { variant -> val mergeAssetsTaskName = "merge${variantNameCapitalized}Assets" tasks.findByName(mergeAssetsTaskName)?.let { mergeTask -> - mergeTask.configure { + (mergeTask as Task).configure { dependsOn(generateGitHash) doLast { From 414d6f6ae7490fdabd25d93ce4e4b1e69238c6be Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:45:25 -0700 Subject: [PATCH 266/389] Fix? --- app/build.gradle.kts | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index dd57d9975d7..8cfb886f7d2 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -153,14 +153,12 @@ androidComponents.onVariants { variant -> val mergeAssetsTaskName = "merge${variantNameCapitalized}Assets" tasks.findByName(mergeAssetsTaskName)?.let { mergeTask -> - (mergeTask as Task).configure { - dependsOn(generateGitHash) + mergeTask.dependsOn(generateGitHash) - doLast { - val assetsDir = outputs.files.singleFile - val outFile = File(assetsDir, "git-hash.txt") - outputFile.get().asFile.copyTo(outFile, overwrite = true) - } + mergeTask.doLast { + val assetsDir = it.outputs.files.singleFile + val outFile = File(assetsDir, "git-hash.txt") + outputFile.get().asFile.copyTo(outFile, overwrite = true) } } } From 6f334cbc7fb46ec6a8e1c0616d0838d74fe5e117 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 16:47:48 -0700 Subject: [PATCH 267/389] - --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 8cfb886f7d2..4f44f21b3fe 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -156,7 +156,7 @@ androidComponents.onVariants { variant -> mergeTask.dependsOn(generateGitHash) mergeTask.doLast { - val assetsDir = it.outputs.files.singleFile + val assetsDir = mergeTask.outputs.files.singleFile val outFile = File(assetsDir, "git-hash.txt") outputFile.get().asFile.copyTo(outFile, overwrite = true) } From 9e25826a1a845526e00009256e5f246e930c72c3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 17:37:13 -0700 Subject: [PATCH 268/389] Try something once again --- app/build.gradle.kts | 42 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 4f44f21b3fe..06ed4d37534 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -117,7 +117,7 @@ androidComponents { } }*/ -androidComponents.onVariants { variant -> +/*androidComponents.onVariants { variant -> val variantNameCapitalized = variant.name.replaceFirstChar { it.uppercase() } val taskName = "generate${variantNameCapitalized}GitHash" @@ -161,8 +161,48 @@ androidComponents.onVariants { variant -> outputFile.get().asFile.copyTo(outFile, overwrite = true) } } +}*/ + +val generateGitHash = tasks.register("generateGitHash") { + val gitHashFile = layout.buildDirectory.file("generated/git/git-hash.txt") + val rootDir = project.rootDir + outputs.file(gitHashFile) + + doLast { + val headFile = File(rootDir, ".git/HEAD") + val hash = try { + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) + val commitFile = File(rootDir, ".git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent + } else "" + } catch (_: Throwable) { + "" + }.take(7) + + gitHashFile.get().asFile.apply { + parentFile.mkdirs() + writeText(hash.ifBlank { "unknown" }) + } + } +} + +tasks.withType { + if (name.contains("Assets", ignoreCase = true)) { + dependsOn(generateGitHash) + + doLast { + val assetsDir = outputs.files.singleFile + val outFile = File(assetsDir, "git-hash.txt") + gitHashFile.get().asFile.copyTo(outFile, overwrite = true) + } + } } + android { @Suppress("UnstableApiUsage") testOptions { From 6a83620d3ae3ca844af958f1134220d28382573d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 17:39:11 -0700 Subject: [PATCH 269/389] Fix --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 06ed4d37534..71cffa6aab4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -163,8 +163,8 @@ androidComponents { } }*/ +val gitHashFile = layout.buildDirectory.file("generated/git/git-hash.txt") val generateGitHash = tasks.register("generateGitHash") { - val gitHashFile = layout.buildDirectory.file("generated/git/git-hash.txt") val rootDir = project.rootDir outputs.file(gitHashFile) From 583d4837c55688e045b54b217b3d8a318bc37059 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 17:57:04 -0700 Subject: [PATCH 270/389] Remove androidComponents versions and try fix --- app/build.gradle.kts | 110 +++---------------------------------------- 1 file changed, 6 insertions(+), 104 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 71cffa6aab4..03dae9a9176 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -67,106 +67,10 @@ androidComponents { } } */ -/*androidComponents.onVariants { variant -> - val taskName = "generate${variant.name.replaceFirstChar { it.uppercase() }}GitHash" - - val outputFile = objects.fileProperty() - val rootDir = project.rootDir - outputFile.set( - layout.buildDirectory.file("generated/git/${variant.name}/git-hash.txt") - ) - - val generateGitHash = tasks.register(taskName) { - outputs.file(outputFile) - - doLast { - val hash = try { - val headFile = File(rootDir, ".git/HEAD") - - // Read the commit hash from .git/HEAD - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = File(rootDir, ".git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent // If it's a detached HEAD (commit hash directly) - } else { - "" // If .git/HEAD doesn't exist - }.take(7) // Return the short commit hash - } catch (_: Throwable) { - "" // Just return an empty string if any exception occurs - } - - outputFile.get().asFile.apply { - parentFile.mkdirs() - writeText(hash ?: "unknown") - } - } - } - - val mergeAssetsTaskName = "merge${variant.name.replaceFirstChar { it.uppercase() }}Assets" - tasks.named(mergeAssetsTaskName).configure { - dependsOn(generateGitHash) - - doLast { - val assetsDir = outputs.files.singleFile - val outFile = File(assetsDir, "git-hash.txt") - outputFile.get().asFile.copyTo(outFile, overwrite = true) - } - } -}*/ - -/*androidComponents.onVariants { variant -> - val variantNameCapitalized = variant.name.replaceFirstChar { it.uppercase() } - - val taskName = "generate${variantNameCapitalized}GitHash" - - val outputFile = objects.fileProperty() - val rootDir = project.rootDir - outputFile.set(layout.buildDirectory.file("generated/git/${variant.name}/git-hash.txt")) - - val generateGitHash = tasks.register(taskName) { - outputs.file(outputFile) - - doLast { - val hash = try { - val headFile = File(rootDir, ".git/HEAD") - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) - val commitFile = File(rootDir, ".git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent - } else "" - } catch (_: Throwable) { - "" - }.take(7) - - outputFile.get().asFile.apply { - parentFile.mkdirs() - writeText(hash.ifBlank { "unknown" }) - } - } - } - - val mergeAssetsTaskName = "merge${variantNameCapitalized}Assets" - tasks.findByName(mergeAssetsTaskName)?.let { mergeTask -> - mergeTask.dependsOn(generateGitHash) - - mergeTask.doLast { - val assetsDir = mergeTask.outputs.files.singleFile - val outFile = File(assetsDir, "git-hash.txt") - outputFile.get().asFile.copyTo(outFile, overwrite = true) - } - } -}*/ - -val gitHashFile = layout.buildDirectory.file("generated/git/git-hash.txt") +val gitHashDir = layout.buildDirectory.dir("generated/git") val generateGitHash = tasks.register("generateGitHash") { val rootDir = project.rootDir - outputs.file(gitHashFile) + outputs.dir(gitHashDir) doLast { val headFile = File(rootDir, ".git/HEAD") @@ -183,10 +87,9 @@ val generateGitHash = tasks.register("generateGitHash") { "" }.take(7) - gitHashFile.get().asFile.apply { - parentFile.mkdirs() - writeText(hash.ifBlank { "unknown" }) - } + val outFile = gitHashDir.get().file("git-hash.txt").asFile + outFile.parentFile.mkdirs() + outFile.writeText(hash.ifBlank { "unknown" }) } } @@ -197,12 +100,11 @@ tasks.withType { doLast { val assetsDir = outputs.files.singleFile val outFile = File(assetsDir, "git-hash.txt") - gitHashFile.get().asFile.copyTo(outFile, overwrite = true) + gitHashDir.get().file("git-hash.txt").asFile.copyTo(outFile, overwrite = true) } } } - android { @Suppress("UnstableApiUsage") testOptions { From f1bd6d3dec5fc7cd48bb914bdd4d3b096abeb22a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:08:50 -0700 Subject: [PATCH 271/389] Cleanup and try fix --- app/build.gradle.kts | 59 ++++++++++++++++++++++++-------------------- 1 file changed, 32 insertions(+), 27 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 03dae9a9176..832a82318a3 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,4 +1,5 @@ import com.android.build.gradle.internal.cxx.configure.gradleLocalProperties +import com.android.build.gradle.tasks.MergeSourceSetFolders import org.jetbrains.dokka.gradle.engine.parameters.KotlinPlatform import org.jetbrains.dokka.gradle.engine.parameters.VisibilityModifier import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode @@ -70,39 +71,43 @@ androidComponents { val gitHashDir = layout.buildDirectory.dir("generated/git") val generateGitHash = tasks.register("generateGitHash") { val rootDir = project.rootDir - outputs.dir(gitHashDir) - - doLast { - val headFile = File(rootDir, ".git/HEAD") - val hash = try { - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) - val commitFile = File(rootDir, ".git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent - } else "" - } catch (_: Throwable) { - "" - }.take(7) + outputs.dir(gitHashDir) + + doLast { + val hash = try { + val headFile = File(rootDir, ".git/HEAD") + if (headFile.exists()) { + val headContent = headFile.readText().trim() + if (headContent.startsWith("ref:")) { + val refPath = headContent.substring(5) + val commitFile = File(rootDir, ".git/$refPath") + if (commitFile.exists()) commitFile.readText().trim() else "" + } else headContent + } else "" + } catch (_: Throwable) { + "" + }.take(7) val outFile = gitHashDir.get().file("git-hash.txt").asFile outFile.parentFile.mkdirs() outFile.writeText(hash.ifBlank { "unknown" }) - } + } } -tasks.withType { - if (name.contains("Assets", ignoreCase = true)) { - dependsOn(generateGitHash) - - doLast { - val assetsDir = outputs.files.singleFile - val outFile = File(assetsDir, "git-hash.txt") - gitHashDir.get().file("git-hash.txt").asFile.copyTo(outFile, overwrite = true) - } - } +tasks.withType { + if ( + name.contains("Assets", ignoreCase = true) && + name.contains("merge", ignoreCase = true) + ) { + dependsOn(generateGitHash) + + doLast { + val assetsDir = outputs.files.singleFile + val gitHashFile = gitHashDir.get().file("git-hash.txt").asFile + val outFile = File(assetsDir, "git-hash.txt") + gitHashFile.copyTo(outFile, overwrite = true) + } + } } android { From 786f6379063d2fa988a967dce7186c2418fb32e6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:11:02 -0700 Subject: [PATCH 272/389] Try --- app/build.gradle.kts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 832a82318a3..c80a3d137f4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -68,8 +68,8 @@ androidComponents { } } */ -val gitHashDir = layout.buildDirectory.dir("generated/git") val generateGitHash = tasks.register("generateGitHash") { + val gitHashDir = layout.buildDirectory.dir("generated/git") val rootDir = project.rootDir outputs.dir(gitHashDir) @@ -100,6 +100,7 @@ tasks.withType { name.contains("merge", ignoreCase = true) ) { dependsOn(generateGitHash) + val gitHashDir = layout.buildDirectory.dir("generated/git") doLast { val assetsDir = outputs.files.singleFile From 8885b37dcf032d9b1eb82c89b0c9c5447d27c632 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:20:59 -0700 Subject: [PATCH 273/389] - --- app/src/main/res/layout/main_settings.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/res/layout/main_settings.xml b/app/src/main/res/layout/main_settings.xml index 10ed42248fc..3cdf7514d61 100644 --- a/app/src/main/res/layout/main_settings.xml +++ b/app/src/main/res/layout/main_settings.xml @@ -154,5 +154,4 @@ - From 1d34fc2793a1ad2c3a1c0184812bdbc88b1f6907 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:25:38 -0700 Subject: [PATCH 274/389] Remove --- app/build.gradle.kts | 58 +------------------------------------------- 1 file changed, 1 insertion(+), 57 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c80a3d137f4..0eb07b2e771 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,59 +15,6 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -/* val generateGitInfo = tasks.register("generateGitInfo") { - val outputDir: DirectoryProperty = objects.directoryProperty() - val rootDir = project.rootDir - outputDir.set(layout.buildDirectory.dir("generated/gitInfo")) - outputs.dir(outputDir) - - // Make the DirectoryProperty accessible from the task - extensions.add("outputDir", outputDir) - - doLast { - val hash = try { - val headFile = File(rootDir, ".git/HEAD") - - // Read the commit hash from .git/HEAD - if (headFile.exists()) { - val headContent = headFile.readText().trim() - if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) // e.g., refs/heads/main - val commitFile = File(rootDir, ".git/$refPath") - if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent // If it's a detached HEAD (commit hash directly) - } else { - "" // If .git/HEAD doesn't exist - }.take(7) // Return the short commit hash - } catch (_: Throwable) { - "" // Just return an empty string if any exception occurs - } - - val outFile = outputDir.get().file("GitInfo.kt").asFile - outFile.parentFile.mkdirs() - outFile.writeText( - """ - package com.lagradost.cloudstream3 - - object GitInfo { - const val HASH = "$hash" - } - """.trimIndent() - ) - } -} - -androidComponents { - onVariants { variant -> - variant.sources.java?.addGeneratedSourceDirectory( - generateGitInfo, - { task -> - (task.extensions.getByName("outputDir") as DirectoryProperty) - } - ) - } -} */ - val generateGitHash = tasks.register("generateGitHash") { val gitHashDir = layout.buildDirectory.dir("generated/git") val rootDir = project.rootDir @@ -95,10 +42,7 @@ val generateGitHash = tasks.register("generateGitHash") { } tasks.withType { - if ( - name.contains("Assets", ignoreCase = true) && - name.contains("merge", ignoreCase = true) - ) { + if (name.contains("Assets", ignoreCase = true)) { dependsOn(generateGitHash) val gitHashDir = layout.buildDirectory.dir("generated/git") From f4cb254920f00fd15c7909cdb366f675cf91bde0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:26:10 -0700 Subject: [PATCH 275/389] Remove --- app/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0eb07b2e771..b9c4b7cf4d8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -286,7 +286,6 @@ tasks.register("makeJar") { } tasks.withType { - // dependsOn(generateGitInfo) compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) From f170dd239fda273d8236f6c80836b3304510f95d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:29:48 -0700 Subject: [PATCH 276/389] Move --- .../com/lagradost/cloudstream3/GitInfo.kt | 16 -------------- .../lagradost/cloudstream3/utils/GitInfo.kt | 22 +++++++++++++++++++ 2 files changed, 22 insertions(+), 16 deletions(-) delete mode 100644 app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt create mode 100644 app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt diff --git a/app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt b/app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt deleted file mode 100644 index 95d35e88312..00000000000 --- a/app/src/main/java/com/lagradost/cloudstream3/GitInfo.kt +++ /dev/null @@ -1,16 +0,0 @@ -package com.lagradost.cloudstream3 - -import android.content.Context - -object GitInfo { - fun hash(context: Context): String { - return try { - context.assets.open("git-hash.txt") - .bufferedReader() - .readText() - .trim() - } catch (_: Exception) { - "unknown" - } - } -} diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt new file mode 100644 index 00000000000..c1aafcdedeb --- /dev/null +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt @@ -0,0 +1,22 @@ +package com.lagradost.cloudstream3.utils + +import android.content.Context + +/** + * Simple helper to get the short commit hash from assets. + * The hash is generated at build and stored as an asset + * that can be accessed at runtime for Gradle + * configuration cache support. + */ +object GitInfo { + fun hash(context: Context): String { + return try { + context.assets.open("git-hash.txt") + .bufferedReader().readText() + .trim() + } catch (_: Exception) { + // Fallback if something went wrong. + "unknown" + } + } +} From db87edc7c0c6c57c4fba3be9f9bba83344e5ae39 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:33:07 -0700 Subject: [PATCH 277/389] Update --- .../main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt index 69233a3d528..2b1d29adca4 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/InAppUpdater.kt @@ -16,6 +16,7 @@ import com.lagradost.cloudstream3.CommonActivity.showToast import com.lagradost.cloudstream3.mvvm.logError import com.lagradost.cloudstream3.utils.AppUtils.parseJson import com.lagradost.cloudstream3.utils.Coroutines.ioSafe +import com.lagradost.cloudstream3.utils.GitInfo.currentCommitHash import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock import okio.BufferedSink @@ -180,7 +181,7 @@ class InAppUpdater { Log.d(LOG_TAG, "Fetched GitHub tag: ${tagResponse.githubObject.sha.take(7)}") - val shouldUpdate = GitInfo.hash(this) != tagResponse.githubObject.sha.trim().take(7) + val shouldUpdate = currentCommitHash() != tagResponse.githubObject.sha.trim().take(7) return if (foundAsset != null) { Update( From 122463cc2d958158c5ea0b5e37aa8ab3a2c2d04e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:34:12 -0700 Subject: [PATCH 278/389] Update --- .../main/java/com/lagradost/cloudstream3/utils/GitInfo.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt index c1aafcdedeb..d1ae33ce178 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt @@ -9,10 +9,11 @@ import android.content.Context * configuration cache support. */ object GitInfo { - fun hash(context: Context): String { + fun Context.currentCommitHash(): String { return try { - context.assets.open("git-hash.txt") - .bufferedReader().readText() + assets.open("git-hash.txt") + .bufferedReader() + .readText() .trim() } catch (_: Exception) { // Fallback if something went wrong. From adac7ad4c230ed0871876e9ce3055eb898f66f0d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:35:58 -0700 Subject: [PATCH 279/389] Update --- .../lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index 2b873fd90d4..a4b79a0dd1b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -13,7 +13,6 @@ import androidx.preference.PreferenceFragmentCompat import com.google.android.material.appbar.AppBarLayout import com.google.android.material.appbar.MaterialToolbar import com.lagradost.cloudstream3.BuildConfig -import com.lagradost.cloudstream3.GitInfo import com.lagradost.cloudstream3.R import com.lagradost.cloudstream3.databinding.MainSettingsBinding import com.lagradost.cloudstream3.mvvm.logError @@ -28,6 +27,7 @@ import com.lagradost.cloudstream3.ui.settings.Globals.TV import com.lagradost.cloudstream3.ui.settings.Globals.isLandscape import com.lagradost.cloudstream3.ui.settings.Globals.isLayout import com.lagradost.cloudstream3.utils.DataStoreHelper +import com.lagradost.cloudstream3.utils.GitInfo.currentCommitHash import com.lagradost.cloudstream3.utils.ImageLoader.loadImage import com.lagradost.cloudstream3.utils.UIHelper.clipboardHelper import com.lagradost.cloudstream3.utils.UIHelper.fixSystemBarsPadding @@ -248,7 +248,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitHash = GitInfo.hash(binding.root.context) + val commitHash = activity.currentCommitHash() val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") From 214b5ccba4fe68de6787b9aea6f706b8afe7597a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:36:55 -0700 Subject: [PATCH 280/389] Nullable handling --- app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt index d1ae33ce178..ae3db5572f1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt @@ -9,7 +9,8 @@ import android.content.Context * configuration cache support. */ object GitInfo { - fun Context.currentCommitHash(): String { + fun Context?.currentCommitHash(): String { + if (this == null) return "unknown" return try { assets.open("git-hash.txt") .bufferedReader() From 82c922d3ede61f0da4fcbfb1b0acf4b434343a97 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:42:25 -0700 Subject: [PATCH 281/389] Update --- app/build.gradle.kts | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b9c4b7cf4d8..43a68b23f90 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -22,22 +22,23 @@ val generateGitHash = tasks.register("generateGitHash") { doLast { val hash = try { + // Read the commit hash from .git/HEAD val headFile = File(rootDir, ".git/HEAD") if (headFile.exists()) { val headContent = headFile.readText().trim() if (headContent.startsWith("ref:")) { - val refPath = headContent.substring(5) + val refPath = headContent.substring(5) // e.g., refs/heads/main val commitFile = File(rootDir, ".git/$refPath") if (commitFile.exists()) commitFile.readText().trim() else "" - } else headContent - } else "" + } else headContent // If it's a detached HEAD (commit hash directly) + } else "" // If .git/HEAD doesn't exist } catch (_: Throwable) { - "" - }.take(7) + "" // Just set to an empty string if any exception occurs + }.take(7) // Get the short commit hash val outFile = gitHashDir.get().file("git-hash.txt").asFile outFile.parentFile.mkdirs() - outFile.writeText(hash.ifBlank { "unknown" }) + outFile.writeText(hash) } } From d450057c81346bf3de3b72ee370a8dc6a1ce3363 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:43:48 -0700 Subject: [PATCH 282/389] Not nullable --- .../lagradost/cloudstream3/utils/GitInfo.kt | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt index ae3db5572f1..58ff44bb257 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/GitInfo.kt @@ -9,16 +9,12 @@ import android.content.Context * configuration cache support. */ object GitInfo { - fun Context?.currentCommitHash(): String { - if (this == null) return "unknown" - return try { - assets.open("git-hash.txt") - .bufferedReader() - .readText() - .trim() - } catch (_: Exception) { - // Fallback if something went wrong. - "unknown" - } + fun Context.currentCommitHash(): String = try { + assets.open("git-hash.txt") + .bufferedReader() + .readText() + .trim() + } catch (_: Exception) { + "" } } From 2645f1309f8737762cbbdf2f658eaf7b2882d767 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:44:23 -0700 Subject: [PATCH 283/389] Update --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index a4b79a0dd1b..e3a0ddf44db 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -248,7 +248,7 @@ class SettingsFragment : BaseFragment( } val appVersion = getString(R.string.app_version) - val commitHash = activity.currentCommitHash() + val commitHash = activity?.currentCommitHash() ?: "" val buildTimestamp = SimpleDateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, Locale.getDefault() ).apply { timeZone = TimeZone.getTimeZone("UTC") From 0465af3e7771f6043ae161db4b7e86d5a5528b66 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 18:46:20 -0700 Subject: [PATCH 284/389] - --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 43a68b23f90..c485ec16dc8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,7 +15,7 @@ val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() -val generateGitHash = tasks.register("generateGitHash") { +tasks.register("generateGitHash") { val gitHashDir = layout.buildDirectory.dir("generated/git") val rootDir = project.rootDir outputs.dir(gitHashDir) @@ -44,7 +44,7 @@ val generateGitHash = tasks.register("generateGitHash") { tasks.withType { if (name.contains("Assets", ignoreCase = true)) { - dependsOn(generateGitHash) + dependsOn("generateGitHash") val gitHashDir = layout.buildDirectory.dir("generated/git") doLast { From e133435a9ed72be5130325e1072ec94bd1e51652 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 19:07:39 -0700 Subject: [PATCH 285/389] Test --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9c89d0054de..00c416e5a5f 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,3 +1,4 @@ + name: Artifact Build on: [pull_request] From a5be3ec63e93272342501507f100e312e3f3f89c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 20:11:54 -0700 Subject: [PATCH 286/389] - --- .../com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt | 2 +- app/src/main/res/layout/main_settings.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt index e3a0ddf44db..32e77c3a3ce 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/settings/SettingsFragment.kt @@ -261,4 +261,4 @@ class SettingsFragment : BaseFragment( true } } -} +} \ No newline at end of file diff --git a/app/src/main/res/layout/main_settings.xml b/app/src/main/res/layout/main_settings.xml index 3cdf7514d61..3442fce8e41 100644 --- a/app/src/main/res/layout/main_settings.xml +++ b/app/src/main/res/layout/main_settings.xml @@ -154,4 +154,4 @@ - + \ No newline at end of file From b7eca6164558de52b6b80fa4b56ef1f8e4503850 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 1 Dec 2025 20:45:49 -0700 Subject: [PATCH 287/389] - --- .github/workflows/pull_request.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 00c416e5a5f..9c89d0054de 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -1,4 +1,3 @@ - name: Artifact Build on: [pull_request] From 79f1c8c4aadab39225344594aff0a23e385b2203 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 2 Dec 2025 12:03:02 -0700 Subject: [PATCH 288/389] RC2 --- 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 0275e661254..439f80753b9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -22,7 +22,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.0-RC" +kotlinGradlePlugin = "2.3.0-RC2" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha06" From f704611f36aa40ff0ee0e2c30b3baf8fd284edb5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 13:29:05 -0700 Subject: [PATCH 289/389] - --- library/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 2438901bc93..039efadbbeb 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -25,7 +25,6 @@ kotlin { compileSdk = libs.versions.compileSdk.get().toInt() minSdk = libs.versions.minSdk.get().toInt() - // withJava() compilerOptions { jvmTarget.set(javaTarget) } From 78ef8cac437fae0e03f1a2de37f7d03096dbb535 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 13:41:49 -0700 Subject: [PATCH 290/389] Test --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9c89d0054de..7db677820be 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --profile --no-build-cache - name: Upload Artifact uses: actions/upload-artifact@v5 From aed3c1b41740206c73195a72a85ef51b94123862 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 13:51:22 -0700 Subject: [PATCH 291/389] Use temurin --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 7db677820be..bfb3aa1ae46 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -11,8 +11,8 @@ jobs: - name: Set up JDK 21 uses: actions/setup-java@v5 with: + distribution: temurin java-version: 21 - distribution: adopt - name: Grant execute permission for gradlew run: chmod +x gradlew From b063839895a80fd3da7e7093216e3ac15248c976 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:08:33 -0700 Subject: [PATCH 292/389] - --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index bfb3aa1ae46..8e86ec9416c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --profile --no-build-cache + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From 2eaab01aa7cce91d1bc8249b48cf55e3d3f3b026 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:08:58 -0700 Subject: [PATCH 293/389] Try dependsOn library assemble --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c485ec16dc8..1ad52e405df 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -287,6 +287,7 @@ tasks.register("makeJar") { } tasks.withType { + dependsOn(":library:assemble") compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) From 26af8990b99b5dc3f8329add05d81f3827621d5c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:18:14 -0700 Subject: [PATCH 294/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 1ad52e405df..210afa392f1 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -287,7 +287,7 @@ tasks.register("makeJar") { } tasks.withType { - dependsOn(":library:assemble") + dependsOn(":library:jvmJar") compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) From 48066a584cd26ec12952f90a1df607c9317b87d6 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:25:45 -0700 Subject: [PATCH 295/389] Try assemble --- app/build.gradle.kts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 210afa392f1..cfd46da2174 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -287,7 +287,6 @@ tasks.register("makeJar") { } tasks.withType { - dependsOn(":library:jvmJar") compilerOptions { jvmTarget.set(javaTarget) jvmDefault.set(JvmDefaultMode.ENABLE) @@ -296,6 +295,10 @@ tasks.withType { } } +tasks.named("assemble") { + dependsOn(":library:assemble", ":library:jvmJar", ":library:build") +} + /*dokka { moduleName = "App" dokkaSourceSets { From 2925e7b496ee982346d01d1b3b8c356a04b2709d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:34:06 -0700 Subject: [PATCH 296/389] Try preBuild --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index cfd46da2174..5902634cf6d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -295,7 +295,7 @@ tasks.withType { } } -tasks.named("assemble") { +tasks.named("preBuild") { dependsOn(":library:assemble", ":library:jvmJar", ":library:build") } From 78479b33f6dfd7c3c76f065086552e611c5ad2fa Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:44:33 -0700 Subject: [PATCH 297/389] Try --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 8e86ec9416c..6f856a8b4d4 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --warning-mode all --info - name: Upload Artifact uses: actions/upload-artifact@v5 From aefe5ee54f9e7fc8120bc709c30bb7f425e5bc5d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:45:34 -0700 Subject: [PATCH 298/389] Try --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index e3b1241b9bd..cfd5560b69c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,6 +8,7 @@ plugins { } allprojects { + project.plugins.forEach { println(it) } // https://docs.gradle.org/current/userguide/upgrading_major_version_9.html#test_task_fails_when_no_tests_are_discovered tasks.withType().configureEach { failOnNoDiscoveredTests = false From 623587bb075b453d6178648fd23c47d6488c9463 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:50:42 -0700 Subject: [PATCH 299/389] - --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6f856a8b4d4..8e86ec9416c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar --warning-mode all --info + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From fcb5d51da3d5dcb9db9f6076cd43baae423339ee Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:52:03 -0700 Subject: [PATCH 300/389] - --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index cfd5560b69c..35c92106a08 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { } allprojects { - project.plugins.forEach { println(it) } + plugins.forEach { println(it) } // https://docs.gradle.org/current/userguide/upgrading_major_version_9.html#test_task_fails_when_no_tests_are_discovered tasks.withType().configureEach { failOnNoDiscoveredTests = false From 929f71ccbdf87f37ff56681960d70d5a238996c5 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:54:31 -0700 Subject: [PATCH 301/389] Test --- build.gradle.kts | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 35c92106a08..e4c0f072624 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,3 +14,34 @@ allprojects { failOnNoDiscoveredTests = false } } +gradle.projectsEvaluated { +println("Scanning for 'archives' usage...") + +allprojects.forEach { project -> + project.configurations.matching { it.name == "archives" }.forEach { config -> + println("Project: ${project.path} has 'archives' configuration") + config.allDependencies.forEach { dep -> + println(" Dependency: $dep") + } + config.allArtifacts.forEach { artifact -> + println(" Artifact: ${artifact.file}") + } + } +} + +println("Checking tasks attaching to archives...") +allprojects.forEach { project -> + project.tasks.forEach { task -> + task.outputs.files.files.forEach { file -> + if (file.exists()) { + val artifactsUsingArchives = project.configurations.matching { it.name == "archives" } + .flatMap { it.allArtifacts }.map { it.file } + if (file in artifactsUsingArchives) { + println("Task ${task.path} outputs ${file} -> attached to 'archives'") + } + } + } + } +} +} + From 6e14ee464171c6f06e01948bfe80b5c44deb9140 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:57:54 -0700 Subject: [PATCH 302/389] - --- app/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5902634cf6d..c485ec16dc8 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -295,10 +295,6 @@ tasks.withType { } } -tasks.named("preBuild") { - dependsOn(":library:assemble", ":library:jvmJar", ":library:build") -} - /*dokka { moduleName = "App" dokkaSourceSets { From 8ee8a498a985cb3cc27dcf1a07cd5f83d50bb6e0 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 14:59:13 -0700 Subject: [PATCH 303/389] Try --- library/build.gradle.kts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 039efadbbeb..1d33069b601 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -97,6 +97,10 @@ publishing { } } +tasks.named("assemble") { + dependsOn("jvmJar") +} + dokka { moduleName = "Library" dokkaSourceSets { From 1acaf1ff749731ebb8adcfa05bbe8dd9a23b6740 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 15:07:33 -0700 Subject: [PATCH 304/389] - --- build.gradle.kts | 32 -------------------------------- 1 file changed, 32 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e4c0f072624..e3b1241b9bd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,40 +8,8 @@ plugins { } allprojects { - plugins.forEach { println(it) } // https://docs.gradle.org/current/userguide/upgrading_major_version_9.html#test_task_fails_when_no_tests_are_discovered tasks.withType().configureEach { failOnNoDiscoveredTests = false } } -gradle.projectsEvaluated { -println("Scanning for 'archives' usage...") - -allprojects.forEach { project -> - project.configurations.matching { it.name == "archives" }.forEach { config -> - println("Project: ${project.path} has 'archives' configuration") - config.allDependencies.forEach { dep -> - println(" Dependency: $dep") - } - config.allArtifacts.forEach { artifact -> - println(" Artifact: ${artifact.file}") - } - } -} - -println("Checking tasks attaching to archives...") -allprojects.forEach { project -> - project.tasks.forEach { task -> - task.outputs.files.files.forEach { file -> - if (file.exists()) { - val artifactsUsingArchives = project.configurations.matching { it.name == "archives" } - .flatMap { it.allArtifacts }.map { it.file } - if (file in artifactsUsingArchives) { - println("Task ${task.path} outputs ${file} -> attached to 'archives'") - } - } - } - } -} -} - From 05171b71a08270c099c7343a4286c0db3fbc7265 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 15:07:57 -0700 Subject: [PATCH 305/389] - --- library/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 1d33069b601..039efadbbeb 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -97,10 +97,6 @@ publishing { } } -tasks.named("assemble") { - dependsOn("jvmJar") -} - dokka { moduleName = "Library" dokkaSourceSets { From 56bfe5a2195d9f5d42675b9130dd6eaba3ab9166 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 3 Dec 2025 16:46:51 -0700 Subject: [PATCH 306/389] Update --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 039efadbbeb..5e2b5909882 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -28,6 +28,7 @@ kotlin { compilerOptions { jvmTarget.set(javaTarget) } + lint { targetSdk = libs.versions.targetSdk.get().toInt() } From bcaca076ae3b259df1e3f8fcbc99310ff8796e64 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 02:39:41 -0700 Subject: [PATCH 307/389] . --- app/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5198e95b103..e60b51bf27d 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,6 +6,7 @@ import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile + plugins { alias(libs.plugins.android.application) // alias(libs.plugins.dokka) From beb3ce5fa773ae4e6820a9a875f9ac6cbd064630 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 02:39:55 -0700 Subject: [PATCH 308/389] - --- app/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e60b51bf27d..5198e95b103 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -6,7 +6,6 @@ import org.jetbrains.kotlin.gradle.dsl.JvmDefaultMode import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile - plugins { alias(libs.plugins.android.application) // alias(libs.plugins.dokka) From f027ff95db00294d9b937babe8787cf2b0dd0b1e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 12:52:49 -0700 Subject: [PATCH 309/389] Test --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 8e86ec9416c..ff22a5ac699 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar lint - name: Upload Artifact uses: actions/upload-artifact@v5 From 04c509ebd5840856af9a0ca8132d1072414eb469 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:01:20 -0700 Subject: [PATCH 310/389] Update --- library/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 5e2b5909882..6f4208995e3 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -30,6 +30,8 @@ kotlin { } lint { + abortOnError = false + checkReleaseBuilds = true targetSdk = libs.versions.targetSdk.get().toInt() } } From 2bec9604c3e4682fdd0746f8af5ff382072a2677 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:08:52 -0700 Subject: [PATCH 311/389] - --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index ff22a5ac699..8e86ec9416c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar lint + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From eb024ec3af2a7c603b0dd29bba9a878c1ba2860e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:24:39 -0700 Subject: [PATCH 312/389] test --- .github/workflows/pull_request.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 8e86ec9416c..b149d4651a9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,9 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: | + ./gradlew lint library + ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From 6201ecc2fce8b7d11706fdda4c660e56d0d1c566 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:26:28 -0700 Subject: [PATCH 313/389] Test --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index b149d4651a9..c667cca8731 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -25,7 +25,7 @@ jobs: - name: Run Gradle run: | - ./gradlew lint library + ./gradlew :library:lint ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact From 9010e0da5b0e55570d66378c43648b3d41b4d4a8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:32:53 -0700 Subject: [PATCH 314/389] Add --- gradle/libs.versions.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 725e80b0eba..bb35f5e5b4c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -112,6 +112,7 @@ work-runtime-ktx = { module = "androidx.work:work-runtime-ktx", version.ref = "w [plugins] android-application = { id = "com.android.application", version.ref = "androidGradlePlugin" } +android-lint = { id = "com.android.lint", version.ref = "androidGradlePlugin" } android-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "androidGradlePlugin" } buildkonfig = { id = "com.codingfeline.buildkonfig", version.ref = "buildkonfigGradlePlugin" } dokka = { id = "org.jetbrains.dokka", version.ref = "dokkaGradlePlugin" } From d5496cb382b8731b0cdebe57460b5c9d50ae0497 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:33:25 -0700 Subject: [PATCH 315/389] Add --- build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/build.gradle.kts b/build.gradle.kts index e3b1241b9bd..e35c1f61148 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,6 @@ plugins { alias(libs.plugins.android.application) apply false + alias(libs.plugins.android.lint) apply false alias(libs.plugins.android.multiplatform.library) apply false alias(libs.plugins.buildkonfig) apply false // Universal build config alias(libs.plugins.dokka) apply false From 7adc545439d73ac111596107f0883700a56423a1 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:34:31 -0700 Subject: [PATCH 316/389] Add --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 6f4208995e3..8466d5802ae 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -8,6 +8,7 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("maven-publish") // Gradle core plugin alias(libs.plugins.kotlin.multiplatform) + alias(libs.plugins.android.lint) alias(libs.plugins.android.multiplatform.library) alias(libs.plugins.buildkonfig) alias(libs.plugins.dokka) From bffb43d4275ce5e6f5cb637a11e7f61fedb5eb45 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:38:57 -0700 Subject: [PATCH 317/389] - --- library/build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 8466d5802ae..e73ed970d96 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -31,8 +31,6 @@ kotlin { } lint { - abortOnError = false - checkReleaseBuilds = true targetSdk = libs.versions.targetSdk.get().toInt() } } From e8664bb25f6e1615e3b097441cab39c681292b76 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:39:45 -0700 Subject: [PATCH 318/389] - --- .github/workflows/pull_request.yml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c667cca8731..8e86ec9416c 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,9 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: | - ./gradlew :library:lint - ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v5 From 445ea2778d7b73d246e81f9e05fbfdaf741e25fc Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 13:51:28 -0700 Subject: [PATCH 319/389] Add --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index e73ed970d96..77471025d26 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -32,6 +32,7 @@ kotlin { lint { targetSdk = libs.versions.targetSdk.get().toInt() + abortOnError = false } } From 54e294c3ed9137f81a87663ca2894b0d16cea1ce Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 14:35:06 -0700 Subject: [PATCH 320/389] Try --- library/build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 77471025d26..18737acf282 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -27,6 +27,7 @@ kotlin { minSdk = libs.versions.minSdk.get().toInt() compilerOptions { + isCoreLibraryDesugaringEnabled = true jvmTarget.set(javaTarget) } @@ -63,6 +64,10 @@ kotlin { } } +dependencies { + coreLibraryDesugaring(libs.desugar.jdk.libs.nio) // NIO Flavor Needed for NewPipeExtractor +} + tasks.withType { compilerOptions { jvmTarget.set(javaTarget) From 5fe15d07362d6fc436e250d923c916e96fe9472b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 5 Dec 2025 14:57:03 -0700 Subject: [PATCH 321/389] - --- library/build.gradle.kts | 5 ----- 1 file changed, 5 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index 18737acf282..77471025d26 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -27,7 +27,6 @@ kotlin { minSdk = libs.versions.minSdk.get().toInt() compilerOptions { - isCoreLibraryDesugaringEnabled = true jvmTarget.set(javaTarget) } @@ -64,10 +63,6 @@ kotlin { } } -dependencies { - coreLibraryDesugaring(libs.desugar.jdk.libs.nio) // NIO Flavor Needed for NewPipeExtractor -} - tasks.withType { compilerOptions { jvmTarget.set(javaTarget) From 657748401a8fd8517fd66fca46fccefa983bf1be Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 6 Dec 2025 18:58:47 -0700 Subject: [PATCH 322/389] Test --- .../java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt index 66a6e156c76..64feb0316f9 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt @@ -21,7 +21,7 @@ object SubtitleUtils { getFolder(context, relative, info.basePath)?.forEach { (name, uri) -> if (isMatchingSubtitle(name, display, cleanDisplay)) { val subtitleFile = SafeFile.fromUri(context, uri) - if (subtitleFile == null || subtitleFile.delete() != true) { + if (subtitleFile == null || subtitleFile.deleteOrThrow() != true) { Log.e("SubtitleDeletion", "Failed to delete subtitle file: ${subtitleFile?.name()}") } } @@ -53,4 +53,5 @@ object SubtitleUtils { fun cleanDisplayName(name: String): String { return name.substringBeforeLast('.').trim() } -} \ No newline at end of file + +} From 02c22bea30fddddf4b371a8701dd73a3534e46ae Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 6 Dec 2025 19:37:26 -0700 Subject: [PATCH 323/389] - --- .../java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt b/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt index 64feb0316f9..66a6e156c76 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/utils/SubtitleUtils.kt @@ -21,7 +21,7 @@ object SubtitleUtils { getFolder(context, relative, info.basePath)?.forEach { (name, uri) -> if (isMatchingSubtitle(name, display, cleanDisplay)) { val subtitleFile = SafeFile.fromUri(context, uri) - if (subtitleFile == null || subtitleFile.deleteOrThrow() != true) { + if (subtitleFile == null || subtitleFile.delete() != true) { Log.e("SubtitleDeletion", "Failed to delete subtitle file: ${subtitleFile?.name()}") } } @@ -53,5 +53,4 @@ object SubtitleUtils { fun cleanDisplayName(name: String): String { return name.substringBeforeLast('.').trim() } - -} +} \ No newline at end of file From 29650320fecb9ab0f6c771e7570cc945fb9bcd23 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:14:19 -0700 Subject: [PATCH 324/389] Test --- .github/workflows/pull_request.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 8e86ec9416c..c5fd224cf89 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -35,6 +35,7 @@ jobs: app/build/outputs/apk/prerelease/release/*.apk app/build/libs/app-sources.jar app/build/classes.jar + library/build/libs/library-sources.jar - name: Deploy Reports to GitHub Pages run: | From d73dca1cce935cb2f6a92da30e93635d264996fb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:17:45 -0700 Subject: [PATCH 325/389] Test --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index c5fd224cf89..251e648c771 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -31,11 +31,11 @@ jobs: with: name: pull-request-build path: | + find . -type f -name "*-sources.jar" -print app/build/outputs/apk/prerelease/debug/*.apk app/build/outputs/apk/prerelease/release/*.apk app/build/libs/app-sources.jar app/build/classes.jar - library/build/libs/library-sources.jar - name: Deploy Reports to GitHub Pages run: | From 3aea9593ac6b55a75a4117bdaa82ed6fb70beba8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:21:17 -0700 Subject: [PATCH 326/389] Test --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 251e648c771..eea7fea60fa 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -31,7 +31,6 @@ jobs: with: name: pull-request-build path: | - find . -type f -name "*-sources.jar" -print app/build/outputs/apk/prerelease/debug/*.apk app/build/outputs/apk/prerelease/release/*.apk app/build/libs/app-sources.jar @@ -39,6 +38,7 @@ jobs: - name: Deploy Reports to GitHub Pages run: | + find . -type f -name "*-sources.jar" -print BRANCH_NAME=${GITHUB_REF#refs/heads/} TARGET_DIR=gh-pages/$BRANCH_NAME mkdir -p "$TARGET_DIR" From 62c816285a357c6d2036722e3faacc8ecbcc1039 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:24:30 -0700 Subject: [PATCH 327/389] Update --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index eea7fea60fa..9090a7c349d 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -35,10 +35,10 @@ jobs: app/build/outputs/apk/prerelease/release/*.apk app/build/libs/app-sources.jar app/build/classes.jar + library/build/libs/library-android-1.0.1-sources.jar - name: Deploy Reports to GitHub Pages run: | - find . -type f -name "*-sources.jar" -print BRANCH_NAME=${GITHUB_REF#refs/heads/} TARGET_DIR=gh-pages/$BRANCH_NAME mkdir -p "$TARGET_DIR" From 5f677e187d2a745a55e59421f2085b1863a7f386 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 7 Dec 2025 16:25:55 -0700 Subject: [PATCH 328/389] Update --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 9090a7c349d..6450cde85fc 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -35,7 +35,7 @@ jobs: app/build/outputs/apk/prerelease/release/*.apk app/build/libs/app-sources.jar app/build/classes.jar - library/build/libs/library-android-1.0.1-sources.jar + library/build/libs/library-*-sources.jar - name: Deploy Reports to GitHub Pages run: | From cd7a80cd4c6bdef989071befc57ece4de56bb018 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 8 Dec 2025 10:55:22 -0700 Subject: [PATCH 329/389] Test --- .github/workflows/pull_request.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 6450cde85fc..52d42e28637 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -8,11 +8,11 @@ jobs: steps: - uses: actions/checkout@v6 - - name: Set up JDK 21 + - name: Set up JDK 17 uses: actions/setup-java@v5 with: distribution: temurin - java-version: 21 + java-version: 17 - name: Grant execute permission for gradlew run: chmod +x gradlew From 8f8a46a024b093bbbf81a069d259d6e8d7a38def Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 8 Dec 2025 11:19:36 -0700 Subject: [PATCH 330/389] Try --- 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 bb35f5e5b4c..adda7778ffc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-beta03" +androidGradlePlugin = "9.0.0-beta04" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From 745db7f6c5e6f8c7f6d77241b5f1dca1bc87dfad Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 8 Dec 2025 16:02:04 -0700 Subject: [PATCH 331/389] Test --- gradle/libs.versions.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index adda7778ffc..3d40cf1bfd5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,6 +28,7 @@ kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha07" media3 = "1.8.0" +media3FfmpegDecoder = "1.8.0+1" navigationKtx = "2.9.6" newpipeextractor = "v0.24.8" nextlibMedia3 = "1.8.0-0.9.0" @@ -87,6 +88,7 @@ media3-datasource-okhttp = { module = "androidx.media3:media3-datasource-okhttp" media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" } media3-exoplayer-dash = { module = "androidx.media3:media3-exoplayer-dash", version.ref = "media3" } media3-exoplayer-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "media3" } +media3-ffmpeg-decoder = { module = "org.jellyfin.media3:media3-ffmpeg-decoder", version.ref = "media3FfmpegDecoder" } media3-session = { module = "androidx.media3:media3-session", version.ref = "media3" } media3-ui = { module = "androidx.media3:media3-ui", version.ref = "media3" } navigation-fragment-ktx = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "navigationKtx" } @@ -122,6 +124,6 @@ kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref [bundles] coil = ["coil", "coil-network-okhttp"] lifecycle = ["lifecycle-livedata-ktx", "lifecycle-viewmodel-ktx"] -media3 = ["media3-cast", "media3-common", "media3-container", "media3-datasource-cronet", "media3-datasource-okhttp", "media3-exoplayer", "media3-exoplayer-dash", "media3-exoplayer-hls", "media3-session", "media3-ui"] +media3 = ["media3-cast", "media3-common", "media3-container", "media3-datasource-cronet", "media3-datasource-okhttp", "media3-exoplayer", "media3-exoplayer-dash", "media3-exoplayer-hls", "media3-ffmpeg-decoder", "media3-session", "media3-ui"] navigation = ["navigation-fragment-ktx", "navigation-ui-ktx"] nextlib = ["nextlib-media3ext", "nextlib-mediainfo"] From b11a8437d66a5a527160b18a499c544723dde3ea Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 8 Dec 2025 16:18:25 -0700 Subject: [PATCH 332/389] try ffmpeg --- .../java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index b7712cd796f..c9b89e8eda7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -1085,7 +1085,9 @@ class CS3IPlayer : IPlayer { setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON) } } else { - DefaultRenderersFactory(context) + DefaultRenderersFactory(context).apply { + setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON) + } } val style = CustomDecoder.style From 969d838c6cd88166d23121e105a8fa5a628542c2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 8 Dec 2025 16:22:40 -0700 Subject: [PATCH 333/389] - --- .../com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index c9b89e8eda7..ae965bfc02a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -1583,11 +1583,11 @@ class CS3IPlayer : IPlayer { && exoPlayer?.isCurrentMediaItemLive != true } ?: false - if (invalid) { - releasePlayer(saveTime = false) - event(ErrorEvent(InvalidFileException("Too short playback"))) - return - } + // if (invalid) { + // releasePlayer(saveTime = false) + // event(ErrorEvent(InvalidFileException("Too short playback"))) + // return + // } setPreferredSubtitles(currentSubtitles) val format = exoPlayer?.videoFormat From 979e4e2f8a5bb1edccfb4e5c27e269aae6b2b8bb Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 9 Dec 2025 10:52:35 -0700 Subject: [PATCH 334/389] Bump versions --- gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3d40cf1bfd5..50b2df76872 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-beta04" +androidGradlePlugin = "9.0.0-beta05" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" @@ -23,7 +23,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.0-RC2" +kotlinGradlePlugin = "2.3.0-RC3" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha07" From d0f16fc10e1f0a78e28a5c780c681136c7707167 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 9 Dec 2025 10:54:36 -0700 Subject: [PATCH 335/389] - --- 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 50b2df76872..01dcc11ee64 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-beta05" +androidGradlePlugin = "9.0.0-beta04" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From d803e4548fb3982d8ab9098c17b7984b206f4e35 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 9 Dec 2025 13:41:30 -0700 Subject: [PATCH 336/389] Add --- library/lint.xml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 library/lint.xml diff --git a/library/lint.xml b/library/lint.xml new file mode 100644 index 00000000000..6f4e202227b --- /dev/null +++ b/library/lint.xml @@ -0,0 +1,6 @@ + + + + + + From b4fbc5db07007c5062b88cd15acac1fd522e576e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 09:54:11 -0700 Subject: [PATCH 337/389] Test --- .../com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 48353736b47..c4891add772 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -132,7 +132,7 @@ import kotlinx.coroutines.isActive import kotlinx.coroutines.Job import kotlinx.coroutines.launch -@UnstableApi +// @UnstableApi class GeneratorPlayer : FullScreenPlayer() { companion object { const val NOTIFICATION_ID = 2326 From 9174045617c55a8913ed2850c27b7f5b52313098 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:02:03 -0700 Subject: [PATCH 338/389] Test --- .../ui/player/CustomSubtitleDecoderFactory.kt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt index 40aff83e1c3..28ca1f22acb 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt @@ -35,8 +35,8 @@ import java.nio.charset.Charset /** * @param fallbackFormat used to create a decoder based on mimetype if the subtitle string is not * enough to identify the subtitle format. - **/ -@UnstableApi + */ +// @UnstableApi class CustomDecoder(private val fallbackFormat: Format?) : SubtitleParser { companion object { fun updateForcedEncoding(context: Context) { @@ -363,7 +363,7 @@ class CustomDecoder(private val fallbackFormat: Format?) : SubtitleParser { } /** See https://github.com/google/ExoPlayer/blob/release-v2/library/core/src/main/java/com/google/android/exoplayer2/text/SubtitleDecoderFactory.java */ -@OptIn(UnstableApi::class) +// @OptIn(UnstableApi::class) class CustomSubtitleDecoderFactory : SubtitleDecoderFactory { override fun supportsFormat(format: Format): Boolean { @@ -404,7 +404,7 @@ class CustomSubtitleDecoderFactory : SubtitleDecoderFactory { } } -@OptIn(UnstableApi::class) +// @OptIn(UnstableApi::class) /** We need to convert the newer SubtitleParser to an older SubtitleDecoder */ class DelegatingSubtitleDecoder(name: String, private val parser: SubtitleParser) : SimpleSubtitleDecoder(name) { From 265170947ab008026c5ecf6146a8bfd3123bc77a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:14:01 -0700 Subject: [PATCH 339/389] Test --- .../com/lagradost/cloudstream3/ui/WebviewFragment.kt | 2 +- .../com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt | 2 +- .../ui/player/CustomSubtitleDecoderFactory.kt | 2 +- .../cloudstream3/ui/player/FullScreenPlayer.kt | 6 +++--- .../cloudstream3/ui/player/GeneratorPlayer.kt | 10 +++++----- .../cloudstream3/ui/player/PlayerSubtitleHelper.kt | 2 +- .../cloudstream3/ui/subtitles/SubtitlesFragment.kt | 4 ++-- 7 files changed, 14 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt index efc9b51c9b0..4082c7cb6cc 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt @@ -28,7 +28,7 @@ class WebviewFragment : BaseFragment( } binding.webView.webViewClient = object : WebViewClient() { - @OptIn(UnstableApi::class) + // @OptIn(UnstableApi::class) override fun shouldOverrideUrlLoading( view: WebView?, request: WebResourceRequest? diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index ae965bfc02a..4b2740f9d80 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -120,7 +120,7 @@ const val toleranceBeforeUs = 300_000L */ const val toleranceAfterUs = 300_000L -@OptIn(UnstableApi::class) +// @OptIn(UnstableApi::class) class CS3IPlayer : IPlayer { private var playerListener: Player.Listener? = null private var isPlaying = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt index 28ca1f22acb..0f814f282a3 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt @@ -36,7 +36,7 @@ import java.nio.charset.Charset * @param fallbackFormat used to create a decoder based on mimetype if the subtitle string is not * enough to identify the subtitle format. */ -// @UnstableApi +@OptIn(UnstableApi::class) class CustomDecoder(private val fallbackFormat: Format?) : SubtitleParser { companion object { fun updateForcedEncoding(context: Context) { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt index 9cc829e9511..df08af2f01f 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt @@ -274,7 +274,7 @@ open class FullScreenPlayer : AbstractPlayerFragment() { private fun animateLayoutChangesForSubtitles() = // Post here as bottomPlayerBar is gone the first frame => bottomPlayerBar.height = 0 playerBinding?.bottomPlayerBar?.post { - @OptIn(UnstableApi::class) + // @OptIn(UnstableApi::class) val sView = subView ?: return@post val sStyle = CustomDecoder.style val binding = playerBinding ?: return@post @@ -378,7 +378,7 @@ open class FullScreenPlayer : AbstractPlayerFragment() { } } - @OptIn(UnstableApi::class) + // @OptIn(UnstableApi::class) override fun subtitlesChanged() { val tracks = player.getVideoTracks() val isBuiltinSubtitles = tracks.currentTextTracks.all { track -> @@ -1526,7 +1526,7 @@ open class FullScreenPlayer : AbstractPlayerFragment() { private var loudnessEnhancer: LoudnessEnhancer? = null - @OptIn(UnstableApi::class) + // @OptIn(UnstableApi::class) private fun handleVolumeAdjustment( delta: Float, fromButton: Boolean, diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index c4891add772..2efb4756c4b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -266,12 +266,12 @@ class GeneratorPlayer : FullScreenPlayer() { return PendingIntent.getBroadcast(context, instanceId, intent, pendingFlags) } - @OptIn(UnstableApi::class) - @UnstableApi + // @OptIn(UnstableApi::class) + // @UnstableApi private var cachedPlayerNotificationManager: PlayerNotificationManager? = null - @OptIn(UnstableApi::class) - @UnstableApi + // @OptIn(UnstableApi::class) + // @UnstableApi private fun getMediaNotification(context: Context): PlayerNotificationManager { val cache = cachedPlayerNotificationManager if (cache != null) return cache @@ -876,7 +876,7 @@ class GeneratorPlayer : FullScreenPlayer() { //dialog.subtitles_search_year?.setText(currentTempMeta.year) } - @OptIn(UnstableApi::class) + // @OptIn(UnstableApi::class) private fun openSubPicker() { try { subsPathPicker.launch( diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt index d9e8963e49b..5b6980129f7 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt @@ -63,7 +63,7 @@ data class SubtitleData( } } -@OptIn(UnstableApi::class) +// @OptIn(UnstableApi::class) class PlayerSubtitleHelper { private var activeSubtitles: Set = emptySet() private var allSubtitles: Set = emptySet() diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt index 09fd23abdf4..40ae0319440 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt @@ -60,7 +60,7 @@ const val SUBTITLE_KEY = "subtitle_settings" const val SUBTITLE_AUTO_SELECT_KEY = "subs_auto_select" const val SUBTITLE_DOWNLOAD_KEY = "subs_auto_download" -data class SaveCaptionStyle @OptIn(UnstableApi::class) constructor( +data class SaveCaptionStyle /*@OptIn(UnstableApi::class)*/ constructor( @JsonProperty("foregroundColor") var foregroundColor: Int, @JsonProperty("backgroundColor") var backgroundColor: Int, @JsonProperty("windowColor") var windowColor: Int, @@ -91,7 +91,7 @@ data class SaveCaptionStyle @OptIn(UnstableApi::class) constructor( const val DEF_SUBS_ELEVATION = 20 -@OptIn(androidx.media3.common.util.UnstableApi::class) +// @OptIn(UnstableApi::class) class SubtitlesFragment : BaseDialogFragment( BaseFragment.BindingCreator.Inflate(SubtitleSettingsBinding::inflate) ) { From 9a3f68f104fc9b5e8c018c445b0ab12921340aca Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:17:18 -0700 Subject: [PATCH 340/389] Test --- .../cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt index 0f814f282a3..fe1b053eef1 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt @@ -36,7 +36,7 @@ import java.nio.charset.Charset * @param fallbackFormat used to create a decoder based on mimetype if the subtitle string is not * enough to identify the subtitle format. */ -@OptIn(UnstableApi::class) +// @OptIn(UnstableApi::class) class CustomDecoder(private val fallbackFormat: Format?) : SubtitleParser { companion object { fun updateForcedEncoding(context: Context) { From eaa9fcb42c153263531268e01c92a6c25d855245 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:27:14 -0700 Subject: [PATCH 341/389] Update --- .../java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt | 2 +- .../cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index 4b2740f9d80..ae965bfc02a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -120,7 +120,7 @@ const val toleranceBeforeUs = 300_000L */ const val toleranceAfterUs = 300_000L -// @OptIn(UnstableApi::class) +@OptIn(UnstableApi::class) class CS3IPlayer : IPlayer { private var playerListener: Player.Listener? = null private var isPlaying = false diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt index fe1b053eef1..31f9ec6df91 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CustomSubtitleDecoderFactory.kt @@ -36,7 +36,7 @@ import java.nio.charset.Charset * @param fallbackFormat used to create a decoder based on mimetype if the subtitle string is not * enough to identify the subtitle format. */ -// @OptIn(UnstableApi::class) +@OptIn(UnstableApi::class) class CustomDecoder(private val fallbackFormat: Format?) : SubtitleParser { companion object { fun updateForcedEncoding(context: Context) { @@ -363,7 +363,7 @@ class CustomDecoder(private val fallbackFormat: Format?) : SubtitleParser { } /** See https://github.com/google/ExoPlayer/blob/release-v2/library/core/src/main/java/com/google/android/exoplayer2/text/SubtitleDecoderFactory.java */ -// @OptIn(UnstableApi::class) +@OptIn(UnstableApi::class) class CustomSubtitleDecoderFactory : SubtitleDecoderFactory { override fun supportsFormat(format: Format): Boolean { @@ -404,8 +404,8 @@ class CustomSubtitleDecoderFactory : SubtitleDecoderFactory { } } -// @OptIn(UnstableApi::class) /** We need to convert the newer SubtitleParser to an older SubtitleDecoder */ +@OptIn(UnstableApi::class) class DelegatingSubtitleDecoder(name: String, private val parser: SubtitleParser) : SimpleSubtitleDecoder(name) { From 53dc721bfcb02f87b280b534a56208b4289d5f83 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:37:57 -0700 Subject: [PATCH 342/389] Update --- .../lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt | 3 +++ .../com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt index 413bc5d899f..c99c7e93b96 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt @@ -20,11 +20,13 @@ import android.widget.ImageView import android.widget.ProgressBar import android.widget.Toast import androidx.annotation.LayoutRes +import androidx.annotation.OptIn import androidx.annotation.StringRes import androidx.core.view.isGone import androidx.core.view.isVisible import androidx.fragment.app.Fragment import androidx.media3.common.PlaybackException +import androidx.media3.common.util.UnstableApi import androidx.media3.exoplayer.ExoPlayer import androidx.media3.session.MediaSession import androidx.media3.ui.AspectRatioFrameLayout @@ -78,6 +80,7 @@ abstract class AbstractPlayerFragment( var player: IPlayer = CS3IPlayer() ) : Fragment() { var resizeMode: Int = 0 + @OptIn(UnstableApi::class) var subView: SubtitleView? = null protected open var hasPipModeSupport = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt index df08af2f01f..45924624479 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt @@ -274,7 +274,7 @@ open class FullScreenPlayer : AbstractPlayerFragment() { private fun animateLayoutChangesForSubtitles() = // Post here as bottomPlayerBar is gone the first frame => bottomPlayerBar.height = 0 playerBinding?.bottomPlayerBar?.post { - // @OptIn(UnstableApi::class) + @OptIn(UnstableApi::class) val sView = subView ?: return@post val sStyle = CustomDecoder.style val binding = playerBinding ?: return@post From d7f43902cdd9d0f6ff1c12b4ffe4a5b9cdc3e9c2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:49:39 -0700 Subject: [PATCH 343/389] Update --- .../cloudstream3/ui/player/AbstractPlayerFragment.kt | 2 +- .../lagradost/cloudstream3/ui/player/FullScreenPlayer.kt | 4 +--- .../lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 7 +------ 3 files changed, 3 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt index c99c7e93b96..0ce7176ed0c 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/AbstractPlayerFragment.kt @@ -76,11 +76,11 @@ const val NEXT_WATCH_EPISODE_PERCENTAGE = 90 // when the player should sync the progress of "watched", TODO MAKE SETTING const val UPDATE_SYNC_PROGRESS_PERCENTAGE = 80 +@OptIn(UnstableApi::class) abstract class AbstractPlayerFragment( var player: IPlayer = CS3IPlayer() ) : Fragment() { var resizeMode: Int = 0 - @OptIn(UnstableApi::class) var subView: SubtitleView? = null protected open var hasPipModeSupport = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt index 45924624479..b7fc0f5afbd 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt @@ -103,6 +103,7 @@ const val DOUBLE_TAB_PAUSE_PERCENTAGE = 0.15 // in both directions private const val SUBTITLE_DELAY_BUNDLE_KEY = "subtitle_delay" // All the UI Logic for the player +// @OptIn(UnstableApi::class) open class FullScreenPlayer : AbstractPlayerFragment() { private var isVerticalOrientation: Boolean = false protected open var lockRotation = true @@ -274,7 +275,6 @@ open class FullScreenPlayer : AbstractPlayerFragment() { private fun animateLayoutChangesForSubtitles() = // Post here as bottomPlayerBar is gone the first frame => bottomPlayerBar.height = 0 playerBinding?.bottomPlayerBar?.post { - @OptIn(UnstableApi::class) val sView = subView ?: return@post val sStyle = CustomDecoder.style val binding = playerBinding ?: return@post @@ -378,7 +378,6 @@ open class FullScreenPlayer : AbstractPlayerFragment() { } } - // @OptIn(UnstableApi::class) override fun subtitlesChanged() { val tracks = player.getVideoTracks() val isBuiltinSubtitles = tracks.currentTextTracks.all { track -> @@ -1526,7 +1525,6 @@ open class FullScreenPlayer : AbstractPlayerFragment() { private var loudnessEnhancer: LoudnessEnhancer? = null - // @OptIn(UnstableApi::class) private fun handleVolumeAdjustment( delta: Float, fromButton: Boolean, diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 2efb4756c4b..3a35c4991bd 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -132,7 +132,7 @@ import kotlinx.coroutines.isActive import kotlinx.coroutines.Job import kotlinx.coroutines.launch -// @UnstableApi +// @OptIn(UnstableApi::class) class GeneratorPlayer : FullScreenPlayer() { companion object { const val NOTIFICATION_ID = 2326 @@ -266,12 +266,8 @@ class GeneratorPlayer : FullScreenPlayer() { return PendingIntent.getBroadcast(context, instanceId, intent, pendingFlags) } - // @OptIn(UnstableApi::class) - // @UnstableApi private var cachedPlayerNotificationManager: PlayerNotificationManager? = null - // @OptIn(UnstableApi::class) - // @UnstableApi private fun getMediaNotification(context: Context): PlayerNotificationManager { val cache = cachedPlayerNotificationManager if (cache != null) return cache @@ -876,7 +872,6 @@ class GeneratorPlayer : FullScreenPlayer() { //dialog.subtitles_search_year?.setText(currentTempMeta.year) } - // @OptIn(UnstableApi::class) private fun openSubPicker() { try { subsPathPicker.launch( From 119d111166de6f75ec0b53c5f3649ebccbf7c8c2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 10:58:37 -0700 Subject: [PATCH 344/389] Update --- .../com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt | 2 +- .../com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt index b7fc0f5afbd..3821d880a1f 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/FullScreenPlayer.kt @@ -103,7 +103,7 @@ const val DOUBLE_TAB_PAUSE_PERCENTAGE = 0.15 // in both directions private const val SUBTITLE_DELAY_BUNDLE_KEY = "subtitle_delay" // All the UI Logic for the player -// @OptIn(UnstableApi::class) +@OptIn(UnstableApi::class) open class FullScreenPlayer : AbstractPlayerFragment() { private var isVerticalOrientation: Boolean = false protected open var lockRotation = true diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt index 3a35c4991bd..6e362ed801f 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/GeneratorPlayer.kt @@ -132,7 +132,7 @@ import kotlinx.coroutines.isActive import kotlinx.coroutines.Job import kotlinx.coroutines.launch -// @OptIn(UnstableApi::class) +@OptIn(UnstableApi::class) class GeneratorPlayer : FullScreenPlayer() { companion object { const val NOTIFICATION_ID = 2326 From 769f7f059f139e9bbebda68407ab9f85155e7139 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 11:03:38 -0700 Subject: [PATCH 345/389] Update --- .../java/com/lagradost/cloudstream3/ui/WebviewFragment.kt | 5 +---- .../lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt | 2 +- .../cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt | 5 ++++- .../lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt index 4082c7cb6cc..0d951bf6a7a 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/WebviewFragment.kt @@ -6,9 +6,7 @@ import android.webkit.JavascriptInterface import android.webkit.WebResourceRequest import android.webkit.WebView import android.webkit.WebViewClient -import androidx.annotation.OptIn import androidx.fragment.app.FragmentActivity -import androidx.media3.common.util.UnstableApi import androidx.navigation.fragment.findNavController import com.lagradost.cloudstream3.MainActivity import com.lagradost.cloudstream3.USER_AGENT @@ -28,7 +26,6 @@ class WebviewFragment : BaseFragment( } binding.webView.webViewClient = object : WebViewClient() { - // @OptIn(UnstableApi::class) override fun shouldOverrideUrlLoading( view: WebView?, request: WebResourceRequest? @@ -43,6 +40,7 @@ class WebviewFragment : BaseFragment( return super.shouldOverrideUrlLoading(view, request) } } + binding.webView.apply { WebViewResolver.webViewUserAgent = settings.userAgentString @@ -53,7 +51,6 @@ class WebviewFragment : BaseFragment( loadUrl(url) } - } companion object { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt index 5b6980129f7..d9e8963e49b 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/PlayerSubtitleHelper.kt @@ -63,7 +63,7 @@ data class SubtitleData( } } -// @OptIn(UnstableApi::class) +@OptIn(UnstableApi::class) class PlayerSubtitleHelper { private var activeSubtitles: Set = emptySet() private var allSubtitles: Set = emptySet() diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt index 4f41b436d14..880dc2144a6 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt @@ -10,7 +10,9 @@ import android.util.TypedValue import android.view.View import android.widget.TextView import android.widget.Toast +import androidx.annotation.OptIn import androidx.media3.common.text.Cue +import androidx.media3.common.util.UnstableApi import com.fasterxml.jackson.annotation.JsonProperty import com.google.android.gms.cast.TextTrackStyle.EDGE_TYPE_DEPRESSED import com.google.android.gms.cast.TextTrackStyle.EDGE_TYPE_DROP_SHADOW @@ -49,7 +51,8 @@ data class SaveChromeCaptionStyle( @JsonProperty("fontScale") var fontScale: Float = 1.05f, @JsonProperty("windowColor") var windowColor: Int = Color.TRANSPARENT, ) -@androidx.annotation.OptIn(androidx.media3.common.util.UnstableApi::class) + +// @OptIn(UnstableApi::class) class ChromecastSubtitlesFragment : BaseFragment( BaseFragment.BindingCreator.Inflate(ChromecastSubtitleSettingsBinding::inflate) ) { diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt index 40ae0319440..64038634ec2 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt @@ -60,7 +60,7 @@ const val SUBTITLE_KEY = "subtitle_settings" const val SUBTITLE_AUTO_SELECT_KEY = "subs_auto_select" const val SUBTITLE_DOWNLOAD_KEY = "subs_auto_download" -data class SaveCaptionStyle /*@OptIn(UnstableApi::class)*/ constructor( +data class SaveCaptionStyle @OptIn(UnstableApi::class) constructor( @JsonProperty("foregroundColor") var foregroundColor: Int, @JsonProperty("backgroundColor") var backgroundColor: Int, @JsonProperty("windowColor") var windowColor: Int, @@ -91,7 +91,7 @@ data class SaveCaptionStyle /*@OptIn(UnstableApi::class)*/ constructor( const val DEF_SUBS_ELEVATION = 20 -// @OptIn(UnstableApi::class) +@OptIn(UnstableApi::class) class SubtitlesFragment : BaseDialogFragment( BaseFragment.BindingCreator.Inflate(SubtitleSettingsBinding::inflate) ) { From 17e0278c8e91cc8da78ada0c092e2db1ca129863 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 10 Dec 2025 11:14:26 -0700 Subject: [PATCH 346/389] Update --- .../cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt index 880dc2144a6..0b04f1c6508 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt @@ -52,7 +52,6 @@ data class SaveChromeCaptionStyle( @JsonProperty("windowColor") var windowColor: Int = Color.TRANSPARENT, ) -// @OptIn(UnstableApi::class) class ChromecastSubtitlesFragment : BaseFragment( BaseFragment.BindingCreator.Inflate(ChromecastSubtitleSettingsBinding::inflate) ) { @@ -333,6 +332,8 @@ class ChromecastSubtitlesFragment : BaseFragment Date: Wed, 10 Dec 2025 11:21:03 -0700 Subject: [PATCH 347/389] Update --- .../cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt | 2 +- .../lagradost/cloudstream3/ui/subtitles/SubtitlesFragment.kt | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt index 0b04f1c6508..1581874c462 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt @@ -333,8 +333,8 @@ class ChromecastSubtitlesFragment : BaseFragment Date: Wed, 10 Dec 2025 11:38:48 -0700 Subject: [PATCH 348/389] Update --- .../ui/subtitles/ChromecastSubtitlesFragment.kt | 6 +++++- .../cloudstream3/ui/subtitles/SubtitlesFragment.kt | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt index 1581874c462..f9b1cb1fe88 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/subtitles/ChromecastSubtitlesFragment.kt @@ -333,8 +333,12 @@ class ChromecastSubtitlesFragment : BaseFragment Date: Thu, 11 Dec 2025 13:31:29 -0700 Subject: [PATCH 349/389] beta05 --- 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 01dcc11ee64..50b2df76872 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-beta04" +androidGradlePlugin = "9.0.0-beta05" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From 28f52ba215ded90876e6b958dbd0361b874eb1bc Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:09:49 -0700 Subject: [PATCH 350/389] Add --- settings.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/settings.gradle.kts b/settings.gradle.kts index 73bf5a1958b..fdc48ef5812 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,6 +4,7 @@ pluginManagement { gradlePluginPortal() google() mavenCentral() + maven("https://redirector.kotlinlang.org/maven/dev") } } @@ -14,6 +15,7 @@ dependencyResolutionManagement { mavenCentral() mavenLocal() maven("https://jitpack.io") + maven("https://redirector.kotlinlang.org/maven/dev") } } From bf6e795a2334ab2c9798b4145d2a053199252d1d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:11:34 -0700 Subject: [PATCH 351/389] Test 2.3.20-dev-6795 --- 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 50b2df76872..aa6a5746e10 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.0-RC3" +kotlinGradlePlugin = "2.3.20-dev-6795" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha07" From bb3cd0f57020d5a1529b001aafe29af0fe76dde8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:13:47 -0700 Subject: [PATCH 352/389] Test 2.3.20-dev-6091 --- 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 aa6a5746e10..a589925d5e6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.20-dev-6795" +kotlinGradlePlugin = "2.3.20-dev-6091" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha07" From 920ad1302229022f4e4aca68aaab4b2b90936702 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:15:47 -0700 Subject: [PATCH 353/389] Test 2.3.20-dev-6745 --- 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 a589925d5e6..5450fca256b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.20-dev-6091" +kotlinGradlePlugin = "2.3.20-dev-6745" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha07" From b2cc62bf748c8d0a51aa1bdf0dd9d6da83d65015 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 14:23:42 -0700 Subject: [PATCH 354/389] Test 2.3.20-dev-6670 --- 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 5450fca256b..f42592a757d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.20-dev-6745" +kotlinGradlePlugin = "2.3.20-dev-6670" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha07" From eaf961827ea7e5e72a64503284c2e4fab6e5f54f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 19:03:05 -0700 Subject: [PATCH 355/389] Test 2.3.20-dev-6805 --- 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 f42592a757d..f8fa9c9d1cf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.20-dev-6670" +kotlinGradlePlugin = "2.3.20-dev-6805" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha07" From c95b0fcc158a100824a7abe32b44d687eb0e5715 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 19:32:32 -0700 Subject: [PATCH 356/389] Test moving file check --- app/build.gradle.kts | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 5198e95b103..d10cad9e007 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -12,8 +12,6 @@ plugins { } val javaTarget = JvmTarget.fromTarget(libs.versions.jvmTarget.get()) -val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" -val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() tasks.register("generateGitHash") { val gitHashDir = layout.buildDirectory.dir("generated/git") @@ -67,8 +65,11 @@ android { } signingConfigs { - if (prereleaseStoreFile != null) { - create("prerelease") { + create("prerelease") { + val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" + val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() + + if (prereleaseStoreFile != null) { storeFile = file(prereleaseStoreFile) storePassword = System.getenv("SIGNING_STORE_PASSWORD") keyAlias = System.getenv("SIGNING_KEY_ALIAS") From 3762c39b58b5d60f66ecf7f348f5e8a652602348 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 19:40:48 -0700 Subject: [PATCH 357/389] Test --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d10cad9e007..2eb7ea03f19 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -69,12 +69,12 @@ android { val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() - if (prereleaseStoreFile != null) { + // if (prereleaseStoreFile != null) { storeFile = file(prereleaseStoreFile) storePassword = System.getenv("SIGNING_STORE_PASSWORD") keyAlias = System.getenv("SIGNING_KEY_ALIAS") keyPassword = System.getenv("SIGNING_KEY_PASSWORD") - } + // } } } From d3fe14651097b633098979c1d88625cd4da0bc19 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 19:56:11 -0700 Subject: [PATCH 358/389] Try --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 2eb7ea03f19..6b677884ced 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -70,7 +70,7 @@ android { val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() // if (prereleaseStoreFile != null) { - storeFile = file(prereleaseStoreFile) + storeFile = prereleaseStoreFile?.let { file(it) } storePassword = System.getenv("SIGNING_STORE_PASSWORD") keyAlias = System.getenv("SIGNING_KEY_ALIAS") keyPassword = System.getenv("SIGNING_KEY_PASSWORD") From 9fa7b98ffad8e342e1def3eb63c0939864b5a510 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:04:04 -0700 Subject: [PATCH 359/389] -for now --- app/build.gradle.kts | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6b677884ced..d25266e75aa 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,16 +65,15 @@ android { } signingConfigs { - create("prerelease") { - val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" - val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() - - // if (prereleaseStoreFile != null) { - storeFile = prereleaseStoreFile?.let { file(it) } + val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" + val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() + if (prereleaseStoreFile != null) { + create("prerelease") { + storeFile = file(prereleaseStoreFile) storePassword = System.getenv("SIGNING_STORE_PASSWORD") keyAlias = System.getenv("SIGNING_KEY_ALIAS") keyPassword = System.getenv("SIGNING_KEY_PASSWORD") - // } + } } } From ae1a7f553d22835139afa05fb1579f1bd4ab95b3 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:14:02 -0700 Subject: [PATCH 360/389] Test --- app/build.gradle.kts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d25266e75aa..75cca60df67 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,11 +65,11 @@ android { } signingConfigs { - val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" - val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() - if (prereleaseStoreFile != null) { + if (System.getenv("SIGNING_STORE_PASSWORD") != null) { create("prerelease") { - storeFile = file(prereleaseStoreFile) + val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" + val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() + storeFile = prereleaseStoreFile?.let { file(it) } storePassword = System.getenv("SIGNING_STORE_PASSWORD") keyAlias = System.getenv("SIGNING_KEY_ALIAS") keyPassword = System.getenv("SIGNING_KEY_PASSWORD") From e719c14a928e5590b305997fe0714241663ea22f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Fri, 12 Dec 2025 20:17:03 -0700 Subject: [PATCH 361/389] Use SIGNING_KEY_ALIAS --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 75cca60df67..ca45bfd970e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,7 +65,7 @@ android { } signingConfigs { - if (System.getenv("SIGNING_STORE_PASSWORD") != null) { + if (System.getenv("SIGNING_KEY_ALIAS") != null) { create("prerelease") { val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() From 4753ddc13021bdb7078d046eb9a9079a80a54042 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 13 Dec 2025 11:20:42 -0700 Subject: [PATCH 362/389] Update --- app/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index ca45bfd970e..f305ff421d6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,10 +65,13 @@ android { } signingConfigs { + // We just use SIGNING_KEY_ALIAS here since it's fixed and won't change so won't + // kill the configuration cache. if (System.getenv("SIGNING_KEY_ALIAS") != null) { create("prerelease") { val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" val prereleaseStoreFile: File? = File(tmpFilePath).listFiles()?.first() + storeFile = prereleaseStoreFile?.let { file(it) } storePassword = System.getenv("SIGNING_STORE_PASSWORD") keyAlias = System.getenv("SIGNING_KEY_ALIAS") From e360ffb5aa4c2f15de6e719294b3b1057d4fb861 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 13 Dec 2025 11:26:29 -0700 Subject: [PATCH 363/389] Update --- app/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f305ff421d6..8049c4355e4 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -65,8 +65,8 @@ android { } signingConfigs { - // We just use SIGNING_KEY_ALIAS here since it's fixed and won't change so won't - // kill the configuration cache. + // We just use SIGNING_KEY_ALIAS here since it won't change + // so won't kill the configuration cache. if (System.getenv("SIGNING_KEY_ALIAS") != null) { create("prerelease") { val tmpFilePath = System.getProperty("user.home") + "/work/_temp/keystore/" From 13d8a702bf6ce5ad4f527936a4ee6dd592971b42 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 16 Dec 2025 16:14:28 -0700 Subject: [PATCH 364/389] Remove --- .../java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt index 9b0d9204960..e72c924f2cd 100644 --- a/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt +++ b/app/src/main/java/com/lagradost/cloudstream3/ui/player/CS3IPlayer.kt @@ -1089,9 +1089,7 @@ class CS3IPlayer : IPlayer { setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON) } } else { - DefaultRenderersFactory(context).apply { - setExtensionRendererMode(DefaultRenderersFactory.EXTENSION_RENDERER_MODE_ON) - } + DefaultRenderersFactory(context) } val style = CustomDecoder.style From fd5e3c30060cecf9ca1c7fbd78cb507b1d597221 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Tue, 16 Dec 2025 16:15:09 -0700 Subject: [PATCH 365/389] - --- gradle.properties | 2 -- 1 file changed, 2 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2b080727e54..0168ae437bd 100644 --- a/gradle.properties +++ b/gradle.properties @@ -26,5 +26,3 @@ org.gradle.configuration-cache=true # Compiling with Java 8 is deprecated but we still use it for now android.javaCompile.suppressSourceTargetDeprecationWarning=true - -org.gradle.warning.mode=all From ee39450cd9ba41c66c1ee5e0b0c07fff26fc74b2 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Thu, 18 Dec 2025 15:37:47 -0700 Subject: [PATCH 366/389] Use rc01 --- 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 f8fa9c9d1cf..7c701183f3d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-beta05" +androidGradlePlugin = "9.0.0-rc01" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From 61008ac137ac8aaac375600163dc2dc38fa0dc55 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 20 Dec 2025 18:53:38 -0700 Subject: [PATCH 367/389] abortOnError = false --- library/build.gradle.kts | 1 + 1 file changed, 1 insertion(+) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index e73ed970d96..77471025d26 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -32,6 +32,7 @@ kotlin { lint { targetSdk = libs.versions.targetSdk.get().toInt() + abortOnError = false } } From 2a98f670436c1c63fb6cc8ae747b7056e1eb2f7b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 20 Dec 2025 18:58:08 -0700 Subject: [PATCH 368/389] 2.3.0 instead of 2.3.20-dev-6805 --- 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 46217b7b661..c9d1d20c186 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ junit = "4.13.2" junitKtx = "1.3.0" junitVersion = "1.3.0" juniversalchardet = "2.5.0" -kotlinGradlePlugin = "2.3.20-dev-6805" +kotlinGradlePlugin = "2.3.0" kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha08" From 427c34cea2a7f2721aa60413b6612b55196aaff7 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 20 Dec 2025 18:59:21 -0700 Subject: [PATCH 369/389] Remove ffmpeg --- gradle/libs.versions.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c9d1d20c186..a329db27546 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,6 @@ kotlinxCoroutinesCore = "1.10.2" lifecycleKtx = "2.9.4" material = "1.14.0-alpha08" media3 = "1.8.0" -media3FfmpegDecoder = "1.8.0+1" navigationKtx = "2.9.6" newpipeextractor = "v0.24.8" nextlibMedia3 = "1.8.0-0.9.0" @@ -88,7 +87,6 @@ media3-datasource-okhttp = { module = "androidx.media3:media3-datasource-okhttp" media3-exoplayer = { module = "androidx.media3:media3-exoplayer", version.ref = "media3" } media3-exoplayer-dash = { module = "androidx.media3:media3-exoplayer-dash", version.ref = "media3" } media3-exoplayer-hls = { module = "androidx.media3:media3-exoplayer-hls", version.ref = "media3" } -media3-ffmpeg-decoder = { module = "org.jellyfin.media3:media3-ffmpeg-decoder", version.ref = "media3FfmpegDecoder" } media3-session = { module = "androidx.media3:media3-session", version.ref = "media3" } media3-ui = { module = "androidx.media3:media3-ui", version.ref = "media3" } navigation-fragment-ktx = { module = "androidx.navigation:navigation-fragment-ktx", version.ref = "navigationKtx" } @@ -124,6 +122,6 @@ kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref [bundles] coil = ["coil", "coil-network-okhttp"] lifecycle = ["lifecycle-livedata-ktx", "lifecycle-viewmodel-ktx"] -media3 = ["media3-cast", "media3-common", "media3-container", "media3-datasource-cronet", "media3-datasource-okhttp", "media3-exoplayer", "media3-exoplayer-dash", "media3-exoplayer-hls", "media3-ffmpeg-decoder", "media3-session", "media3-ui"] +media3 = ["media3-cast", "media3-common", "media3-container", "media3-datasource-cronet", "media3-datasource-okhttp", "media3-exoplayer", "media3-exoplayer-dash", "media3-exoplayer-hls", "media3-session", "media3-ui"] navigation = ["navigation-fragment-ktx", "navigation-ui-ktx"] nextlib = ["nextlib-media3ext", "nextlib-mediainfo"] From 973aacd8fe60bd043dd2d956157593ff8101719a Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 20 Dec 2025 19:00:10 -0700 Subject: [PATCH 370/389] Remove maven --- settings.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/settings.gradle.kts b/settings.gradle.kts index fdc48ef5812..73bf5a1958b 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -4,7 +4,6 @@ pluginManagement { gradlePluginPortal() google() mavenCentral() - maven("https://redirector.kotlinlang.org/maven/dev") } } @@ -15,7 +14,6 @@ dependencyResolutionManagement { mavenCentral() mavenLocal() maven("https://jitpack.io") - maven("https://redirector.kotlinlang.org/maven/dev") } } From 3adff4e23231aeabf01ed6cd210c25092583d7b8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 20 Dec 2025 19:13:44 -0700 Subject: [PATCH 371/389] - --- library/build.gradle.kts | 2 -- 1 file changed, 2 deletions(-) diff --git a/library/build.gradle.kts b/library/build.gradle.kts index b9384ed84fc..e73ed970d96 100644 --- a/library/build.gradle.kts +++ b/library/build.gradle.kts @@ -7,7 +7,6 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("maven-publish") // Gradle core plugin - alias(libs.plugins.android.lint) alias(libs.plugins.kotlin.multiplatform) alias(libs.plugins.android.lint) alias(libs.plugins.android.multiplatform.library) @@ -33,7 +32,6 @@ kotlin { lint { targetSdk = libs.versions.targetSdk.get().toInt() - abortOnError = false } } From 56a304f0567cf910f26c58e351b6f05cf6dce816 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sat, 20 Dec 2025 19:25:58 -0700 Subject: [PATCH 372/389] - --- app/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0769ec7050e..23b0235061c 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -165,7 +165,6 @@ android { } lint { - abortOnError = false checkReleaseBuilds = false } From fad3badb374205994e27ee303a3ccb8b5ffe380b Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 13:51:40 -0700 Subject: [PATCH 373/389] Add --- app/build.gradle.kts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 23b0235061c..c6c31c73b6e 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -289,6 +289,11 @@ tasks.withType { } } +// Make sure lint runs when running debug builds +tasks.matching { it.name == "assemblePrereleaseDebug" }.configureEach { + dependsOn("lintPrereleaseDebug") +} + /*dokka { moduleName = "App" dokkaSourceSets { From 49ef108200c975e45d599b9bca0b25e2af386f4f Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 14:19:11 -0700 Subject: [PATCH 374/389] Update --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index c6c31c73b6e..b22eafde238 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -291,7 +291,7 @@ tasks.withType { // Make sure lint runs when running debug builds tasks.matching { it.name == "assemblePrereleaseDebug" }.configureEach { - dependsOn("lintPrereleaseDebug") + dependsOn("lint", ":library:lint") } /*dokka { From 18a6aa05d940a16fb964f11ca5d048c169f61cd8 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 14:23:53 -0700 Subject: [PATCH 375/389] - --- build.gradle.kts | 7 ------- 1 file changed, 7 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index e35c1f61148..539c3801ad1 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,10 +7,3 @@ plugins { alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.multiplatform) apply false } - -allprojects { - // https://docs.gradle.org/current/userguide/upgrading_major_version_9.html#test_task_fails_when_no_tests_are_discovered - tasks.withType().configureEach { - failOnNoDiscoveredTests = false - } -} From a36818f70a46ddf6c6fcd1f9dbe853eabbcc9c45 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 14:28:48 -0700 Subject: [PATCH 376/389] - --- build.gradle.kts | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/build.gradle.kts b/build.gradle.kts index 539c3801ad1..e35c1f61148 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -7,3 +7,10 @@ plugins { alias(libs.plugins.kotlin.jvm) apply false alias(libs.plugins.kotlin.multiplatform) apply false } + +allprojects { + // https://docs.gradle.org/current/userguide/upgrading_major_version_9.html#test_task_fails_when_no_tests_are_discovered + tasks.withType().configureEach { + failOnNoDiscoveredTests = false + } +} From fd20cb89d8ae10c82b6d8694cadcaf80686fa95e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 14:36:04 -0700 Subject: [PATCH 377/389] Try --- app/build.gradle.kts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index b22eafde238..14d1b9b14cd 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -165,6 +165,8 @@ android { } lint { + abortOnError = false + checkDependencies = false checkReleaseBuilds = false } From 4ce0c53455918360f41972052b7541be7674772c Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 14:45:10 -0700 Subject: [PATCH 378/389] Test --- app/build.gradle.kts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 14d1b9b14cd..94aa5400879 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -289,6 +289,9 @@ tasks.withType { optIn.add("com.lagradost.cloudstream3.Prerelease") freeCompilerArgs.add("-Xannotation-default-target=param-property") } + doLast { + println("checkDependencies = ${android.lint.checkDependencies}") + } } // Make sure lint runs when running debug builds From e547e12d1679ae969e3a3ffdf418266447a410f4 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 14:45:48 -0700 Subject: [PATCH 379/389] - --- app/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 94aa5400879..f114980d8fa 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -166,7 +166,7 @@ android { lint { abortOnError = false - checkDependencies = false + // checkDependencies = false checkReleaseBuilds = false } From a6fc141adfc747920f4fe786ee7ff1ed8d1fa2b9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 14:51:52 -0700 Subject: [PATCH 380/389] - --- app/build.gradle.kts | 4 ---- 1 file changed, 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index f114980d8fa..d9e53bd200f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -166,7 +166,6 @@ android { lint { abortOnError = false - // checkDependencies = false checkReleaseBuilds = false } @@ -289,9 +288,6 @@ tasks.withType { optIn.add("com.lagradost.cloudstream3.Prerelease") freeCompilerArgs.add("-Xannotation-default-target=param-property") } - doLast { - println("checkDependencies = ${android.lint.checkDependencies}") - } } // Make sure lint runs when running debug builds From 23ea2f5eb1fb0cb7efff85324602c2436c183756 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 15:39:32 -0700 Subject: [PATCH 381/389] Update --- app/build.gradle.kts | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index d9e53bd200f..d7e47588884 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -176,6 +176,16 @@ android { namespace = "com.lagradost.cloudstream3" } +androidComponents { + // Make sure lint runs when running debug builds + onVariants(selector().withBuildType("debug")) { variant -> + val variantName = variant.name.replaceFirstChar { it.uppercase() } + tasks.matching { it.name == "assemble$variantName" }.configureEach { + dependsOn("lint", ":library:lint") + } + } +} + dependencies { // Testing testImplementation(libs.junit) @@ -290,11 +300,6 @@ tasks.withType { } } -// Make sure lint runs when running debug builds -tasks.matching { it.name == "assemblePrereleaseDebug" }.configureEach { - dependsOn("lint", ":library:lint") -} - /*dokka { moduleName = "App" dokkaSourceSets { From f9b8fa4f9059c42dbf3669952583da3992d427f9 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 16:06:12 -0700 Subject: [PATCH 382/389] Try --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 82fd856c7dc..688afafa9fd 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: ./gradlew assemblePrereleaseRelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v6 From 2ab86a8a4c58c7a138c7a4cdf8d97d6c26a49153 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 16:12:20 -0700 Subject: [PATCH 383/389] - --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 688afafa9fd..a3821fa60e5 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrereleaseRelease build androidSourcesJar makeJar + run: ./gradlew assemblePrereleaseRelease androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v6 From aeb30d8973226de8abd2f17bfc2b9f7e00947806 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Sun, 21 Dec 2025 16:15:56 -0700 Subject: [PATCH 384/389] - --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index a3821fa60e5..82fd856c7dc 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrereleaseRelease androidSourcesJar makeJar + run: ./gradlew assemblePrerelease build androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v6 From f5f89c32e386096d8e30d688253146a1f5a1c017 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 22 Dec 2025 10:20:27 -0700 Subject: [PATCH 385/389] Update --- .github/workflows/pull_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 82fd856c7dc..a3821fa60e5 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -24,7 +24,7 @@ jobs: cache-read-only: false - name: Run Gradle - run: ./gradlew assemblePrerelease build androidSourcesJar makeJar + run: ./gradlew assemblePrereleaseRelease androidSourcesJar makeJar - name: Upload Artifact uses: actions/upload-artifact@v6 From f5189f620276b9381370f877d85e8872fafbdd7e Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 22 Dec 2025 11:08:26 -0700 Subject: [PATCH 386/389] Try --- 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 a329db27546..519ffdd0a9e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-rc01" +androidGradlePlugin = "9.0.0-rc02" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From ff8b32ba37ba5516b966450662997be97b992a49 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 22 Dec 2025 11:10:09 -0700 Subject: [PATCH 387/389] Try --- 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 519ffdd0a9e..6994efde3b6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.0.0-rc02" +androidGradlePlugin = "9.1.0-alpha01" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1" From e8cb5269915ba0dd8b4a0ea4eeef53c23905665d Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Wed, 24 Dec 2025 11:03:25 -0700 Subject: [PATCH 388/389] - --- app/build.gradle.kts | 1 - 1 file changed, 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e2313781e28..90b9e5307e6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -165,7 +165,6 @@ android { } lint { - abortOnError = false checkReleaseBuilds = false } From f1affd63b9991259b6a41b3f1c44e90f11a1ac37 Mon Sep 17 00:00:00 2001 From: Luna712 <142361265+Luna712@users.noreply.github.com> Date: Mon, 19 Jan 2026 16:35:57 -0700 Subject: [PATCH 389/389] 9.0.0 --- 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 d9e7d0f5f6a..c66d5ac3bbc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ # https://docs.gradle.org/current/userguide/dependency_versions.html#sec:strict-version [versions] activityKtx = "1.11.0" -androidGradlePlugin = "9.1.0-alpha01" +androidGradlePlugin = "9.0.0" appcompat = "1.7.1" biometric = "1.4.0-alpha04" buildkonfigGradlePlugin = "0.17.1"