From cf82b4b586f154ba781b40f72ef48237230810d8 Mon Sep 17 00:00:00 2001 From: Damocles Date: Wed, 22 Apr 2026 21:18:41 +0200 Subject: [PATCH] fix widget color bar: use left-border trick to match content height --- .../nova/android/widget/AgendaWidget.kt | 61 ++++++++++--------- 1 file changed, 32 insertions(+), 29 deletions(-) diff --git a/app/src/main/java/space/darkest/nova/android/widget/AgendaWidget.kt b/app/src/main/java/space/darkest/nova/android/widget/AgendaWidget.kt index d1f4721..4a04a3c 100644 --- a/app/src/main/java/space/darkest/nova/android/widget/AgendaWidget.kt +++ b/app/src/main/java/space/darkest/nova/android/widget/AgendaWidget.kt @@ -217,37 +217,40 @@ class AgendaWidget : GlanceAppWidget() { Spacer(GlanceModifier.width(8.dp)) - // color indicator - val barHeight = if (event.location != null || !event.allDay) 32.dp else 18.dp + // color bar as left border - stretches with content automatically Box( modifier = GlanceModifier - .size(width = 3.dp, height = barHeight) - .cornerRadius(2.dp) - .background(GlanceTheme.colors.primary), - ) {} - - Spacer(GlanceModifier.width(8.dp)) - - // event details - Column(modifier = GlanceModifier.defaultWeight()) { - Text( - text = event.title, - style = TextStyle( - color = GlanceTheme.colors.onSurface, - fontSize = 13.sp, - fontWeight = FontWeight.Medium, - ), - maxLines = 2, - ) - if (event.location != null) { - Text( - text = event.location, - style = TextStyle( - color = GlanceTheme.colors.onSurfaceVariant, - fontSize = 11.sp, - ), - maxLines = 1, - ) + .defaultWeight() + .background(GlanceTheme.colors.primary) + .cornerRadius(4.dp), + ) { + Column( + modifier = GlanceModifier + .fillMaxWidth() + .padding(start = 3.dp) + .background(GlanceTheme.colors.widgetBackground), + ) { + Column(modifier = GlanceModifier.padding(start = 8.dp, top = 2.dp, bottom = 2.dp)) { + Text( + text = event.title, + style = TextStyle( + color = GlanceTheme.colors.onSurface, + fontSize = 13.sp, + fontWeight = FontWeight.Medium, + ), + maxLines = 2, + ) + if (event.location != null) { + Text( + text = event.location, + style = TextStyle( + color = GlanceTheme.colors.onSurfaceVariant, + fontSize = 11.sp, + ), + maxLines = 1, + ) + } + } } } }