feat(reminders): snooze + dismiss notification actions #28
Reference in New Issue
Block a user
Delete Branch "feat/reminders-snooze"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Adds Snooze and Dismiss action buttons to reminder notifications — the first slice of Release 1 ("Reminders, round two").
What
Why it needs an alarm
The app is otherwise pure provider-broadcast (the Etar model): the calendar provider fires
EVENT_REMINDERand we post the notification, then mark theCalendarAlertsrow fired. A snoozed reminder has no provider backing — its row is already fired — so snooze self-schedules an exact alarm (setExactAndAllowWhileIdle, inexact fallback if exact alarms are revoked on API 31–32) to re-show it. Primary delivery is unchanged.Changes
ReminderActionReceiver(not exported): SNOOZE / DISMISS / SHOW.ReminderSnoozeScheduler: exact-alarm wrapper.ReminderNotifier: two actions +cancel().snoozeMinutespref + Settings OptionCard picker.USE_EXACT_ALARM+SCHEDULE_EXACT_ALARM(maxSdk 32) + receiver.ic_notification_snooze/_dismissdrawables,duration_*plurals, en+de strings, snooze-pref tests, CHANGELOG.Scope note: "absolute time-of-day for all-day reminders" was already shipped in v2.6.0, so it's out of scope here.
Verification
assembleDebug+testDebugUnitTestgreen.RTC_WAKEUPre-show alarm; Dismiss/body-tap behave correctly.🤖 Generated with Claude Code