Skip to content

Commit 9203fee

Browse files
committed
feat: add notification permission check & request
1 parent 30067c3 commit 9203fee

File tree

4 files changed

+24
-0
lines changed

4 files changed

+24
-0
lines changed

lib/src/managers/notifications/notification_manager.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@ abstract class NotificationManager {
2020
/// [CKNotificationAction] buttons (except empty actions). Action buttons with an empty action will be treated as a tap.
2121
Stream<CKCallResult> get tapStream;
2222

23+
/// Requests notification permissions from web browser
24+
Future<bool> requestPermissions();
25+
26+
/// Check if the notification permissions are granted
27+
Future<bool> hasPermissions();
28+
2329
/// Dispose of the notification manager, releasing resources & streams
2430
Future<void> dispose();
2531

lib/src/managers/notifications/notification_manager_impl_web.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,4 +112,10 @@ class NotificationManagerImplWeb extends NotificationManager {
112112

113113
@override
114114
Stream<Iterable<CKNotification>> get notificationStream => _notificationsController.stream;
115+
116+
@override
117+
Future<bool> hasPermissions() => Future.value(_jsNotifications.hasPermissions);
118+
119+
@override
120+
Future<bool> requestPermissions() => _jsNotifications.requestPermissions();
115121
}

lib/src/method_channel/web_callkit_method_channel.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -889,4 +889,10 @@ class MethodChannelWebCallkit extends WebCallkitPlatform {
889889
CKNotification? getNotification(String uuid) {
890890
return _notificationManager.getNotification(uuid);
891891
}
892+
893+
@override
894+
Future<bool> hasPermissions() => _notificationManager.hasPermissions();
895+
896+
@override
897+
Future<bool> requestPermissions() => _notificationManager.requestPermissions();
892898
}

lib/src/platform_interface/web_callkit_platform_interface.dart

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,10 @@ abstract class WebCallkitPlatform extends PlatformInterface {
151151

152152
/// Get a call currently in the callkit UI.
153153
CKNotification? getNotification(String uuid);
154+
155+
/// Requests notification permissions from web browser
156+
Future<bool> requestPermissions();
157+
158+
/// Check if the notification permissions are granted
159+
Future<bool> hasPermissions();
154160
}

0 commit comments

Comments
 (0)