From c24a32b0331701cccafa5bdad0f005ed7141940d Mon Sep 17 00:00:00 2001 From: Jens Reinemann Date: Mon, 18 May 2026 23:42:09 +0200 Subject: [PATCH] =?UTF-8?q?release:=20v1.7.24=20=E2=80=93=20ResourceDetail?= =?UTF-8?q?Screen=20with=20markdown=20rendering?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle.kts | 4 ++-- .../de/bollwerk/app/ui/resources/ResourceListScreen.kt | 8 ++++++++ .../bollwerk/app/ui/resources/ResourceListViewModel.kt | 9 ++++++++- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 48c33bf..bc6a498 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -15,8 +15,8 @@ android { applicationId = "de.bollwerk.app" minSdk = 26 targetSdk = 35 - versionCode = 23 - versionName = "1.7.23" + versionCode = 24 + versionName = "1.7.24" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" buildConfigField("boolean", "FEATURE_CAMERA_ENABLED", "false") diff --git a/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListScreen.kt b/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListScreen.kt index 8401d86..944ef56 100644 --- a/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListScreen.kt +++ b/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListScreen.kt @@ -109,6 +109,14 @@ internal fun ResourceListScreen( } } + // Show error message from refresh + uiState.errorMessage?.let { msg -> + LaunchedEffect(msg) { + snackbarHostState.showSnackbar(msg) + viewModel.clearError() + } + } + Scaffold( topBar = { TopAppBar( diff --git a/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListViewModel.kt b/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListViewModel.kt index a238bd8..88efae9 100644 --- a/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListViewModel.kt +++ b/app/src/main/java/de/bollwerk/app/ui/resources/ResourceListViewModel.kt @@ -36,7 +36,8 @@ internal data class ResourceListUiState( val sortMode: SortMode = SortMode.TITLE_ASC, val isLoading: Boolean = false, val allTags: List = emptyList(), - val downloadStates: Map = emptyMap() + val downloadStates: Map = emptyMap(), + val errorMessage: String? = null ) @HiltViewModel @@ -62,6 +63,8 @@ internal class ResourceListViewModel @Inject constructor( _uiState.update { it.copy(isLoading = true) } try { resourceRepository.refreshFromServer() + } catch (_: Exception) { + _uiState.update { it.copy(errorMessage = "Aktualisierung fehlgeschlagen") } } finally { _uiState.update { it.copy(isLoading = false) } } @@ -117,4 +120,8 @@ internal class ResourceListViewModel @Inject constructor( state.copy(downloadStates = state.downloadStates + (guid to DownloadState.Idle)) } } + + fun clearError() { + _uiState.update { it.copy(errorMessage = null) } + } }