Add notification permission flow in settings

This commit is contained in:
Rijad Zuzo
2026-02-15 23:53:46 +01:00
parent 6e73273ede
commit 560716100d
7 changed files with 144 additions and 1 deletions
@@ -235,6 +235,9 @@ class RecordingReminderScheduler implements ReminderScheduler {
@override
Future<void> clearAll() async {}
@override
Future<bool> requestPermissions() async => true;
@override
Future<void> reconcile(List<ReminderRule> reminders) async {
snapshots.add(List<ReminderRule>.unmodifiable(reminders));
@@ -59,12 +59,29 @@ void main() {
expect(driver.initializeCalls, 1);
expect(driver.cancelAllCalls, 1);
});
test('requestPermissions delegates to notifications driver', () async {
final FakeReminderNotificationsDriver driver =
FakeReminderNotificationsDriver(permissionResult: true);
final LocalNotificationsReminderScheduler scheduler =
LocalNotificationsReminderScheduler(driver: driver);
final bool granted = await scheduler.requestPermissions();
expect(granted, isTrue);
expect(driver.initializeCalls, 1);
expect(driver.permissionRequests, 1);
});
}
class FakeReminderNotificationsDriver implements ReminderNotificationsDriver {
FakeReminderNotificationsDriver({this.permissionResult = true});
int initializeCalls = 0;
int cancelAllCalls = 0;
int permissionRequests = 0;
final List<ScheduledCall> scheduled = <ScheduledCall>[];
final bool permissionResult;
@override
Future<void> cancelAll() async {
@@ -96,6 +113,12 @@ class FakeReminderNotificationsDriver implements ReminderNotificationsDriver {
),
);
}
@override
Future<bool> requestPermissions() async {
permissionRequests += 1;
return permissionResult;
}
}
class ScheduledCall {