mirror of
https://github.com/libre-tube/LibreTube.git
synced 2025-04-28 07:50:31 +05:30
37 lines
1.1 KiB
Kotlin
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)
|
|
}
|
|
}
|