Base Service
- The base service file provides the foundation for implementing different internal notification services. It defines the InternalNotificationsService abstract class, which outlines the required methods and properties that specific services must implement.
Here's an overview of the class structure:
InternalNotificationsService Class
- The InternalNotificationsService abstract class serves as a blueprint for internal notification services. It provides the members listed here.
Implementing Internal Notifications Service
To create a specific internal notifications service, follow these steps:
- Create a new service file that implements the InternalNotificationsService abstract class.
- Override the empty methods (init(), dispose(), subscribe(), unsubscribe(), push()) according to the requirements of your chosen service provider (e.g., We have already provided code for services like: Firebase and Pusher. You can refere that when you try to implement your own service).
- Customize the properties (pendingNotificationsCountStream, notificationsStream, notifications) to provide the necessary functionality specific to your service.
Note:
Ensure that the implemented service file is correctly imported and accessible within the application's file structure.
Ensure that the implemented service file is correctly imported and accessible within the application's file structure.
Source Code
import 'dart:async';
import '../../models/notification.dart';
abstract class InternalNotificationsService {
final Stream<int> pendingNotificationsCountStream = const Stream.empty();
final Stream<List<InternalNotification>> notificationsStream = const Stream.empty();
List<InternalNotification> get notifications => [];
Future<void> init() async {}
Future<void> dispose() async {}
Future<void> subscribe() async {}
Future<void> unsubscribe() async {}
Future<void> push(List<String> userIds, InternalNotification notification) async {}
}