Skip to content

Wire reminder permission status to Settings UI#16

Merged
mapgie merged 2 commits into
mainfrom
claude/choredash-reminder-permissions-c2grex
Jun 14, 2026
Merged

Wire reminder permission status to Settings UI#16
mapgie merged 2 commits into
mainfrom
claude/choredash-reminder-permissions-c2grex

Conversation

@mapgie

@mapgie mapgie commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Summary

  • The "Reminders & alerts" section claimed reminders are "fully enabled" based only on Notifications + Exact alarms, ignoring Do Not Disturb access entirely (even though the copy says alarms "sound even when Do Not Disturb is on").
  • Added a "Do Not Disturb access" permission row alongside Notifications and Exact alarms, each showing a live granted/not-granted status with icon + label (mirroring GoFlo's NotificationsHubScreen PermissionRow pattern, per the attached screenshot).
  • The "Reminders are fully enabled." message now only shows when all three permissions are granted; otherwise it shows "Reminders are not fully enabled."
  • Added setBypassDnd(true) to the task reminder notification channel so the DND-bypass claim is actually backed by the channel config.
  • Added PermissionHelper.isDndAccessGranted / dndAccessSettingsIntent.
  • Channel recreation fix: NotificationChannel settings (importance, bypassDnd, vibration) are frozen after first creation, even across createNotificationChannel() calls with the same id. Bumped the channel id to dash_task_reminders_v2 and delete the legacy channel on app start / boot so the new settings actually take effect for existing installs. Documented as LESSONS.md Release v0.4.0 #17.
  • Permission declaration fix: the "Do Not Disturb access" row opened the system settings page, but without <uses-permission android:name="android.permission.ACCESS_NOTIFICATION_POLICY" /> the app never appears as a grantable entry there, so isNotificationPolicyAccessGranted() could never become true and the row could never actually be granted. Added the permission and documented it in CLAUDE.md's permissions list.

Test plan

  • Verify Settings shows three permission rows (Notifications, Exact alarms, Do Not Disturb access) with correct Allowed/Tap to allow status
  • Tap "Do Not Disturb access" and confirm the app now appears as a toggleable entry in the system DND access list, and granting it flips the row to "Allowed"
  • Toggle each permission in system settings, return to app, confirm status updates on resume
  • Confirm "Reminders are fully enabled." only appears when all three are granted
  • On a device with an existing install, confirm the old dash_task_reminders channel is removed and a new dash_task_reminders_v2 channel (bypassing DND) is created
  • Schedule a task reminder, enable Do Not Disturb, confirm the reminder still sounds/shows
  • python3 a11y_check.py passes (already verified)

https://claude.ai/code/session_01TCUZ7M68vhLpBA2Z8u78Zy

claude added 2 commits June 14, 2026 10:08
Settings claimed reminders use a dedicated alarm that sounds through Do
Not Disturb and that reminders were "fully enabled" without checking DND
access at all. Add a Do Not Disturb access permission row alongside
Notifications and Exact alarms (mirroring GoFlo's NotificationsHubScreen),
gate the "fully enabled" message on all three, and request bypassDnd on
the task reminder channel so the claim is actually true once granted.

https://claude.ai/code/session_01TCUZ7M68vhLpBA2Z8u78Zy
NotificationChannel settings (importance, bypassDnd, vibration) are
immutable after creation, even when createNotificationChannel() is called
again with the same id. The previous commit added setBypassDnd(true) to
the task reminder channel, but existing installs already have that
channel from before with the old settings, so the bypass would silently
never apply. Bump the channel id to dash_task_reminders_v2 and delete the
legacy channel on app start / boot so the new settings take effect.

https://claude.ai/code/session_01TCUZ7M68vhLpBA2Z8u78Zy
@mapgie
mapgie marked this pull request as ready for review June 14, 2026 10:28
@mapgie
mapgie merged commit 501cf15 into main Jun 14, 2026
4 checks passed
@mapgie
mapgie deleted the claude/choredash-reminder-permissions-c2grex branch June 14, 2026 13:31
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