summaryrefslogtreecommitdiff
path: root/migrations/020_native_tasks.sql
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-08-09 05:03:09 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-08-09 05:03:09 +0000
commitb4bb981d98b0c2d4758f5acc0e1deb1f2a651c79 (patch)
tree96ba7ba6407bb657e149f97dabeb5bf860eb36fe /migrations/020_native_tasks.sql
parenteadd17df2946a1219fdf02f2ee0a0ac19734e56d (diff)
Widget: Quick Add dismisses instantly instead of blocking on network
Tapping "Add" ran addTask() plus up to five sequential follow-up calls (description, due date, project, labels, recurrence) and a widget refresh, all inside the sheet's own lifecycleScope, before finish() -- the sheet sat on screen doing nothing visible for however long that chain took, reported as "sits black for a couple seconds." Moved the actual submission into a new AddTaskWorker, following the same pattern already established by CompleteWorker/DeferWorker: a CoroutineWorker enqueued fire-and-forget, so it survives the activity finishing (lifecycleScope wouldn't -- it's cancelled the moment the activity is destroyed). onAdd now does a local-only DataStore config check (fast, no network, so a missing server URL/token still doesn't silently eat what was typed), then confirms via toast and calls finish() immediately, mirroring the optimistic-dismiss pattern TaskDetailActivity.onComplete already uses. The worker preserves the original partial-failure reporting (a toast listing what didn't stick) for the rare case something after addTask itself fails, now delivered asynchronously via Toast.makeText posted to the main thread rather than blocking the sheet on it. Verification: this exact activity hit the same headless-emulator input limitation noted earlier this session (2026-08-06, QuickAdd keyboard focus) -- confirmed it's an environment constraint, not a regression, by trying both `input text` and raw `input keyevent` injection (which also failed) against a field that visibly has focus, on the same emulator where the same commands work fine for an equivalent OutlinedTextField in SettingsActivity. Verified instead by: go build/ test equivalent (./gradlew testDebugUnitTest, all passing -- the individual WidgetRepository calls AddTaskWorker orchestrates already have unit coverage in WidgetRepositoryTest.kt), a clean assembleDebug, and a crash-sanity launch on emulator-5556 with no FATAL in logcat. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
Diffstat (limited to 'migrations/020_native_tasks.sql')
0 files changed, 0 insertions, 0 deletions