onReaderStatusChanged property

  1. @override
Stream<ReadiumReaderStatus> get onReaderStatusChanged
override

Stream emitting the current reader lifecycle status (loading, ready, closed, error).

Implementation

@override
Stream<ReadiumReaderStatus> get onReaderStatusChanged {
  _onReaderStatusChanged ??= readerStatusChannel.receiveBroadcastStream().map((dynamic event) {
    ReadiumLog.i('Received reader status event: $event');
    try {
      return ReadiumReaderStatus.optFromString(json.decode(event) as String) ??
          ReadiumReaderStatus.optFromString(event) ??
          ReadiumReaderStatus.error;
    } on Exception catch (e) {
      ReadiumLog.w('Error parsing reader status event: $e');
      return ReadiumReaderStatus.error;
    }
  });
  return _onReaderStatusChanged!;
}