showExitAlert static method

void showExitAlert(
  1. BuildContext context
)

Método para mostrar una alerta de confirmación para salir de la aplicación.

Este diálogo muestra un título, un mensaje y una imagen junto con dos botones: uno para cancelar (cerrando el diálogo) y otro para salir de la app.

Está diseñado especificamente para prevenir salidas accidentales, como cuando el usuario está en la pantalla principal y podría salir sin querer al login..

Parámetros:

  • context: El contexto de la aplicación donde se mostrará el diálogo.

Implementation

static void showExitAlert(BuildContext context) {
  showDialog<void>(
    context: context,
    // EVITA QUE SE CIERRE AL TOCAR FUERA DEL DIALOGO
    barrierDismissible: false,
    builder: (BuildContext context) {
      return AlertDialog(
        title: Text(Internationalization.internationalization
            .getLocalizations(context, "dialog_exit_app_title")),
        content: SizedBox(
          height: 100,
          child: Row(
            children: [
              Expanded(
                child: Padding(
                  padding: const EdgeInsets.symmetric(vertical: 8),
                  child: Text(
                    Internationalization.internationalization
                        .getLocalizations(context, "dialog_exit_app_message"),
                    style: const TextStyle(fontSize: 15),
                    // SI EL TEXTO ES MUY LARGO, SE PONE PUNTOS SUSPENSIVOS
                    // Y SE MUESTRA HASTA 4 LINEAS
                    overflow: TextOverflow.ellipsis,
                    maxLines: 4,
                  ),
                ),
              ),
              SizedBox(
                width: 100,
                height: 200,
                child: Image.asset(
                  "assets/cubix/cubix_sad.png",
                  // AJUSTA LA IMAGEN COMPLETA DENTRO DEL CONTENEDOR SIN RECORTARLA
                  fit: BoxFit.contain,
                ),
              ),
            ],
          ),
        ),
        actions: <Widget>[
          // BOTONES PARA CANCELAR O DARLE OK
          TextButton(
            onPressed: () {
              // CIERRA LA ALERTA
              Navigator.pop(context);
            },
            child: Internationalization.internationalization
                .createLocalizedSemantics(
              context,
              'cancel_label',
              'cancel_hint',
              'cancel_label',
              const TextStyle(fontSize: 16, color: Colors.blue),
            ),
          ),
          TextButton(
            onPressed: () {
              // SI ACEPTA CIERRA LA APP
              SystemNavigator.pop();
            },
            child: Internationalization.internationalization
                .createLocalizedSemantics(
              context,
              'accept_label',
              'accept_hint',
              'accept_label',
              const TextStyle(fontSize: 16, color: Colors.blue),
            ),
          ),
        ],
      );
    },
  );
}