closeWarning method

void closeWarning()

Displays a warning dialog before closing the image editor.

Implementation

void closeWarning() async {
  if (disablePopScope) {
    Navigator.pop(context);
    return;
  }
  _openDialog = true;

  bool close = false;

  if (!mounted) return;

  if (customWidgets.mainEditor.closeWarningDialog != null) {
    close = await customWidgets.mainEditor.closeWarningDialog!(this);
  } else {
    await showAdaptiveDialog(
      context: context,
      builder: (BuildContext context) => Theme(
        data: _theme,
        child: AdaptiveDialog(
          designMode: designMode,
          brightness: _theme.brightness,
          imageEditorTheme: imageEditorTheme,
          title: Text(i18n.various.closeEditorWarningTitle),
          content: Text(i18n.various.closeEditorWarningMessage),
          actions: <AdaptiveDialogAction>[
            AdaptiveDialogAction(
              designMode: designMode,
              onPressed: () => Navigator.pop(context, 'Cancel'),
              child: Text(i18n.various.closeEditorWarningCancelBtn),
            ),
            AdaptiveDialogAction(
              designMode: designMode,
              onPressed: () {
                close = true;
                stateManager.position = 0;
                Navigator.pop(context, 'OK');
              },
              child: Text(i18n.various.closeEditorWarningConfirmBtn),
            ),
          ],
        ),
      ),
    );
  }

  if (close) {
    if (onCloseEditor == null) {
      if (mounted) Navigator.pop(context);
    } else {
      onCloseEditor!.call();
    }
  }

  _openDialog = false;
}