summaryrefslogtreecommitdiff
path: root/android/app/src/main/java/org/terst/doot
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-07-15 18:48:27 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-07-16 02:54:17 +0000
commitc8dd9a12ebbe27f3ac3b967b43c1f6ed0449e8d9 (patch)
treea515290dfc8601a0ac6bb7e89b30a997cc579308 /android/app/src/main/java/org/terst/doot
parent53c01f799e5022cc173ac1d57e1c503c62a5274b (diff)
feat(widget): show project color as a small accent on task rows
Diffstat (limited to 'android/app/src/main/java/org/terst/doot')
-rw-r--r--android/app/src/main/java/org/terst/doot/widget/ui/WidgetRows.kt14
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()