From 86e7aa7d1ffb108d206d2a547c8aa5daf06297a8 Mon Sep 17 00:00:00 2001 From: Ahmad Ansori Palembani Date: Tue, 21 May 2024 12:34:41 +0700 Subject: [PATCH] fix: Version checker --- .../kanade/tachiyomi/data/updater/AppUpdateChecker.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) 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 21f8398ef5..8633dafdbe 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 @@ -103,10 +103,12 @@ class AppUpdateChecker { // For cases of extreme patch versions (new: 1.2.3.1 vs old: 1.2.3, return true) return if (newSemVer.size > oldSemVer.size) { true - } else if (newSemVer.size < oldSemVer.size) { + } else if (newSemVer.size < oldSemVer.size && newSemVer.size != 1) { // also check yokai format false } else { // If the version numbers match, check the beta versions + val newNightlyVersion = // Yokai formatting (e.g. r123) + newPreReleaseVer.getOrNull(0)?.replace("[^\\d.-]".toRegex(), "")?.toIntOrNull() val newPreVersion = newPreReleaseVer.getOrNull(1)?.replace("[^\\d.-]".toRegex(), "")?.toIntOrNull() val oldPreVersion = @@ -115,9 +117,12 @@ class AppUpdateChecker { // 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 + // Also check for new nightly formatting (r123) + newPreVersion == null && newNightlyVersion == null -> true // For betas, higher beta ver is newer (current: 1.2.3-b1 vs new: 1.2.3-b2) - else -> (oldPreVersion < newPreVersion) + newNightlyVersion == null -> (oldPreVersion < newPreVersion) + // For (yokai) betas, higher beta ver is newer (current: 1.2.3-b1 vs new: r2) + else -> (oldPreVersion < newNightlyVersion) } } }