showAlertDialog method

Future showAlertDialog(
  1. BuildContext context,
  2. String title,
  3. Widget description, {
  4. dynamic cancelButtonTitle = "ok",
  5. dynamic dismissable = true,
  6. dynamic confirmButtonTitle,
  7. dynamic confirmButtonAction,
  8. dynamic confirmActionParams,
  9. dynamic retValue,
})

Implementation

Future showAlertDialog(BuildContext context, String title, Widget description,
    {cancelButtonTitle = "ok",
    dismissable = true,
    confirmButtonTitle,
    confirmButtonAction,
    confirmActionParams,
    retValue}) async {
  Widget alertDialog;
  List<Widget> actions = [];
  if (cancelButtonTitle != null) {
    Widget cancelButton = ElevatedButton(
      child: Text(cancelButtonTitle),
      onPressed: () => Navigator.pop(context),
    );
    actions.add(cancelButton);
  }
  if (confirmButtonTitle != null) {
    Widget confirmButton = ElevatedButton(
      child: Text(confirmButtonTitle),
      onPressed: () {
        if (retValue != null) {
          Navigator.pop(context, retValue);
        } else {
          Navigator.pop(context, retValue);
          if (confirmActionParams != null) {
            confirmButtonAction(confirmActionParams);
          } else {
            confirmButtonAction();
          }
        }
      },
    );
    actions.add(confirmButton);
  }

  AlertDialog androidAlertDialog =
      AlertDialog(title: Text(title), content: description, actions: actions);

  alertDialog = androidAlertDialog;
  return await showDialog(
      context: context,
      barrierDismissible: dismissable,
      builder: (BuildContext context) => alertDialog);
}