From 249733a5a6a88ba17cafcc74caf1afa77c0c4702 Mon Sep 17 00:00:00 2001 From: Infi Date: Sun, 12 Oct 2025 01:22:42 +0200 Subject: [PATCH] fix: crash if changelog cannot be reached Signed-off-by: Infi --- .../stoat/screens/chat/ChatRouterScreen.kt | 16 ++++++++++------ .../stoat/screens/settings/ChangelogsScreen.kt | 18 +++++++++++++----- 2 files changed, 23 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/chat/stoat/screens/chat/ChatRouterScreen.kt b/app/src/main/java/chat/stoat/screens/chat/ChatRouterScreen.kt index 340e263f..08483e56 100644 --- a/app/src/main/java/chat/stoat/screens/chat/ChatRouterScreen.kt +++ b/app/src/main/java/chat/stoat/screens/chat/ChatRouterScreen.kt @@ -166,12 +166,16 @@ class ChatRouterViewModel @Inject constructor( val current = kvStorage.get("currentDestination") setSaveDestination(ChatRouterDestination.fromString(current ?: "")) - latestChangelogRead = changelogs.hasSeenCurrent() - latestChangelog = changelogs.getLatestChangelogCode() - latestChangelogBody = - changelogs.fetchChangelogByVersionCode(latestChangelog.toLong()).rendered - if (!latestChangelogRead) { - changelogs.markAsSeen() + try { + latestChangelogRead = changelogs.hasSeenCurrent() + latestChangelog = changelogs.getLatestChangelogCode() + latestChangelogBody = + changelogs.fetchChangelogByVersionCode(latestChangelog.toLong()).rendered + if (!latestChangelogRead) { + changelogs.markAsSeen() + } + } catch (e: Exception) { + e.printStackTrace() } val seenEarlyAccess = kvStorage.getBoolean("spark/earlyAccess/dismissed") diff --git a/app/src/main/java/chat/stoat/screens/settings/ChangelogsScreen.kt b/app/src/main/java/chat/stoat/screens/settings/ChangelogsScreen.kt index 8a11d1e5..e3006124 100644 --- a/app/src/main/java/chat/stoat/screens/settings/ChangelogsScreen.kt +++ b/app/src/main/java/chat/stoat/screens/settings/ChangelogsScreen.kt @@ -61,16 +61,24 @@ class ChangelogsSettingsScreenViewModel @Inject constructor( suspend fun requestChangelog(version: String) { viewModelScope.launch { - renderedChangelog = Changelogs( - context, - kvStorage - ).fetchChangelogByVersionCode(version.toLong()).rendered + try { + renderedChangelog = Changelogs( + context, + kvStorage + ).fetchChangelogByVersionCode(version.toLong()).rendered + } catch (e: Exception) { + e.printStackTrace() + } } } suspend fun populate() { viewModelScope.launch { - index = Changelogs(context, kvStorage).fetchChangelogIndex() + try { + index = Changelogs(context, kvStorage).fetchChangelogIndex() + } catch (e: Exception) { + e.printStackTrace() + } } } }