Manage In-app Notification Preferences
The notification preferences screen is accessible via a settings icon in the Notification Centre app bar. It displays a list of notification categories (assignment reminders, certification expiry, scenario prompts, pause status, etc.) with toggle switches. An additional section allows choosing delivery preference per category: in-app only or push notification + in-app. Preference changes are persisted to the notification-preferences-repository and synchronised to the backend so that the notification trigger service respects them. Changes take effect immediately without requiring an app restart. Categories marked as system-critical (e.g. certification expiry) may be non-toggleable per organisation policy.
User Story
Acceptance Criteria
- Given the peer mentor taps the preferences icon in the Notification Centre, when navigation resolves, then the notification-preferences-screen opens.
- Given the preferences screen is open, when it renders, then all notification categories applicable to the peer mentor role are listed with their current enabled/disabled toggle state.
- Given the peer mentor toggles a non-critical category off, when the change is saved, then subsequent notifications of that category are not created in the peer mentor's notification feed.
- Given a category is system-critical (e.g. certification expiry), when the preferences screen renders, then the toggle for that category is disabled and a label explains it cannot be turned off.
- Given the peer mentor changes a delivery preference to 'in-app only' for a category, when the next notification in that category is triggered, then no FCM push notification is sent, only an in-app record is created.
- Given preferences are saved, when the peer mentor closes and reopens the app, then the saved preferences are correctly restored.
Business Value
Notification fatigue is a leading cause of push notification permission revocation and app disengagement. Giving peer mentors granular control over notification categories reduces the likelihood of disabling all notifications entirely. Respecting individual preferences also builds trust in the app as a tool that works for the volunteer rather than demanding constant attention, supporting long-term retention.
Components
- Notification Preferences Screen ui
- Notification Preference Service service
- Notification Preferences Repository data
- Notification Permission Manager service
- Notification Preferences Repository data
- Notification BLoC service
- Push Notification Service infrastructure
Dependencies
- View Consolidated Notification Feed critical