aw-notify: settingsStore integration and shared webui config surface
Maintainers usually reply within 1 day
@TimeToBuildBob is already working on this.
Since Jul 25, 2026.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 45/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- backend-api-design, mobile
Research direction
The NotifyWorker in the Android app currently uses hardcoded DEFAULT_ALERTS. First, examine the aw-notify desktop Python daemon to understand its config model. Then, look at the server-side settings API endpoint (/api/0/settings/aw-notify/alerts) to see how to store and retrieve config. The work involves modifying the Kotlin worker to read from this API, creating a fallback default, and ensuring the webui can expose a compatible config panel. 'Done' means the Android app uses server-stored alert configuration shared with the desktop client.
Written by the indexing model from the issue text.
Description
Follow-up to #199 (merged) — centralising alert configuration so Android shares the same config surface as aw-notify on desktop.
What's missing from the MVP
The NotifyWorker shipped in #199 hardcodes DEFAULT_ALERTS directly in Kotlin. The only server-side setting it reads is startOfDay. Everything else (categories, thresholds, enabled/disabled) requires a code change.
Goals
-
settingsStore integration — store alert config under
/api/0/settings/aw-notify/alerts(or a sub-key of the existing settings namespace). The Android app reads this at worker startup instead of the hardcoded list, matching the server-side config model aw-notify desktop already uses. -
Shared webui config surface — once the config lives in the settings API, the aw-webui can expose a config panel identical to (or compatible with) the desktop aw-notify settings, so users manage thresholds in one place regardless of client.
-
Reduced default thresholds — the current defaults (
Allat 1h/2h/4h/6h/8h,Workat 15m/30m/1h/2h/4h, etc.) are too dense for most days. Trim to 2–3 thresholds per category max, or align with whatever the desktop aw-notify defaults converge to after #200 lands. -
Migration path — if a user has no server-side config, fall back to a minimal built-in default (not the current verbose list) so first-run behaviour is conservative.
Out of scope here
- Anomaly/percentile-based notifications → tracked in #200
- App-layer quiet-hours (the OS
aw_notify_channel+ DnD is sufficient for now)
Cross-references
- #199 — the initial notify implementation (merged)
- #200 — smart anomaly-detection notifications (v2 direction)
- aw-notify desktop — the Python daemon this should share config with
- Dominant language
- Kotlin
- Stars
- 270
- Forks
- 57
- Avg merge
- 23h 47m
- Merged PRs (30d)
- 39
Getting set up
We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ActivityWatch/aw-android
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
ActivityWatch/aw-android#306 ·
Maintainers usually reply within 1 day
-
AuthSettingsActivity crashes on launch (InflateException: Material attributes under AppCompat theme)Open
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
ActivityWatch/aw-android#210 · 7 comments · 1 reaction ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
ActivityWatch/aw-android#302 ·
Maintainers usually reply within 1 day
-
Difficulty 3/5 1-2 days Newbie friendliness 58/100
ActivityWatch/aw-android#300 · 6 comments ·
Maintainers usually reply within 1 day
-
Difficulty 4/5 3-5 days Newbie friendliness 48/100
ActivityWatch/aw-android#296 ·
Maintainers usually reply within 1 day
All issues in ActivityWatch/aw-android
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
detekt/detekt#9761 · 1 comment · 2 reactions ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 73/100
yschimke/compose-preview-server#1163 ·
Maintainers usually reply within 1 day
-
Difficulty 1/5 Under an hour Newbie friendliness 95/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
T31n/YagniLauncher#1051 ·
Maintainers usually reply within 1 day