# GPS2Audio v2.5.39 — Layer Sheet Scroll Fix — Handoff ## Änderungsübersicht **Version:** 2.5.39 (VersionCode 93) **Basis:** GPS2Audio v2.5.38 (VersionCode 92) **Datum:** 2026-05-29 --- ## Bug & Lösung ### Problem Der Karten-Layer-Sheet (`MapLayerFab`) war auf kleinen Smartphone-Displays nicht scrollbar. Der Nutzer sah nur die Basis-Karte-Buttons und die Ebenen-Toggles. Der POI-Abschnitt und der Karteninfo/Attribution-Block lagen unterhalb des sichtbaren Bereichs und waren nicht erreichbar, weil die innere `Column` keinen Scroll-Modifier hatte. ### Ursache `ModalBottomSheet` → innere `Column` ohne `verticalScroll`-Modifier. Bei vollem Inhalt (Kartenstil-Chips, Overlay-Switches, Audio-Linien-Legende, POI-Chips, Attribution, Routenplaner, Routing-Info, Schließen-Button) wurde der Inhalt je nach Displayhöhe abgeschnitten. ### Fix (`MapLayerPanel.kt`) 1. Neue Imports hinzugefügt: - `androidx.compose.foundation.layout.heightIn` - `androidx.compose.foundation.rememberScrollState` - `androidx.compose.foundation.verticalScroll` 2. Die innere `Column` im `ModalBottomSheet` erhält: ```kotlin .heightIn(max = 600.dp) .verticalScroll(rememberScrollState()) ``` `heightIn(max = 600.dp)` stellt sicher, dass das Sheet auf großen Displays nicht über die halbe Bildschirmhöhe wächst, während auf kleinen Displays gescrollt werden kann. Switches und Chips bleiben vollständig klickbar. --- ## Geänderte Dateien | Datei | Änderung | |---|---| | `app/src/main/kotlin/de/waypointaudio/ui/MapLayerPanel.kt` | 3 neue Imports, `heightIn` + `verticalScroll` auf innerer Column, KDoc-Update | | `app/build.gradle.kts` | `versionCode = 92 → 93`, `versionName = "2.5.38" → "2.5.39"` | --- ## APK-Verifikation | Eigenschaft | Wert | |---|---| | Package | `de.waypointaudio` | | VersionCode | `93` | | VersionName | `2.5.39` | | Signatur | V2 (APK Signature Scheme v2) ✓ | | Signer DN | `CN=GPS2Audio, OU=NesoHub, O=GPS2Audio, L=Germany, C=DE` | | SHA-256 | `490511f350557083808cdf9e39fdb0a2d4d76d2224726b56018d1ac0dd9ed4e5` | | ABIs | `arm64-v8a`, `armeabi-v7a`, `x86`, `x86_64` ✓ (Universal) | --- ## Regressionen Alle Features von v2.5.38 und früher sind unverändert erhalten: - **v2.5.38:** Attribution-Dialog, POI-Layer-Persistenz, Kartenstil-Persistenz - **v2.5.37:** Kartenstile (Modern, Dunkel, Outdoor, 3D-Stadt, Klassisch) - **v2.5.36:** Phantom-Layer-Fix - **Früherer:** Lizenzsystem, Multi-Clip, PTT, Backup, GPX-Import, Explorer/Routing, Tour-Zähler, Hintergrundwiedergabe Nur `MapLayerPanel.kt` wurde verändert — keine anderen Composables, keine Datenmodelle, keine Permissions, keine Manifests. --- ## Artefakte | Datei | Beschreibung | |---|---| | `GPS2Audio_v2_5_39_layer_sheet_scroll_fix_universal_signed.apk` | Signiertes universales Release-APK (57 MB) | | `GPS2Audio_v2_5_39_layer_sheet_scroll_fix_source.zip` | Quellcode ohne Build-Artefakte und Keystore | | `GPS2Audio_v2_5_39_layer_sheet_scroll_fix_handoff.md` | Dieses Dokument |