create static method
Creates and initializes the single active notification runtime.
Repeated calls with the same configuration return the active service. A different configuration fails while another runtime is active.
Implementation
static Future<NotificationResult<NotificationService>> create(
NotificationConfig config,
) {
final active = _activeInstance;
if (active != null) {
if (identical(active._config, config)) {
return Future.value(NotificationSuccess(active));
}
return Future.value(
const NotificationFailureResult(
NotificationLifecycleFailure(
'A notification runtime is already active with another configuration',
),
),
);
}
final pending = _initialization;
if (pending != null) {
if (identical(_initializingConfig, config)) return pending;
return Future.value(
const NotificationFailureResult(
NotificationLifecycleFailure(
'Notification initialization is already running with another configuration',
),
),
);
}
_initializingConfig = config;
final future = _create(config);
_initialization = future;
return future;
}