commit b2587593cd9aeaf87c28f3c58af9e5c83721b5d3
parent 39525c9dca5f06d9d1be74425bb6c3bfe24bf25e
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Sun, 11 Aug 2024 00:24:43 +0200

fix(app): update checker crash on release builds

Diffstat:
Mapp/src/main/kotlin/me/rhunk/snapenhance/ui/manager/data/Updater.kt | 13++++++++++---
Mapp/src/main/kotlin/me/rhunk/snapenhance/ui/manager/pages/home/HomeRootSection.kt | 2+-
2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/data/Updater.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/data/Updater.kt @@ -2,6 +2,7 @@ package me.rhunk.snapenhance.ui.manager.data import com.google.gson.JsonParser import me.rhunk.snapenhance.common.BuildConfig +import me.rhunk.snapenhance.common.logger.AbstractLogger import okhttp3.OkHttpClient import okhttp3.Request @@ -12,7 +13,7 @@ object Updater { val releaseUrl: String ) - fun checkForLatestRelease(): LatestRelease? { + private fun fetchLatestRelease() = runCatching { val endpoint = Request.Builder().url("https://api.github.com/repos/rhunk/SnapEnhance/releases").build() val response = OkHttpClient().newCall(endpoint).execute() @@ -24,8 +25,14 @@ object Updater { val latestRelease = releases.get(0).asJsonObject val latestVersion = latestRelease.getAsJsonPrimitive("tag_name").asString - if (latestVersion.removePrefix("v") == BuildConfig.VERSION_NAME) return null + if (latestVersion.removePrefix("v") == BuildConfig.VERSION_NAME) return@runCatching null - return LatestRelease(latestVersion, endpoint.url.toString().replace("api.", "").replace("repos/", "")) + LatestRelease(latestVersion, endpoint.url.toString().replace("api.", "").replace("repos/", "")) + }.onFailure { + AbstractLogger.directError("Failed to fetch latest release", it) + }.getOrNull() + + val latestRelease by lazy { + fetchLatestRelease() } } \ No newline at end of file diff --git a/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/pages/home/HomeRootSection.kt b/app/src/main/kotlin/me/rhunk/snapenhance/ui/manager/pages/home/HomeRootSection.kt @@ -201,7 +201,7 @@ class HomeRootSection : Routes.Route() { } val latestUpdate by rememberAsyncMutableState(defaultValue = null) { - if (!BuildConfig.DEBUG) Updater.checkForLatestRelease() else null + if (!BuildConfig.DEBUG) Updater.latestRelease else null } if (latestUpdate != null) {