Replace the base scaffolds with the real Material 3 Expressive UI on the existing M1 ViewModels. Task list: due-date section headers (collapsible Completed), grouped tonal rows with a list-colour accent bar, swipe-to-complete / -delete, inline add, list-name chip and subtask "done/total" chip in mixed views (children folded into their parent). New pure TaskSections grouping + unit test. Detail: each fact its own tonal card with a leading icon (Calendula pattern) — when/list/priority/progress/description; progress shows only with subtasks. Subtasks are a connected grouped run whose first segment is the expand toggle, with an accent-tinted inline add row; completed subtasks sink to the bottom. Edit: title, description, list dropdown, start/due date-time + all-day, priority segmented buttons, reminder offset, validation; IME auto-scroll. Extract GroupedSurface from GroupedRow so the connected-row look is reusable at any width; add ListNameChip + date-time format/picker helpers. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Floret
A modern Material 3 Expressive task app for Android.
Reads, writes, and reminds — on top of an existing tasks provider, with no own
sync stack.
Floret is the task-list sibling to Calendula.
Where Calendula is a pure front-end over Android's CalendarContract, Floret is
a pure front-end over the OpenTasks TaskContract provider — the store that
DAVx5 (and SmoothSync, DecSync, …) syncs your CalDAV VTODO tasks into. No own
database, no reinvented sync.
A Calendula flower head is botanically made of many small florets — the individual items that make up the bloom. Floret is those items: your tasks.
Status: data layer done, UI in progress. The full non-visual stack over the
TaskContractprovider — provider resolution, live-updating reads, writes, smart-list filtering, and a self-scheduled reminder engine — is built and unit-tested. The Material 3 Expressive screens are now being built on top, one at a time. Seedocs/ROADMAP.mdfor status,docs/ARCHITECTURE.mdfor how it's built, anddocs/PLAN.mdfor the A-now-B-later design rationale.
Sync sources (by design)
Floret works with anything that writes to the tasks provider — DAVx5 (CalDAV), SmoothSync, CalDAV-Sync, DecSync CC, or any Android sync adapter — because it builds on the provider, not on any one sync app. Google Tasks / Microsoft To Do are out of scope by design (proprietary; they would mean owning a sync stack). Open standards — CalDAV / iCalendar / DecSync — are the lane.
License
MIT — see LICENSE.