loadingWithMessage static method

dynamic loadingWithMessage({
  1. required BuildContext context,
  2. required String message,
  3. Color? circularProgressColor,
  4. Color? dialogMessageColor,
})

Implementation

static loadingWithMessage({
  required BuildContext context,
  required String message,
  Color? circularProgressColor,
  Color? dialogMessageColor,
}) {
  final config = ImosysAppWrapper.of(context);
  final isDarkTheme = _isDark(config, context);
  final resolvedProgressColor =
      circularProgressColor ?? config.circularProgressColor ?? config.semanticColors.info;
  final resolvedMessageColor = dialogMessageColor ??
      config.dialogMessageColor ??
      (isDarkTheme
          ? config.semanticColors.onSurface
          : config.defaultFontColor);

  return Platform.isAndroid
      ? showDialog(
          barrierDismissible: false,
          context: context,
          builder: (_) {
            return AlertDialog(
              content: Column(
                mainAxisSize: MainAxisSize.min,
                mainAxisAlignment: MainAxisAlignment.center,
                children: [
                  CircularProgressIndicator(
                    color: resolvedProgressColor,
                  ),
                  const SizedBox(
                    height: 5,
                  ),
                  ImosysTextWidget(
                    text: message,
                    size: 16,
                    color: resolvedMessageColor,
                  )
                ],
              ),
            );
          })
      : showCupertinoDialog(
          context: context,
          builder: (BuildContext context) => CupertinoAlertDialog(
            content: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                CupertinoActivityIndicator(
                  color: resolvedProgressColor,
                  radius: 20,
                ),
                const SizedBox(
                  height: 10,
                ),
                ImosysTextWidget(
                  text: message,
                  size: 16,
                  color: resolvedMessageColor,
                )
              ],
            ),
          ),
        );
}