gestures method

  1. @override
Stream<Gesture> gestures()
override

Implementation

@override
Stream<Gesture> gestures() {
  if (controller != null) {
    return controller!.stream;
  }
  if (Platform.isAndroid) {
    controller = StreamController<Gesture>(onListen: () async {
      HardwareKeyboard.instance.addHandler(handleKeyboard);
    }, onCancel: () {
      HardwareKeyboard.instance.removeHandler(handleKeyboard);
      controller = null;
    });
    return controller!.stream;
  }
  controller = StreamController<Gesture>(onListen: () async {
    events?.cancel();
    events ??= eventChannel.receiveBroadcastStream().listen((data) {
      controller?.add(
          Gesture.values.byName((data["data"] as String).toLowerCase()));
    });
  }, onCancel: () {
    events?.cancel();
    events = null;
    controller = null;
  });
  return controller!.stream;
}