Skip to content

Give overdue-chore alerts the same Alarm/Notification/Silent + DND wiring as tasks#89

Merged
mapgie merged 1 commit into
mainfrom
claude/choredash-reminder-notifications-14lmpt
Jul 12, 2026
Merged

Give overdue-chore alerts the same Alarm/Notification/Silent + DND wiring as tasks#89
mapgie merged 1 commit into
mainfrom
claude/choredash-reminder-notifications-14lmpt

Conversation

@mapgie

@mapgie mapgie commented Jul 12, 2026

Copy link
Copy Markdown
Owner

Summary

Auditing the notification categories screen (see attached screenshot in the conversation) showed "Overdue chores" as a single toggle, while task reminders had three (Alarm/Notification/Silent). Digging in confirmed the split: task reminders and standalone reminders (including chore-linked reminders) already resolved one of three channels from the global delivery-mode setting, with the Alarm channel bypassing Do Not Disturb when access is granted. The DailyStaleChoreWorker's "Overdue chores" summary notification, however, used a single fixed channel (dash_chore_alerts, IMPORTANCE_DEFAULT) with no DND-bypass capability and no alarm/silent variants — it never read the delivery-mode setting at all.

  • Added a matching three-channel split for overdue-chore alerts (dash_chore_alerts_alarm_v1 / _notif_v1 / _silent_v1), with the alarm channel bypassing DND when access is granted, same as task reminders.
  • DailyStaleChoreWorker now reads the same global deliveryMode setting used by tasks/reminders and resolves its channel from it.
  • Consolidated the channel definitions and delivery-mode → channel resolution for tasks and chores into one shared table (NotificationHelper.channelDefs, keyed by a new ReminderKind enum) instead of two near-duplicate implementations, so there's a single place that can drift out of sync when the delivery modes or channel set change. AlarmReceiver and BootWorker now call the same NotificationHelper.channelId(kind, mode) function that DailyStaleChoreWorker uses.
  • Added user-facing strings for the three new chore channel names/descriptions, following the existing task-reminder channel naming convention.

Chores, tasks, and standalone reminders now all go through the same delivery-mode resolution and channel-creation logic.

Test plan

  • Install on a device, grant Do Not Disturb access in Settings → Reminders & alerts, set delivery mode to "Alarm", trigger the daily stale-chore check (or wait for it), and confirm the overdue-chores notification sounds the alarm tone and appears with DND enabled.
  • Set delivery mode to "Silent" and confirm the overdue-chores notification arrives without sound/vibration.
  • Confirm task reminders and standalone reminders still behave as before (channel ids/behavior unchanged for those).
  • Confirm the OS notification categories screen for the app now shows three "Overdue chores" entries (Alarm/Notification/Silent) instead of one.

…ring as tasks

Overdue chore notifications (DailyStaleChoreWorker) used a single fixed
channel with no Do Not Disturb bypass and no alarm/silent variants, unlike
task reminders and standalone reminders which already resolved one of
three channels from the global delivery-mode setting.

Consolidates channel definitions and delivery-mode resolution into one
table (NotificationHelper.channelDefs) keyed by ReminderKind, so chores,
tasks, and reminders share a single lookup instead of parallel
per-feature copies that can drift out of sync.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Qm7eATQjSFNReRvTtcXEmG
@mapgie
mapgie marked this pull request as ready for review July 12, 2026 10:05
@mapgie
mapgie merged commit c3edb2e into main Jul 12, 2026
4 checks passed
@mapgie
mapgie deleted the claude/choredash-reminder-notifications-14lmpt branch July 12, 2026 10:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants