Grafik: km/h radbröts i aktivitetslistan, trenddiagrammet startade på tomma framtidsdagar, "1 reps"; tools/waydroid-ui.py
All checks were successful
release / build-release (push) Successful in 4m22s
All checks were successful
release / build-release (push) Successful in 4m22s
Klickrunda i Waydroid (telefonlayout 411×891 dp) genom alla flikar, inställningar, mål, aktiviteter, passdetalj, PB-sök, detaljark, våg och om-sidan. - Aktiviteter: "km/h" bröts till "km/" + "h" när kcal-kolumnen trängde ihop raden – word joiner (U+2060) efter snedstrecket håller enheten ihop. - Statistik → Volym per dag/vecka: LazyRow scrollade till sista stapeln, dvs. månadens tomma framtidsdagar. Nu: senaste stapel med volym, annars dagens stapel, annars längst till höger. - LiftStatusSheet: "Topplista · 1 reps" → "1 rep". - tools/waydroid-ui.py: adb-hjälpare (dump/tap/shot/swipe/text/key) för klickrundor i Waydroid; README beskriver flödet + wm size/density-tricket. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NGT3xpdm51McmSrJcHnrzq
This commit is contained in:
@@ -435,7 +435,9 @@ private fun ActivityRow(a: Activity, onClick: () -> Unit, onShowMap: (() -> Unit
|
||||
a.distanceMeters?.let {
|
||||
append(" · ${(it / 1000).compact()} km")
|
||||
val kmh = (it / 1000) / (a.durationSeconds / 3600.0)
|
||||
append(" · ${kmh.compact()} km/h")
|
||||
// U+2060 (word joiner) efter snedstrecket: annars radbryts "km/h"
|
||||
// till "km/" + "h" när kcal-kolumnen tränger ihop raden.
|
||||
append(" · ${kmh.compact()} km/\u2060h")
|
||||
}
|
||||
a.rpe?.let { append(" · RPE ${it.toInt()}") }
|
||||
},
|
||||
|
||||
@@ -233,7 +233,7 @@ fun LiftStatusSheet(
|
||||
// ── Topplista ──
|
||||
if (candidates.isNotEmpty()) {
|
||||
Text(
|
||||
"Topplista · ${target.reps} reps — tryck för att välja ett annat lyft",
|
||||
"Topplista · ${target.reps} ${if (target.reps == 1) "rep" else "reps"} — tryck för att välja ett annat lyft",
|
||||
style = MaterialTheme.typography.labelLarge,
|
||||
modifier = Modifier.padding(top = 6.dp),
|
||||
)
|
||||
|
||||
@@ -650,9 +650,19 @@ private fun TrendBars(stats: StatsBundle) {
|
||||
val max = stats.trend.maxOf { it.volumeKg }.takeIf { it > 0 } ?: 1.0
|
||||
val listState = androidx.compose.foundation.lazy.rememberLazyListState()
|
||||
|
||||
// Börja längst till höger — senaste perioden är den intressanta.
|
||||
// Börja vid senaste stapeln MED volym: servern skickar hela perioden (t.ex.
|
||||
// resten av månaden), och står vi längst till höger ser man bara tomma
|
||||
// framtidsdagar. Ingen volym alls: dagens stapel (etikett "d/M") om den
|
||||
// finns, annars längst till höger.
|
||||
androidx.compose.runtime.LaunchedEffect(stats.trend.size) {
|
||||
if (stats.trend.isNotEmpty()) listState.scrollToItem(stats.trend.size - 1)
|
||||
if (stats.trend.isNotEmpty()) {
|
||||
val today = java.time.LocalDate.now().let { "${it.dayOfMonth}/${it.monthValue}" }
|
||||
val target = stats.trend.indexOfLast { it.volumeKg > 0 }
|
||||
.takeIf { it >= 0 }
|
||||
?: stats.trend.indexOfFirst { it.label == today }.takeIf { it >= 0 }
|
||||
?: (stats.trend.size - 1)
|
||||
listState.scrollToItem(target)
|
||||
}
|
||||
}
|
||||
|
||||
androidx.compose.foundation.lazy.LazyRow(
|
||||
|
||||
Reference in New Issue
Block a user