diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-07-15 18:48:27 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-07-16 02:54:17 +0000 |
| commit | c8dd9a12ebbe27f3ac3b967b43c1f6ed0449e8d9 (patch) | |
| tree | a515290dfc8601a0ac6bb7e89b30a997cc579308 | |
| parent | 53c01f799e5022cc173ac1d57e1c503c62a5274b (diff) | |
feat(widget): show project color as a small accent on task rows
| -rw-r--r-- | android/app/src/main/java/org/terst/doot/widget/ui/WidgetRows.kt | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/android/app/src/main/java/org/terst/doot/widget/ui/WidgetRows.kt b/android/app/src/main/java/org/terst/doot/widget/ui/WidgetRows.kt index 084b277..1c7e454 100644 --- a/android/app/src/main/java/org/terst/doot/widget/ui/WidgetRows.kt +++ b/android/app/src/main/java/org/terst/doot/widget/ui/WidgetRows.kt @@ -31,6 +31,11 @@ fun sourceColor(source: String): Color = when (source) { else -> Color(0xFF888888) } +/** Parses a "#RRGGBB" string into a Glance-compatible Color, defaulting to gray on failure. */ +internal fun parseGlanceHexColor(hex: String): Color = runCatching { + Color(android.graphics.Color.parseColor(hex)) +}.getOrDefault(Color.Gray) + /** Opens the event's source URL (Google Calendar, Plan to Eat, etc.) directly. */ fun calendarViewIntent(url: String): Intent = Intent(Intent.ACTION_VIEW, Uri.parse(url.ifEmpty { "https://calendar.google.com" })).apply { @@ -276,6 +281,15 @@ fun TaskRow(task: WidgetItem, textSize: WidgetTextSize) { ) {} } + if (task.projectColor != null) { + Box( + modifier = GlanceModifier + .size(6.dp) + .background(parseGlanceHexColor(task.projectColor)) + ) {} + Spacer(modifier = GlanceModifier.width(4.dp)) + } + Box( modifier = GlanceModifier .defaultWeight() |
