watch method
Streams the keyboard language, starting with the current value where the
platform can determine it. pollInterval is used by platforms that have
no change notification.
Implementation
@override
Stream<InputLanguage?> watch({required Duration pollInterval}) {
late final StreamController<InputLanguage?> controller;
JSFunction? listener;
controller = StreamController<InputLanguage?>(
onListen: () {
controller.add(_fromTag(web.window.navigator.language));
listener = ((web.Event _) {
controller.add(_fromTag(web.window.navigator.language));
}).toJS;
web.window.addEventListener('languagechange', listener);
},
onCancel: () {
final registered = listener;
if (registered != null) {
web.window.removeEventListener('languagechange', registered);
}
listener = null;
},
);
return controller.stream;
}