Fix invalidating old updates
This commit is contained in:
@@ -46,26 +46,25 @@ object UpdateChecker {
|
|||||||
require(matcher.find()) { "Unrecognized version $this" }
|
require(matcher.find()) { "Unrecognized version $this" }
|
||||||
SemVer(matcher.group(1)!!.toInt(), matcher.group(2)!!.toInt(), matcher.group(3)!!.toInt())
|
SemVer(matcher.group(1)!!.toInt(), matcher.group(2)!!.toInt(), matcher.group(3)!!.toInt())
|
||||||
}
|
}
|
||||||
private val myVer by lazy { BuildConfig.VERSION_NAME.toSemVer() }
|
private val myVer = BuildConfig.VERSION_NAME.toSemVer()
|
||||||
|
|
||||||
private fun findUpdate(response: JSONArray): GitHubUpdate? {
|
private fun findUpdate(response: JSONArray): GitHubUpdate? {
|
||||||
for (i in 0 until response.length()) {
|
for (i in 0 until response.length()) {
|
||||||
val obj = response.getJSONObject(i)
|
val obj = response.getJSONObject(i)
|
||||||
val name = obj.getString("name")
|
val name = obj.getString("name")
|
||||||
val isNew = try {
|
try {
|
||||||
name.toSemVer() > myVer
|
if (name.toSemVer() <= myVer) continue
|
||||||
} catch (e: IllegalArgumentException) {
|
} catch (e: IllegalArgumentException) {
|
||||||
Timber.w(e)
|
Timber.w(e)
|
||||||
false
|
continue
|
||||||
}
|
}
|
||||||
if (isNew) return GitHubUpdate(name, Instant.parse(obj.getString("published_at")).toEpochMilli())
|
return GitHubUpdate(name, Instant.parse(obj.getString("published_at")).toEpochMilli())
|
||||||
}
|
}
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
fun check() = flow<AppUpdate?> {
|
fun check() = flow<AppUpdate?> {
|
||||||
val myVersion = "v${BuildConfig.VERSION_NAME}"
|
|
||||||
emit(app.pref.getString(KEY_VERSION, null)?.let {
|
emit(app.pref.getString(KEY_VERSION, null)?.let {
|
||||||
if (myVersion == it) null else GitHubUpdate(it, app.pref.getLong(KEY_PUBLISHED, -1))
|
if (myVer >= it.toSemVer()) null else GitHubUpdate(it, app.pref.getLong(KEY_PUBLISHED, -1))
|
||||||
})
|
})
|
||||||
while (true) {
|
while (true) {
|
||||||
val now = System.currentTimeMillis()
|
val now = System.currentTimeMillis()
|
||||||
|
|||||||
Reference in New Issue
Block a user