listen method

  1. @override
void listen({
  1. dynamic v1Callback(
    1. PreferredAction p1
    )?,
  2. dynamic onTapAction(
    1. TapAction p1
    )?,
  3. dynamic onSqueeze(
    1. SqueezeAction p1
    )?,
  4. dynamic onError(
    1. dynamic e
    )?,
})
override

Implementation

@override
void listen({
  Function(PreferredAction p1)? v1Callback,
  Function(TapAction p1)? onTapAction,
  Function(SqueezeAction p1)? onSqueeze,
  Function(dynamic e)? onError,
}) {
  methodChannel.setMethodCallHandler((call) async {
    try {
      if (call.method == 'onPencilDoubleTap') {
        switch (call.arguments?.toString()) {
          case 'switchPrevious':
            v1Callback?.call(PreferredAction.switchPrevious);
          case 'showColorPalette':
            v1Callback?.call(PreferredAction.showColorPalette);
          case 'showInkAttributes':
            v1Callback?.call(PreferredAction.showInkAttributes);
          case 'ignore':
            v1Callback?.call(PreferredAction.ignore);
          case 'switchEraser':
            v1Callback?.call(PreferredAction.switchEraser);
          default:
            v1Callback?.call(PreferredAction.unknown);
        }
      }
      if (call.method == "onPencilDoubleTapV2") {
        onTapAction?.call(TapAction.fromJson(call.arguments));
      }
      if (call.method == "onPencilSqueeze") {
        onSqueeze?.call(SqueezeAction.fromJson(call.arguments));
      }
    } catch (e) {
      if (onError != null) {
        onError.call(e);
      } else {
        rethrow;
      }
    }
  });
}