fix(alarm): add due alarm watchdog
Build & Deploy Pluriwave / Análisis de código (push) Successful in 14s
Build & Deploy Pluriwave / Build APK + AAB release (push) Successful in 4m14s

This commit is contained in:
2026-05-22 01:26:20 +02:00
parent d8823a328d
commit 4ae93182fa
4 changed files with 61 additions and 13 deletions
+17
View File
@@ -50,6 +50,7 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
int _indice = 0;
StreamSubscription<String>? _errorSubscription;
StreamSubscription<EventoAlarmaAndroid>? _alarmaSubscription;
StreamSubscription<AlarmaMusical>? _alarmaVencidaSubscription;
EstadoRadio? _estadoSuscrito;
bool _alarmaInicialProcesada = false;
@@ -129,6 +130,12 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
if (!mounted) return;
_abrirAlarmaSonando(evento);
});
_alarmaVencidaSubscription ??= alarmas.alarmasVencidasStream.listen((
alarma,
) {
if (!mounted) return;
_abrirAlarmaDirecta(alarma);
});
if (!_alarmaInicialProcesada) {
_alarmaInicialProcesada = true;
unawaited(_procesarAlarmaInicial(alarmas));
@@ -139,6 +146,7 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
void dispose() {
_errorSubscription?.cancel();
_alarmaSubscription?.cancel();
_alarmaVencidaSubscription?.cancel();
super.dispose();
}
@@ -223,6 +231,15 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
);
}
Future<void> _abrirAlarmaDirecta(AlarmaMusical alarma) async {
await Navigator.of(context).push(
MaterialPageRoute<void>(
builder: (_) => PantallaAlarmaSonando(alarma: alarma),
fullscreenDialog: true,
),
);
}
void _mostrarTimerDialog(BuildContext context) {
final estado = context.read<EstadoRadio>();
showModalBottomSheet(