onReaderStatusChanged property
Fires whenever the reader status changes.
Like onTextLocatorChanged, the underlying event channel opts in to native-side buffering to avoid dropping the first status event.
Implementation
@override
Stream<ReadiumReaderStatus> get onReaderStatusChanged {
_onReaderStatusChanged ??= readerStatusChannel.receiveBroadcastStream().map((dynamic event) {
_log.i('Received reader status event: $event');
try {
return ReadiumReaderStatus.optFromString(json.decode(event) as String) ??
ReadiumReaderStatus.optFromString(event) ??
ReadiumReaderStatus.error;
} on Exception catch (e) {
_log.w('Error parsing reader status event: $e');
return ReadiumReaderStatus.error;
}
}).asBroadcastStream();
return _onReaderStatusChanged!;
}