# GPS2Audio v2.5.8 — Wiedergabe-zuerst-UI · Handoff Build vom 2026-05-24, basiert auf der Baseline `GPS2Audio_v2_5_7_home_menu_cover_playlist_source.zip` (versionName 2.5.7 / versionCode 61). Ziel war ein ruhigerer, audiobibliothek-artiger Eindruck: weniger technischer Header, weniger Bearbeitungs-Clutter in der Touransicht, dafür ein kurzes, dezentes Intro mit GPS2Audio-Logo. ## Version - `versionName = "2.5.8"` - `versionCode = 62` - `applicationId = de.waypointaudio` (unverändert — Update-fähig zur 2.5.7). ## Splash / Intro - Neuer stabiler Weg über `androidx.core:core-splashscreen:1.0.1` (Backport). Damit bekommen sowohl API 31+ als auch API 26–30 dieselbe Optik. - `Theme.WaypointAudioGuide.Splash` (neu, parent `Theme.SplashScreen`) ist jetzt das Launch-Theme im Manifest; das eigentliche App-Theme wird per `postSplashScreenTheme` direkt nach dem Splash gesetzt — keine sichtbare Theme-Übergangsblitzer. - Splash-Hintergrund: GPS2Audio-Navy `#0D1B2A` (`@color/splash_background`). - Splash-Logo: `drawable/ic_splash_logo.xml` — Map-Pin mit drei Wellen-Bögen (weiß / weiß / Teal `#80CBC4`), identische Marke wie der Launcher-Icon, aber zentriert und mit etwas mehr Whitespace. - Anzeigedauer ca. 700 ms (`installSplashScreen()` + `setKeepOnScreenCondition` in `MainActivity.onCreate`). Kein Loading-Spinner, keine zweite Welcome-Seite. - Nur beim normalen Kaltstart sichtbar — `installSplashScreen` ist genau für diesen Lebenszyklus vorgesehen. ## Hauptseite (HomeScreen) - Der große `"GPS2Audio"`/`"Audio-Bibliothek"`-Doppeltitel in der TopAppBar ist raus. Ersetzt durch eine kompakte TopBar mit Brand-Icon (`ic_launcher`) links und schlanker Überschrift „Audio-Bibliothek". - Die `HeroQuickActions`-Kachel mit „Deine Audio-Touren · X Touren · Y Wegpunkte" wurde entfernt (wirkte als zweiter technischer Header). - Der Explorer-Schnellzugriff bleibt erhalten: TopAppBar-Action (Map-Icon) und Overflow-Menü-Eintrag „Explorer / Karte". - Erhalten bleiben außerdem: „Startseite anpassen" (Atmo-/PTT-/Mini-Now- Playing-Toggles), „Klassische Ansicht", „Track-Entwürfe", „Über GPS2Audio", Atmo-Modul-Card, PTT-Modul-Card, Tour-Cover-Grid, Mini-Now-Playing-Bar. ## Touransicht (WaypointListScreen) ### Wiedergabe-Modus (Default nach App-Start) - Standardmäßig im Wiedergabemodus — kein Persist, sicherer Default nach Appstart wie gewünscht. - TopAppBar bekommt ein neues `Edit`-Icon zwischen Map-Icon und Overflow. Dieses togglet den Bearbeitungsmodus (im Edit-Modus zeigt es ein `Done`-Icon in `tertiary`). - Im Overflow-Menü gibt es zusätzlich den Eintrag „Bearbeiten…" / „Bearbeitungs- modus beenden" (redundant für Discoverability). - In der Liste sind versteckt: - DragHandle (`Icons.Filled.DragIndicator`) → ersetzt durch eine ruhige, zweistellige Tracknummer. - Stift-Icon (`onEdit`). - Lösch-Icon (`onDelete`). - Vollkoordinaten / technische Datei-ID (`%.6f, %.6f · …m`). - `soundName` (Dateiname) und die ausführliche Abspielregel-Zusammenfassung. - Sichtbar bleiben: - Tracknummer (`01`, `02`, …) als ruhiger Marker. - Aktiv-Toggle (kleines Häkchen/Kreis-IconSurface) — Aktivstatus bleibt dezent erkennbar. - Tracktitel. - Kurzinfo-Zeile: `Audio · m Radius · inaktiv?` (kompakt, nur die audio-relevanten Informationen). - Play-Icon rechts (`PlayCircle`/`Pause`) für Einzelwiedergabe — und der bestehende „kein Audio"-Hinweis bei Wegpunkten ohne Datei. - FABs („+ Wegpunkt", „GPS-Wegpunkt") werden im Wiedergabemodus ausgeblendet — sie kommen im Bearbeitungsmodus zurück. Wegpunkte lassen sich weiterhin auch im Explorer anlegen. - Der Listenkopf heißt im Wiedergabemodus „Wiedergabe-Playlist" mit einem kleinen Primary-Container-Chip „▶ Wiedergabe"; im Bearbeitungsmodus weiterhin „Wegpunkt-Tracks". ### Bearbeitungsmodus - Edit-Toggle in TopAppBar oder Overflow-Eintrag aktiviert ihn. - Alle bisherigen v2.5.7-Funktionen sind 1:1 unverändert sichtbar: - Drag-and-Drop-Sortierung inkl. erstem Waypoint (Long-Press auf der Card UND Drag am DragIndicator). - „Touren ordnen…" (Pfeile-Dialog) bleibt erreichbar. - Stift-Icon → öffnet `WaypointEditDialog` (Audiofile zuweisen, Schedule, Modus, Radius, Koordinaten — alles unverändert). - Lösch-Icon → bestehende Lösch-Bestätigung. - Vollkoordinaten, Audio-Dateiname, Abspielregel-Zusammenfassung in der Card. - Plus-FAB und GPS-FAB für „neuen Wegpunkt" / „aus aktuellem Standort". ### Manuelle Wiedergabe-Playlist - Unverändert aus v2.5.7. `ManualPlayerBar` bleibt sichtbar; `viewModel. manualPlaylist()` liefert weiterhin alle aktivierten Tracks der aktuellen Tour in Reihenfolge. „Play" spielt die Playlist, „Einzel-Play" auf einer Card spielt nur diesen Track (keine Auto-Weiter-Logik). ## Erhaltene Funktionen (No-Regression-Grenzen) Funktional gleich oder besser als v2.5.7 — alle weiterhin erreichbar: Datensicherung-Sheet (JSON/GPX/Backup ZIP), Coverbild-Auswahl, TourCover-Persistenz, Backup-Import inkl. Cover-Mitnahme, Explorer/MapLibre mit Wegpunkt-Editierung, Track-Entwürfe (über Explorer-Drafts-Sheet und Home-Overflow „Track-Entwürfe"), manuelle Route zeichnen, Routing-Profile (Auto/Fahrrad/Fußgänger), POI/Overpass-Suche, GPS-Dienst, PTT inkl. Recorder + Aufnahmen-Bibliothek + Waypoint-Zuweisung, Atmo (Stream-Playlist + lokale Playlist + Verhalten beim Wegpunkt), Recorder, About-Dialog inkl. Apache-License-Hinweis und PayPal/Matrix, Drag-and-Drop für Wegpunkte (im Bearbeitungsmodus), TourReorder-Dialog. Track-Editor bleibt — wie in v2.5.7 — nicht direkt auf Touransicht/Startseite, sondern ausschließlich über den Explorer erreichbar. ## UI-Stil - Dunkle, weiche Cards und Teal/Türkis-Akzente bleiben — keine grellen alten Steuerbord-Elemente. - Splash-Hintergrund passt zur Dark-Theme-Background (`#0D1B2A`). - Mode-Chip „▶ Wiedergabe" nutzt `primaryContainer`; Edit-Toggle färbt sich im aktiven Zustand in `tertiary` (gleiche Farbsprache wie LIVE-Badges). ## Betroffene Dateien - `app/build.gradle.kts` — versionName/Code, Splash-Dependency. - `gradle/libs.versions.toml` — `androidx-core-splashscreen` ergänzt. - `app/src/main/AndroidManifest.xml` — Application-Theme zeigt jetzt auf `Theme.WaypointAudioGuide.Splash`. - `app/src/main/res/values/themes.xml` — Splash-Style + erhaltenes Basis-Theme. - `app/src/main/res/values/colors.xml` — neu, `splash_background`. - `app/src/main/res/drawable/ic_splash_logo.xml` — neu, Vektor-Logo für Splash. - `app/src/main/kotlin/de/waypointaudio/MainActivity.kt` — `installSplashScreen` vor `super.onCreate`, Keep-on-screen-Dauer 700 ms. - `app/src/main/kotlin/de/waypointaudio/ui/HomeScreen.kt` — kompakte TopAppBar mit Brand-Icon, Hero-Kachel entfernt. - `app/src/main/kotlin/de/waypointaudio/ui/WaypointListScreen.kt` — `editMode`-Toggle, FAB-Sichtbarkeit, „Wiedergabe-Playlist"-Headline, `WaypointCard(editMode, positionNumber=…)`-Parameter, Verstecken/Anzeigen von DragHandle / Stift / Löschen / Koordinaten / Datei-ID / Regelzeile. Keine API/Datenmodell-Änderungen. `WaypointStore`, `WaypointRepository`, `TourMusicStore`, `BackupExportManager`, `BackupImportManager` und alle Services unverändert — Datenformate sind binär-kompatibel mit 2.5.7-Backups. ## Build / Signatur - Build-Host: Linux 6.1, JDK 21.0.11, Gradle 8.9, Android SDK API 35, Build-Tools 35.0.0. - Signing config liest `keystore.properties` (Project-Root, NICHT im Source-Zip) bzw. die `GPS2AUDIO_RELEASE_*`-ENV-Variablen. - Signiert mit `/home/user/workspace/GPS2Audio_release_keystore.jks` (Alias `gps2audio_release`). - Signaturprüfung mit `apksigner verify --print-certs`: - DN: `CN=GPS2Audio, OU=NesoHub, O=GPS2Audio, L=Germany, C=DE` - SHA-256: `7b0ea4d5528605173d299d7b268e7ab8768dd504ec15b66a52d47b4257b3bb46` → identisch zu allen vorigen Releases, also Update-fähig für bestehende Installationen. - Build erfolgreich (`BUILD SUCCESSFUL`, 43 Tasks). Nur Deprecation-Warnungen (AutoMirrored Icons, MapLibre-Marker-Annotation-API), keine Errors. ## Artefakte - `/home/user/workspace/GPS2Audio_v2_5_8_playback_first_ui_signed.apk` (~57 MB, signiert, Release-Build). - `/home/user/workspace/GPS2Audio_v2_5_8_playback_first_ui_source.zip` (~354 KB, Quellbaum ohne Keystore/Credentials, ohne `build/`, ohne `.gradle/`, ohne `.kotlin/`). - Dieses Handoff-Dokument. ## Smoke-Check (statisch / Build-Ebene) - Manifest-Theme zeigt auf Splash-Theme, Splash-Theme leitet per `postSplashScreenTheme` auf das App-Theme → kein doppelter Theme-Sprung. - `installSplashScreen` wird vor `super.onCreate` aufgerufen (Pflicht laut AndroidX-Doku). - `setKeepOnScreenCondition` rechnet absolut über `SystemClock.elapsedRealtime` → kein Timer-Drift, sicher gegen Activity-Recreation. - `editMode` initial `false` → Wiedergabe-Default nach Appstart erfüllt. - WaypointCard rendert mit `editMode = false`: - DragHandle-`Box(pointerInput)` nicht instanziiert → keine versehentliche Drag-Konkurrenz zum vertikalen Scroll. - `reorderEnabled` wird mit `editMode` UND-verknüpft → Drag&Drop bleibt im Wiedergabemodus garantiert aus. - WaypointCard mit `editMode = true` rendert die alten v2.5.7-Aktionen 1:1 (Drag-Handle inkl. `detectDragGestures`, Stift-IconButton, Lösch- IconButton, Vollkoordinaten, soundName, Abspielregel-Zusammenfassung). - HomeScreen-Aktionen (Explorer, Klassische Ansicht, Track-Entwürfe, Startseite anpassen, Über GPS2Audio) referenzieren dieselben Callbacks wie zuvor; nur die Hero-Zeile wurde entfernt. - Keine Build- oder Lint-Fehler. Lint ist wie in 2.5.7 mit `abortOnError = false` konfiguriert; keine neuen, blockierenden Issues. - Signaturprüfung: bestanden, identischer Fingerprint wie 2.5.7 → bestehende Installation kann ohne Deinstallation aktualisiert werden. ## Manuelle Smoke-Checks (für QA, nicht im Build automatisierbar) 1. App kalt starten → kurzes Logo-Intro (~0,7 s) auf Navy-Hintergrund, danach Audio-Bibliothek mit Brand-Icon-Topbar. 2. Tour öffnen → Wiedergabemodus aktiv: keine Drag-Handles, keine Stift-/Lösch-Icons, keine Koordinaten/Dateinamen, FABs ausgeblendet, Listenkopf „Wiedergabe-Playlist" mit Chip. 3. „Play" auf einer Card → Einzel-Wiedergabe wie in v2.5.7. 4. Manuelle Player-Bar → spielt aktivierte Tracks der Tour in Reihenfolge. 5. Edit-Icon in der TopAppBar tippen → alle Bearbeitungselemente erscheinen, FABs kommen zurück, „Touren ordnen", „Datensicherung", „Begleitmusik", „Ansicht anpassen", „Wake-Lock", „About" bleiben im Overflow erreichbar. 6. Drag-and-Drop im Bearbeitungsmodus → funktioniert inkl. erstem Waypoint; `viewModel.moveWaypoint(from, to)` wird wie zuvor genau bei `onDragEnd` aufgerufen. 7. Tour-Cover, Backup, Atmo-Stream/Playlist, PTT, Explorer/MapLibre, Routing-Profile, manuelle Route, Track-Drafts: unverändert.