onNarrationSyncChanged property
Stream emitting narration↔visual sync state changes.
true = in sync (hide re-sync UI); false = user took manual control (show re-sync UI).
Currently fired by comic (DiViNa) navigators; future: Media Overlay.
Implementation
@override
Stream<bool> get onNarrationSyncChanged {
_onNarrationSyncChanged ??= narrationSyncChannel.receiveBroadcastStream().map((dynamic event) {
if (event is bool) return event;
try {
return (json.decode(event as String) as bool?) ?? false;
} on Exception catch (e) {
_log.w('Error parsing narration sync event: $e');
return false;
}
}).asBroadcastStream();
return _onNarrationSyncChanged!;
}