From 2258e5465f954a2ca8df918012473d174a106008 Mon Sep 17 00:00:00 2001 From: marc Date: Tue, 22 Sep 2026 20:47:37 +0200 Subject: [PATCH] fix(android): Songzeilen halten rechts Platz fuer den Rollbalken Co-Authored-By: Claude Opus 5 --- CHANGELOG.md | 6 +++++- android/app/build.gradle.kts | 4 ++-- .../main/kotlin/com/novasonic/app/ui/component/SongRow.kt | 5 ++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 30dc83d..f528ece 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -80,7 +80,7 @@ Die Android-App zählt eigenständig weiter (mehrere APKs pro Release). Welche d ## [3.1] — 2026-09-22 -**Android:** 1.15 (versionCode 18) → 1.20 (versionCode 23). 1.16 brachte den Rollbalken, 1.17 bis 1.20 machten ihn bedienbar, 1.19 bringt das Bearbeiten der Warteschlange. +**Android:** 1.15 (versionCode 18) → 1.21 (versionCode 24). 1.16 brachte den Rollbalken, 1.17 bis 1.21 machten ihn bedienbar, 1.19 bringt das Bearbeiten der Warteschlange. ### Added - **Die Warteschlange lässt sich bearbeiten (Web + Android)** — bisher war sie eine reine Anzeige: @@ -150,6 +150,10 @@ Die Android-App zählt eigenständig weiter (mehrere APKs pro Release). Welche d - Gescrollt wird außerdem nicht mehr im Zeigerereignis, sondern in **einem** Effekt, der die Zielposition verfolgt. Ein `launch` pro Fingerbewegung erzeugte bei 2000 Titeln hunderte konkurrierende Scroll-Aufrufe, die sich gegenseitig überholten. + - **Nachtrag 1.21: die Songzeilen halten rechts 24 dp frei.** Dort steht der Rollbalken, und wo + sein Daumen gerade liegt, wäre ein ⋮ darunter weiterhin nicht zu treffen gewesen — der Daumen + wandert ja mit. Die Zeilen rücken deshalb überall ein, auch dort, wo es gar keinen Balken gibt, + damit sie gleich aussehen. - **Nachtrag 1.20: der Balken verschluckte das ⋮ der Songzeilen.** Compose reicht eine Berührung nur an das **oberste** getroffene Element weiter — der Greifstreifen lag über die volle Höhe am rechten Rand und nahm damit jeden Tipper auf das Kontextmenü entgegen, obwohl er ihn gar diff --git a/android/app/build.gradle.kts b/android/app/build.gradle.kts index faee461..b8190d3 100644 --- a/android/app/build.gradle.kts +++ b/android/app/build.gradle.kts @@ -14,8 +14,8 @@ android { applicationId = "com.novasonic.app" minSdk = 26 targetSdk = 35 - versionCode = 23 - versionName = "1.20" + versionCode = 24 + versionName = "1.21" // Host der eigenen NovaSonic-Web-App — Ziel der geteilten Links. Einmal in // gradle.properties setzen (novasonicHost=music.example.com); ohne Angabe bleibt der // Platzhalter stehen und der App-Link greift schlicht nicht. diff --git a/android/app/src/main/kotlin/com/novasonic/app/ui/component/SongRow.kt b/android/app/src/main/kotlin/com/novasonic/app/ui/component/SongRow.kt index 9b1288a..2b102ca 100644 --- a/android/app/src/main/kotlin/com/novasonic/app/ui/component/SongRow.kt +++ b/android/app/src/main/kotlin/com/novasonic/app/ui/component/SongRow.kt @@ -45,7 +45,10 @@ fun SongRow( .fillMaxWidth() .clickable(onClick = onPlay) .background(if (isPlaying) NsAccent.copy(alpha = 0.08f) else Color.Transparent) - .padding(start = if (isPlaying) 0.dp else 4.dp), + // Rechts 24 dp frei halten: genau dort liegt der Rollbalken, und ein ⋮ darunter + // waere nicht mehr zu treffen — Compose gibt eine Beruehrung nur an das oberste + // getroffene Element. Gilt ueberall, damit die Zeilen gleich aussehen. + .padding(start = if (isPlaying) 0.dp else 4.dp, end = 24.dp), ) { // Accent left bar when playing if (isPlaying) {