startProgressForXSecond static method

void startProgressForXSecond(
  1. {@required double second,
  2. @required Widget child}
)

Implementation

static void startProgressForXSecond(
    {@required double second, @required Widget child}) {
  int count = 0;

  showDialog(
    barrierDismissible: false,
    context: _globalProvider.globalContext,
    builder: (context) {
      Timer.periodic(const Duration(milliseconds: 250), (Timer t) {
        count++;
        if (count >= (second * 4).toInt()) {
          t.cancel();
          Navigator.of(_globalProvider.globalContext, rootNavigator: true)
              .pop();
        }
      });

      return WillPopScope(
        onWillPop: () {
          return Future.value(false);
        },
        child: AlertDialog(
          elevation: 0,
          backgroundColor: Colors.transparent,
          content: child,
        ),
      );
    },
  );
}