-
released this
2026-05-15 14:33:09 +02:00 | 7 commits to main since this releaseGPS2Audio v2.1.3 – Hotfix: sichtbarer Löschen-Button in PTT-Aufnahme-Bibliothek
- versionCode: 40
- versionName: 2.1.3
- Basis:
GPS2Audio_v2_1_2_ptt_recorder_delete_autosave_source.zip(v2.1.2) - Signiertes APK:
GPS2Audio_v2_1_3_ptt_recordings_delete_button_signed.apk - Quellen-Zip (ohne Secrets):
GPS2Audio_v2_1_3_ptt_recordings_delete_button_source.zip
Ursache des Fehlers (v2.1.2)
Im PTT-Aufnahmen-Dialog (
PttRecordingsLibraryDialog) gab es in v2.1.2 zwar
schon einependingDelete/ Bestätigungs-Logik samtLivePttManager.deleteRecording(...),
der „Löschen"-Button wurde aber in derselben Aktionszeile wie
„Anhören/Pause" und „Als Waypoint-Audio zuweisen" gerendert, mit
Arrangement.spacedBy(6.dp)+Spacer(Modifier.weight(1f)). Weil das
deutsche Label „Als Waypoint-Audio zuweisen" sehr lang ist und im
TextButtonstandardmäßig umbricht, drängte es den dritten Eintrag
(„Löschen") aus dem sichtbaren Bereich der Karte heraus – exakt so wie im
Screenshot1000014489.jpgzu sehen. Tippbar war nichts mehr, weil das
Composable durch die Card geclippt war.Konkrete UI-Änderung
Die Aktionen pro Aufnahme sind jetzt in zwei Reihen angeordnet:
- Reihe 1:
▶ Anhören(bzw.⏸ Pause) +📋 Als Waypoint-Audio zuweisen - Reihe 2: ein eigener, klar erkennbarer
OutlinedButton„🗑 Löschen",
rechtsbündig (Arrangement.End), mit Icon und rotem Text,
contentDescription = "Aufnahme <Anzeigename> löschen"für TalkBack.
Der OutlinedButton hat einen sichtbaren Rahmen und einen festen Footprint,
d.h. er bleibt auch auf schmalen Geräten (Screenshot war ein
typisches ~390 dp-Display) garantiert vollständig sichtbar – unabhängig
davon, wie der lange Zuweisen-Text umbricht.Verhalten:
- Klick → Wenn diese Aufnahme gerade vorgehört wird, wird der
lokaleRecordingPreviewPlayerzuerst freigegeben (release(),
playingId = null). - Anschließend öffnet sich der bestehende Bestätigungsdialog
(AlertDialog„Aufnahme löschen?" mit deutschen Strings
R.string.ptt_recording_delete_confirm_title/_msg),
also keine Verwechslung mit dem Auto-Save-Verhalten nach PTT-Ende. - Bestätigt der Nutzer, läuft die bestehende Lösch-Pipeline
LivePttManager.deleteRecording(...): Datei (File.delete()) +
Metadaten (recordingStore.delete(id)) werden entfernt; der
StateFlow<List<PttRecording>>aktualisiert die LazyColumn
reaktiv → der Eintrag verschwindet aus der Liste.
Geänderte Dateien
app/build.gradle.kts–versionCode = 40,versionName = "2.1.3"app/src/main/kotlin/de/waypointaudio/ui/PttRecordingDialogs.kt- Imports:
androidx.compose.ui.semantics.contentDescription,
androidx.compose.ui.semantics.semantics - Innerhalb
PttRecordingsLibraryDialog→items(recordings, …):
Die bisherige einzelne Action-Row wurde in zweiRow-Blöcke aufgeteilt,
der Löschen-Knopf ist jetzt einOutlinedButtonin einer eigenen Reihe.
- Imports:
Alle anderen Composables (
PostRecordingDialog,WaypointChooserDialog)
und die Service-/ViewModel-/Repository-Schicht (LivePttManager,
PttRecorder,PttRecording,recordingStore) bleiben unverändert.Build- und Signaturstatus
-
gradle :app:assembleRelease→ BUILD SUCCESSFUL (43 Tasks). -
Keystore:
/home/user/workspace/GPS2Audio_release_keystore.jks,
Aliasgps2audio_release. Passwörter wurden lokal über eine
temporärekeystore.propertiesaus
GPS2Audio_release_keystore_credentials.txtan Gradle übergeben.
Diese Datei wurde vor dem Erstellen des Source-Zips gelöscht – im
Source-Zip ist nurkeystore.properties.exampleenthalten. -
apksigner verify --print-certsbestätigt:- DN:
CN=GPS2Audio, OU=NesoHub, O=GPS2Audio, L=Germany, C=DE - SHA-256:
7B:0E:A4:D5:52:86:05:17:3D:29:9D:7B:26:8E:7A:B8:76:8D:D5:04:EC:15:B6:6A:52:D4:7B:42:57:B3:BB:46 - SHA-1:
EB:92:2A:83:39:09:ED:6B:2D:CB:62:52:F0:CF:42:5F:26:DF:25:AD
→ identisch mit dem dokumentierten Release-Fingerprint, d.h. Update
über die bestehende v2.1.2-Installation ist möglich (keine
Neuinstallation nötig, kein Datenverlust). - DN:
-
aapt2 dump badgingbestätigt:
package='de.waypointaudio' versionCode='40' versionName='2.1.3',
minSdkVersion='26',targetSdkVersion='35'.
Tests
- Build/Compile: vollständiger Release-Build inkl. R8/MinSDK-Validierung,
ohne Errors (nur die schon in v2.1.2 vorhandenenIcons.Filled.*-/
launchWhenStarted-Deprecation-Warnings). - Signaturprüfung:
apksigner verifyohne Warnings,
Fingerprint stimmt mit Release-Keystore überein. - Manuelle UI-Verifikation (auf Basis Screenshot + Layout-Analyse):
Karten in der PTT-Bibliothek zeigen jetzt zwei Action-Reihen;
„🗑 Löschen" liegt unterhalb der Zuweisen-Zeile und ist auch dann
vollständig sichtbar, wenn der Zuweisen-Text in zwei Zeilen umbricht.
Regression-Checkliste (alle aus v2.1.2 erhalten)
- PTT auto-save: Nach Loslassen der PTT-Taste wird die Aufnahme
ohne weitere Abfrage gespeichert (PostRecordingDialog-Pfad
unverändert). - Anhören / Pause pro Aufnahme via lokalem
RecordingPreviewPlayer. - „Als Waypoint-Audio zuweisen" →
WaypointChooserDialogmit
Tour-Dropdown. - Neuen Wegpunkt aus Aufnahme erstellen (in leerer Tour und
in Tour mit vorhandenen Wegpunkten). - Atmo-Foreground-Service, Stream-Playlist und
Hintergrund-Wiedergabe. - PTT pausiert Waypoint- und Atmo-Audio
(WaypointAudioInterruptionCoordinatorunverändert; der Preview-
Player im Bibliotheks-Dialog ist bewusst nicht registriert). - Drag-and-Drop-Reihenfolge in Listen.
- Karteneditor (Linien-/Marker-Editor + OSM-Layout).
- Backup Export / Import.
- About-Dialog mit PayPal-Link / Versionsanzeige.
- Audio-Bibliothek-Dialog (
BegleitmusikDialog). - OSM-Attribution sichtbar.
- ScrollableTabRow-Fix für Touren-Tabs.
- Touren ordnen / Touren-Reihenfolge.
Keystore-Hinweis (wichtig)
Das signierte APK ist mit dem Produktions-Keystore
GPS2Audio_release_keystore.jks(Aliasgps2audio_release) signiert.
Solange dieselbe.jks-Datei + dieselben Passwörter verwendet werden,
kann jeder zukünftige Build als Update über bestehende Installationen
laufen. Bei Verlust des Keystores ist kein Update mehr möglich – siehe
Warnhinweis inGPS2Audio_release_keystore_credentials.txt. Diese
Credentials-Datei sowie eine erzeugtekeystore.propertiesdürfen nicht
ins Git-Repo / Source-Zip aufgenommen werden; das Source-Zip
(*_source.zip) enthält ausschließlichkeystore.properties.example.Repo / Versionshinweis
Repo: https://gitea.nesohub.org/marcel/GPS2Audio
Tag-Empfehlung:v2.1.3(versionCode 40). Der Hotfix ist gegenüber
v2.1.2 minimal-invasiv: nur Bump inbuild.gradle.ktsund ein UI-Refactor
inPttRecordingDialogs.kt(zwei Reihen statt eine, eigener
OutlinedButtonfür Löschen).Downloads