Skip to content

feat(reminders): reminder troubleshooting UI [DEV-Only]#20724

Merged
mikehardy merged 3 commits intoankidroid:mainfrom
david-allison:reminder_troubleshooting
Apr 19, 2026
Merged

feat(reminders): reminder troubleshooting UI [DEV-Only]#20724
mikehardy merged 3 commits intoankidroid:mainfrom
david-allison:reminder_troubleshooting

Conversation

@david-allison
Copy link
Copy Markdown
Member

@david-allison david-allison commented Apr 12, 2026

Note

Assisted-by: Claude Opus 4.6
The initial design was implemented by Claude, I've spent a few hours fixing up issues and refactoring
Some icons are by Claude

Huge thanks to @ColbyCabrera @LUwUcifer, @ShaanNarendran and @ericli3690 for all the design feedback!

[Please feel free to review the final PR/design]

Purpose / Description

In a previous commit, a ViewModel was added, this UI exposes the ViewModel, with a design similar to Google's Battery health

Checks are inspired by Daylio

Links

Approach

  • Add a base UI
  • Add checks
  • Add 'fixes' for checks

A handler is added to detect a refresh via focus change, as pulling down the navigation drawer does not call onResume, so 'do not disturb' etc... would not have been detected.

How Has This Been Tested?

API 33 emulator, @ericli3690 confirmed on API 25. My Google Pixel 9 Pro

reminder_troubleshooting.webm
image

Checklist

  • You have a descriptive commit message with a short title (first line, max 50 chars).
  • You have commented your code, particularly in hard-to-understand areas
  • You have performed a self-review of your own code
  • UI changes: include screenshots of all affected screens (in particular showing any new or changed strings)
  • UI Changes: You have tested your change using the Google Accessibility Scanner

@criticalAY
Copy link
Copy Markdown
Contributor

@david-allison fyi: took conflicts from the recent merge

@david-allison
Copy link
Copy Markdown
Member Author

@criticalAY feel free to flag as "needs author reply" in future, I've got 14 open PRs and de-conflict then daily

Copy link
Copy Markdown
Member

@ericli3690 ericli3690 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I previously reviewed this on David's fork and approved it there. Gave it another skim just now and it looks even better now. Nice extension functions. Thanks again David!

@criticalAY criticalAY added the Needs Author Reply Waiting for a reply from the original author label Apr 13, 2026
For now, this only shows the status, not the checks

* Adds a menu item on reminders to open troubleshooting
* Display the overall status of checks

Influenced by Google 'Battery Health'

Assisted-by: Claude Opus 4.6
Allow a user to tap a troubleshooting issue and open an appropriate
screen to fix the issue

Assisted-by: Claude Opus 4.6
@david-allison david-allison removed Needs Author Reply Waiting for a reply from the original author Has Conflicts labels Apr 13, 2026
@david-allison david-allison force-pushed the reminder_troubleshooting branch from ae7b77e to 584ea48 Compare April 13, 2026 03:30
@david-allison david-allison added Needs Second Approval Has one approval, one more approval to merge and removed Needs Review labels Apr 19, 2026
Copy link
Copy Markdown
Member

@mikehardy mikehardy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

worthy for a dev-only opening salvo
please open related issue that will survive this PR merge with a todo list for getting it to production

Comment on lines +113 to +114
* This handles cases that [onResume] misses, such as toggling battery saver
* from the notification shade, which doesn't pause/resume the activity.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Stuff like this is why having an app reliably notify you - and help you get to the point where notifications are reliable - is so fiendishly difficult. Nice

is TroubleshootingCheck.ExactAlarmPermission -> "Alarms & reminders permission"
}

// TODO: move to string resources
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm okay with this for dev only but really really needs something that helps track / gate it, should be noted on a related issue (does not seem to be one right now?) that survives the merge of this PR in still open state, noting the steps to promote it to public vs dev-only

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be within the scope of #19473, so I don't think we need to create another issue, that one should cover moving these to string resources.

Comment on lines +340 to +344
fragment.requestPermissionThroughDialogOrSettings(
activity = fragment.requireActivity(),
permission = Manifest.permission.POST_NOTIFICATIONS,
permissionRequestedFlag = Prefs::notificationsPermissionRequested,
permissionRequestLauncher = fragment.notificationPermissionLauncher,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also so hard to get correct, I remember that PR going in for the jank Android "can you request notification permission or not?" stuff

@mikehardy mikehardy added this pull request to the merge queue Apr 19, 2026
@mikehardy mikehardy added Pending Merge Things with approval that are waiting future merge (e.g. targets a future release, CI wait, etc) and removed Needs Second Approval Has one approval, one more approval to merge labels Apr 19, 2026
Merged via the queue into ankidroid:main with commit 0224f23 Apr 19, 2026
15 checks passed
@github-actions github-actions bot removed the Pending Merge Things with approval that are waiting future merge (e.g. targets a future release, CI wait, etc) label Apr 19, 2026
@github-actions github-actions bot added this to the 2.24 release milestone Apr 19, 2026
@david-allison david-allison deleted the reminder_troubleshooting branch April 20, 2026 01:44
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.

4 participants