diff --git a/app/build.gradle.kts b/app/build.gradle.kts index a3b46d378e..1595125308 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -45,8 +45,11 @@ android { buildConfigField("String", "BUILD_TIME", "\"${getBuildTime()}\"") buildConfigField("Boolean", "INCLUDE_UPDATER", "false") buildConfigField("Boolean", "BETA", "false") + buildConfigField("Boolean", "NIGHTLY", "false") ndk { + // False positive, we have x86 abi support + //noinspection ChromeOsAbiSupport abiFilters += supportedAbis } externalNativeBuild { @@ -60,6 +63,8 @@ android { abi { isEnable = true reset() + // False positive, we have x86 abi support + //noinspection ChromeOsAbiSupport include(*supportedAbis.toTypedArray()) isUniversalApk = true } @@ -76,9 +81,17 @@ android { isMinifyEnabled = true proguardFiles("proguard-android-optimize.txt", "proguard-rules.pro") } + create("beta") { + initWith(getByName("release")) + buildConfigField("boolean", "BETA", "true") + + matchingFallbacks.add("release") + versionNameSuffix = "-b${getCommitCount()}" + } create("nightly") { initWith(getByName("release")) buildConfigField("boolean", "BETA", "true") + buildConfigField("boolean", "NIGHTLY", "true") signingConfig = signingConfigs.getByName("debug") matchingFallbacks.add("release") diff --git a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt index cab4290cd6..f6c6412566 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/data/updater/AppUpdateChecker.kt @@ -94,11 +94,15 @@ class AppUpdateChecker { val isNewVersionNightly = newSemVer.size == 1 val oldSemVer = oldPreReleaseVer.first().split(".").map { it.toInt() } - oldSemVer.mapIndexed { index, i -> - if (!isNewVersionNightly && newSemVer.getOrElse(index) { i } > i) { - return true - } else if (newSemVer.getOrElse(index) { i } < i) { - return false + // Nightly doesn't use semver + if (!BuildConfig.NIGHTLY) { + oldSemVer.mapIndexed { index, i -> + // Keeping this nightly check for backwards compat + if (!isNewVersionNightly && newSemVer.getOrElse(index) { i } > i) { + return true + } else if (newSemVer.getOrElse(index) { i } < i) { + return false + } } } // For cases of extreme patch versions (new: 1.2.3.1 vs old: 1.2.3, return true) @@ -113,13 +117,11 @@ class AppUpdateChecker { val oldPreVersion = oldPreReleaseVer.getOrNull(1)?.replace("[^\\d.-]".toRegex(), "")?.toIntOrNull() when { - oldPreVersion == null || newPreVersion == null -> false // FIXME: Check if the app is Nightly or Beta - /* // For prod, don't bother with betas (current: 1.2.3 vs new: 1.2.3-b1) oldPreVersion == null -> false // For betas, always use prod builds (current: 1.2.3-b1 vs new: 1.2.3) - newPreVersion == null -> true - */ + // For nightly, don't use prod builds + newPreVersion == null -> !BuildConfig.NIGHTLY // For nightly, higher beta ver is newer (current: 1.2.3-b1 vs new: 1.2.3-b2 or r2) else -> (oldPreVersion < newPreVersion) }