mirror of
				https://github.com/mihonapp/mihon.git
				synced 2025-10-30 22:07:57 +01:00 
			
		
		
		
	Check for app updates by comparing semver (#7100)
Instead of just checking whether the current app version *matches* with
latest app version in GitHub Releases, compare the semver from the tag
names to check whether the latter is greater and the app needs an update
Reference: semver spec #11 https://semver.org/#spec-item-11
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
Co-authored-by: Andreas <6576096+ghostbear@users.noreply.github.com>
(cherry picked from commit e7ed130f2a)
			
			
This commit is contained in:
		| @@ -56,6 +56,7 @@ class AppUpdateChecker { | ||||
|     private fun isNewVersion(versionTag: String): Boolean { | ||||
|         // Removes prefixes like "r" or "v" | ||||
|         val newVersion = versionTag.replace("[^\\d.]".toRegex(), "") | ||||
|         val oldVersion = BuildConfig.VERSION_NAME.replace("[^\\d.]".toRegex(), "") | ||||
|  | ||||
|         return if (BuildConfig.PREVIEW) { | ||||
|             // Preview builds: based on releases in "tachiyomiorg/tachiyomi-preview" repo | ||||
| @@ -64,7 +65,15 @@ class AppUpdateChecker { | ||||
|         } else { | ||||
|             // Release builds: based on releases in "tachiyomiorg/tachiyomi" repo | ||||
|             // tagged as something like "v0.1.2" | ||||
|             newVersion != BuildConfig.VERSION_NAME | ||||
|             val newSemVer = newVersion.split(".").map { it.toInt() } | ||||
|             val oldSemVer = oldVersion.split(".").map { it.toInt() } | ||||
|  | ||||
|             oldSemVer.mapIndexed { index, i -> | ||||
|                 if (newSemVer[index] > i) { | ||||
|                     return true | ||||
|                 } | ||||
|             } | ||||
|             false | ||||
|         } | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user