diff --git a/lib/src/gesture_navigation/gesture_route_transition_mixin.dart b/lib/src/gesture_navigation/gesture_route_transition_mixin.dart index 5f05901..5166447 100644 --- a/lib/src/gesture_navigation/gesture_route_transition_mixin.dart +++ b/lib/src/gesture_navigation/gesture_route_transition_mixin.dart @@ -11,10 +11,12 @@ mixin GestureRouteTransitionMixin on ModalRoute { GestureHandler get gestureHandler => gestureDelegate.gestureHandler; - GestureHandler? get barrierGestureHandler => gestureDelegate.barrierGestureHandler; + GestureHandler? get barrierGestureHandler => + gestureDelegate.barrierGestureHandler; @override - AnimationController createAnimationController() => gestureDelegate.createAnimationController(); + AnimationController createAnimationController() => + gestureDelegate.createAnimationController(); @override void install() { @@ -35,14 +37,16 @@ mixin GestureRouteTransitionMixin on ModalRoute { } @override - Widget buildTransitions( - BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { - final transitionChild = buildPageTransitions(context, animation, secondaryAnimation, child); - return buildGestureListener(context, animation, secondaryAnimation, transitionChild); + Widget buildTransitions(BuildContext context, Animation animation, + Animation secondaryAnimation, Widget child) { + final transitionChild = + buildPageTransitions(context, animation, secondaryAnimation, child); + return buildGestureListener( + context, animation, secondaryAnimation, transitionChild); } - Widget buildGestureListener( - BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { + Widget buildGestureListener(BuildContext context, Animation animation, + Animation secondaryAnimation, Widget child) { return GestureListener( handler: gestureDelegate.gestureHandler, behavior: gestureBehavior, @@ -51,8 +55,8 @@ mixin GestureRouteTransitionMixin on ModalRoute { ); } - Widget buildPageTransitions( - BuildContext context, Animation animation, Animation secondaryAnimation, Widget child); + Widget buildPageTransitions(BuildContext context, Animation animation, + Animation secondaryAnimation, Widget child); @override void changedInternalState() { @@ -71,7 +75,7 @@ mixin GestureRouteTransitionMixin on ModalRoute { Widget buildGestureModalBarrier(BuildContext context) { final gestureHandler = barrierGestureHandler; - Widget barrier = buildModalBarrier(context, barrierDismissible && gestureHandler == null); + Widget barrier = buildModalBarrier(); if (gestureHandler != null) { barrier = Stack( children: [ @@ -88,57 +92,59 @@ mixin GestureRouteTransitionMixin on ModalRoute { return barrier; } - Widget buildModalBarrier(BuildContext context, bool barrierDismissible) { - Widget barrier; - if (barrierColor != null && barrierColor!.alpha != 0 && !offstage) { - // changedInternalState is called if barrierColor or offstage updates - assert(barrierColor != barrierColor!.withOpacity(0.0)); - final Animation color = animation!.drive( - ColorTween( - begin: barrierColor!.withOpacity(0.0), - end: barrierColor, // changedInternalState is called if barrierColor updates - ).chain(CurveTween(curve: barrierCurve)), // changedInternalState is called if barrierCurve updates - ); - barrier = AnimatedModalBarrier( - color: color, - dismissible: barrierDismissible, // changedInternalState is called if barrierDismissible updates - semanticsLabel: barrierLabel, // changedInternalState is called if barrierLabel updates - barrierSemanticsDismissible: semanticsDismissible, - ); - } else { - barrier = ModalBarrier( - dismissible: barrierDismissible, // changedInternalState is called if barrierDismissible updates - semanticsLabel: barrierLabel, // changedInternalState is called if barrierLabel updates - barrierSemanticsDismissible: semanticsDismissible, - ); - } - if (filter != null) { - barrier = BackdropFilter( - filter: filter!, - child: barrier, - ); - } - barrier = IgnorePointer( - ignoring: animation!.status == - AnimationStatus.reverse || // changedInternalState is called when animation.status updates - animation!.status == AnimationStatus.dismissed, // dismissed is possible when doing a manual pop gesture - child: barrier, - ); - if (semanticsDismissible && this.barrierDismissible) { - // To be sorted after the _modalScope. - barrier = Semantics( - sortKey: const OrdinalSortKey(1.0), - child: barrier, - ); - } - return barrier; - } + // Widget buildModalBarrier(BuildContext context, bool barrierDismissible) { + // Widget barrier; + // if (barrierColor != null && barrierColor!.alpha != 0 && !offstage) { + // // changedInternalState is called if barrierColor or offstage updates + // assert(barrierColor != barrierColor!.withOpacity(0.0)); + // final Animation color = animation!.drive( + // ColorTween( + // begin: barrierColor!.withOpacity(0.0), + // end: barrierColor, // changedInternalState is called if barrierColor updates + // ).chain(CurveTween(curve: barrierCurve)), // changedInternalState is called if barrierCurve updates + // ); + // barrier = AnimatedModalBarrier( + // color: color, + // dismissible: barrierDismissible, // changedInternalState is called if barrierDismissible updates + // semanticsLabel: barrierLabel, // changedInternalState is called if barrierLabel updates + // barrierSemanticsDismissible: semanticsDismissible, + // ); + // } else { + // barrier = ModalBarrier( + // dismissible: barrierDismissible, // changedInternalState is called if barrierDismissible updates + // semanticsLabel: barrierLabel, // changedInternalState is called if barrierLabel updates + // barrierSemanticsDismissible: semanticsDismissible, + // ); + // } + // if (filter != null) { + // barrier = BackdropFilter( + // filter: filter!, + // child: barrier, + // ); + // } + // barrier = IgnorePointer( + // ignoring: animation!.status == + // AnimationStatus.reverse || // changedInternalState is called when animation.status updates + // animation!.status == AnimationStatus.dismissed, // dismissed is possible when doing a manual pop gesture + // child: barrier, + // ); + // if (semanticsDismissible && this.barrierDismissible) { + // // To be sorted after the _modalScope. + // barrier = Semantics( + // sortKey: const OrdinalSortKey(1.0), + // child: barrier, + // ); + // } + // return barrier; + // } @override Iterable createOverlayEntries() { - final modalOverlays = List.from(super.createOverlayEntries(), growable: false); + final modalOverlays = + List.from(super.createOverlayEntries(), growable: false); if (barrierGestureHandler != null) { - _modalBarrier = OverlayEntry(builder: (context) => buildGestureModalBarrier(context)); + _modalBarrier = + OverlayEntry(builder: (context) => buildGestureModalBarrier(context)); modalOverlays[0] = _modalBarrier!; } return modalOverlays; diff --git a/lib/src/gesture_navigation/navigator_gesture_recognizer.dart b/lib/src/gesture_navigation/navigator_gesture_recognizer.dart index af06b19..2728818 100644 --- a/lib/src/gesture_navigation/navigator_gesture_recognizer.dart +++ b/lib/src/gesture_navigation/navigator_gesture_recognizer.dart @@ -5,7 +5,9 @@ import '../gestures_binding.dart'; mixin NavigatorGesturesPreventingCancelingMixin on GestureRecognizer { static NavigatorGesturesBinding? getGestureBinding() { - if (GestureBinding.instance is NavigatorGesturesBinding) return GestureBinding.instance as NavigatorGesturesBinding; + if (GestureBinding.instance is NavigatorGesturesBinding) { + return GestureBinding.instance as NavigatorGesturesBinding; + } return null; } @@ -33,14 +35,29 @@ mixin NavigatorGesturesOneSequenceMixin on OneSequenceGestureRecognizer } } -class RouteHorizontalDragGestureRecognizer extends HorizontalDragGestureRecognizer - with NavigatorGesturesPreventingCancelingMixin, NavigatorGesturesOneSequenceMixin { - RouteHorizontalDragGestureRecognizer({Object? debugOwner, PointerDeviceKind? kind /*, Set? supportedDevices */}) - : super(debugOwner: debugOwner, kind: kind/*, supportedDevices: supportedDevices */); +class RouteHorizontalDragGestureRecognizer + extends HorizontalDragGestureRecognizer + with + NavigatorGesturesPreventingCancelingMixin, + NavigatorGesturesOneSequenceMixin { + RouteHorizontalDragGestureRecognizer( + {Object? debugOwner, + PointerDeviceKind? kind /*, Set? supportedDevices */ + }) + : super( + debugOwner: debugOwner, /*, supportedDevices: supportedDevices */ + ); } class RouteVerticalDragGestureRecognizer extends VerticalDragGestureRecognizer - with NavigatorGesturesPreventingCancelingMixin, NavigatorGesturesOneSequenceMixin { - RouteVerticalDragGestureRecognizer({Object? debugOwner, PointerDeviceKind? kind /*, Set? supportedDevices */}) - : super(debugOwner: debugOwner, kind: kind/*, supportedDevices: supportedDevices */); + with + NavigatorGesturesPreventingCancelingMixin, + NavigatorGesturesOneSequenceMixin { + RouteVerticalDragGestureRecognizer( + {Object? debugOwner, + PointerDeviceKind? kind /*, Set? supportedDevices */ + }) + : super( + debugOwner: debugOwner, /*, supportedDevices: supportedDevices */ + ); } diff --git a/lib/src/gestures_binding.dart b/lib/src/gestures_binding.dart index 86a9199..364f1dd 100644 --- a/lib/src/gestures_binding.dart +++ b/lib/src/gestures_binding.dart @@ -73,8 +73,8 @@ class NavigatorGesturesFlutterBinding extends WidgetsFlutterBinding with Navigat /// binding instance to a [TestWidgetsFlutterBinding], not a /// [NavigatorGesturesFlutterBinding]. static WidgetsBinding ensureInitialized() { - if (WidgetsBinding.instance == null) NavigatorGesturesFlutterBinding(); - return WidgetsBinding.instance!; + NavigatorGesturesFlutterBinding(); + return WidgetsBinding.instance; } }