Jaime Blasco
Committed by GitHub

Merge pull request #250 from jamesblasco/fix/will_pop_close

fix/will_pop_closure
@@ -224,24 +224,27 @@ class _ModalBottomSheetState extends State<ModalBottomSheet> @@ -224,24 +224,27 @@ class _ModalBottomSheetState extends State<ModalBottomSheet>
224 // ignore: unawaited_futures 224 // ignore: unawaited_futures
225 _bounceDragController.reverse(); 225 _bounceDragController.reverse();
226 226
227 - var canClose = true;  
228 - if (widget.shouldClose != null) {  
229 - _cancelClose();  
230 - canClose = await shouldClose();  
231 - }  
232 - if (canClose) {  
233 - // If speed is bigger than _minFlingVelocity try to close it  
234 - if (velocity > _minFlingVelocity) {  
235 - _close();  
236 - } else if (hasReachedCloseThreshold) {  
237 - if (widget.animationController.value > 0.0) {  
238 - // ignore: unawaited_futures  
239 - widget.animationController.fling(velocity: -1.0); 227 + Future<void> tryClose() async {
  228 + if (widget.shouldClose != null) {
  229 + _cancelClose();
  230 + bool canClose = await shouldClose();
  231 + if (canClose) {
  232 + _close();
240 } 233 }
241 - _close();  
242 } else { 234 } else {
243 - _cancelClose(); 235 + _close();
  236 + }
  237 + }
  238 +
  239 + // If speed is bigger than _minFlingVelocity try to close it
  240 + if (velocity > _minFlingVelocity) {
  241 + tryClose();
  242 + } else if (hasReachedCloseThreshold) {
  243 + if (widget.animationController.value > 0.0) {
  244 + // ignore: unawaited_futures
  245 + widget.animationController.fling(velocity: -1.0);
244 } 246 }
  247 + tryClose();
245 } else { 248 } else {
246 _cancelClose(); 249 _cancelClose();
247 } 250 }