From 7ea7729f96d7a05a78ab8d015bb4ab8ab183ff18 Mon Sep 17 00:00:00 2001 From: Jens Reinemann Date: Mon, 18 May 2026 12:16:01 +0200 Subject: [PATCH] fix: version display format -> three-number (e.g. 1.7.10) without v prefix --- .../java/de/bollwerk/app/ui/settings/SettingsScreen.kt | 4 ++-- .../main/java/de/bollwerk/app/ui/update/UpdateBanner.kt | 8 ++++---- .../main/java/de/bollwerk/app/ui/update/UpdateUiState.kt | 4 ++-- .../java/de/bollwerk/app/ui/update/UpdateViewModel.kt | 4 +++- .../kotlin/de/bollwerk/server/routes/VersionRoutes.kt | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/app/src/main/java/de/bollwerk/app/ui/settings/SettingsScreen.kt b/app/src/main/java/de/bollwerk/app/ui/settings/SettingsScreen.kt index 8629bda..4674b4e 100644 --- a/app/src/main/java/de/bollwerk/app/ui/settings/SettingsScreen.kt +++ b/app/src/main/java/de/bollwerk/app/ui/settings/SettingsScreen.kt @@ -450,7 +450,7 @@ internal fun SettingsScreen( onClick = updateViewModel::startDownload ) { Text( - text = "Update v${s.versionName} verfügbar – jetzt installieren", + text = "Update ${s.versionName}.${s.versionCode} verfügbar – jetzt installieren", style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.primary ) @@ -471,7 +471,7 @@ internal fun SettingsScreen( ) } is UpdateStatus.ReadyToInstall -> Text( - text = "v${s.versionName} bereit zur Installation", + text = "${s.versionName}.${s.versionCode} bereit zur Installation", style = MaterialTheme.typography.bodySmall, color = MaterialTheme.colorScheme.primary ) diff --git a/app/src/main/java/de/bollwerk/app/ui/update/UpdateBanner.kt b/app/src/main/java/de/bollwerk/app/ui/update/UpdateBanner.kt index 3664000..2ae67eb 100644 --- a/app/src/main/java/de/bollwerk/app/ui/update/UpdateBanner.kt +++ b/app/src/main/java/de/bollwerk/app/ui/update/UpdateBanner.kt @@ -46,7 +46,7 @@ internal fun UpdateBanner( ) { when (status) { is UpdateStatus.Available -> AvailableBanner( - versionName = status.versionName, + versionName = "${status.versionName}.${status.versionCode}", onDownloadClick = onDownloadClick, onDismiss = onDismiss ) @@ -54,7 +54,7 @@ internal fun UpdateBanner( progress = status.progress ) is UpdateStatus.ReadyToInstall -> ReadyBanner( - versionName = status.versionName, + versionName = "${status.versionName}.${status.versionCode}", onDismiss = onDismiss ) is UpdateStatus.Error -> ErrorBanner( @@ -87,7 +87,7 @@ private fun AvailableBanner( ) Column(modifier = Modifier.weight(1f)) { Text( - text = "Update verfügbar: v$versionName", + text = "Update verfügbar: $versionName", style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onPrimaryContainer ) @@ -151,7 +151,7 @@ private fun ReadyBanner( tint = MaterialTheme.colorScheme.onPrimaryContainer ) Text( - text = "v$versionName wurde heruntergeladen. Installer wird gestartet…", + text = "$versionName wurde heruntergeladen. Installer wird gestartet…", style = MaterialTheme.typography.bodyMedium, color = MaterialTheme.colorScheme.onPrimaryContainer, modifier = Modifier.weight(1f) diff --git a/app/src/main/java/de/bollwerk/app/ui/update/UpdateUiState.kt b/app/src/main/java/de/bollwerk/app/ui/update/UpdateUiState.kt index 77fd9dd..4c7457b 100644 --- a/app/src/main/java/de/bollwerk/app/ui/update/UpdateUiState.kt +++ b/app/src/main/java/de/bollwerk/app/ui/update/UpdateUiState.kt @@ -7,8 +7,8 @@ internal data class UpdateUiState( internal sealed interface UpdateStatus { data object Hidden : UpdateStatus data object Checking : UpdateStatus - data class Available(val versionName: String, val apkUrl: String) : UpdateStatus + data class Available(val versionName: String, val versionCode: Int, val apkUrl: String) : UpdateStatus data class Downloading(val progress: Float) : UpdateStatus - data class ReadyToInstall(val versionName: String) : UpdateStatus + data class ReadyToInstall(val versionName: String, val versionCode: Int) : UpdateStatus data class Error(val message: String) : UpdateStatus } diff --git a/app/src/main/java/de/bollwerk/app/ui/update/UpdateViewModel.kt b/app/src/main/java/de/bollwerk/app/ui/update/UpdateViewModel.kt index e86f90c..c785cf2 100644 --- a/app/src/main/java/de/bollwerk/app/ui/update/UpdateViewModel.kt +++ b/app/src/main/java/de/bollwerk/app/ui/update/UpdateViewModel.kt @@ -42,6 +42,7 @@ internal class UpdateViewModel @Inject constructor( it.copy( status = UpdateStatus.Available( versionName = result.versionInfo.versionName, + versionCode = result.versionInfo.versionCode, apkUrl = result.versionInfo.apkUrl ) ) @@ -64,6 +65,7 @@ internal class UpdateViewModel @Inject constructor( val apkUrl = status.apkUrl val versionName = status.versionName + val versionCode = status.versionCode val targetFile = File(context.cacheDir, "update/app-latest.apk") viewModelScope.launch { @@ -78,7 +80,7 @@ internal class UpdateViewModel @Inject constructor( ).fold( onSuccess = { _uiState.update { - it.copy(status = UpdateStatus.ReadyToInstall(versionName)) + it.copy(status = UpdateStatus.ReadyToInstall(versionName, versionCode)) } installApk(targetFile) }, diff --git a/server/src/main/kotlin/de/bollwerk/server/routes/VersionRoutes.kt b/server/src/main/kotlin/de/bollwerk/server/routes/VersionRoutes.kt index 306fb9b..17bdab4 100644 --- a/server/src/main/kotlin/de/bollwerk/server/routes/VersionRoutes.kt +++ b/server/src/main/kotlin/de/bollwerk/server/routes/VersionRoutes.kt @@ -299,7 +299,7 @@ private fun buildHomepageHtml(versionName: String, versionCode: Int, apkUrl: Str

Bollwerk

Inventar • Vorsorge • Sicherheit

-

v$versionName

+

$versionName.$versionCode

⬇ APK herunterladen

QR-Code scannen oder Link antippen, um die App zu installieren.