2022-07-24 12:15:51 +02:00

37 lines
1.1 KiB
Kotlin

package com.github.libretube.update
import com.fasterxml.jackson.databind.ObjectMapper
import com.github.libretube.GITHUB_API_URL
import java.net.URL
object UpdateChecker {
fun getLatestReleaseInfo(): UpdateInfo? {
var versionInfo: UpdateInfo? = null
// run http request as thread to make it async
val thread = Thread {
// otherwise crashes without internet
versionInfo = getUpdateInfo()
try {
versionInfo = getUpdateInfo()
} catch (e: Exception) {
}
}
thread.start()
// wait for the thread to finish
thread.join()
// return the information about the latest version
return versionInfo
}
private fun getUpdateInfo(): UpdateInfo? {
// get the github API response
val latestVersionApiUrl = URL(GITHUB_API_URL)
val json = latestVersionApiUrl.readText()
// Parse and return the json data
val mapper = ObjectMapper()
return mapper.readValue(json, UpdateInfo::class.java)
}
}