fix(alarms): harden native playback and pre-notice actions
This commit is contained in:
+21
-1
@@ -241,6 +241,27 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (evento.accion.endsWith('.POSTPONE_NEXT')) {
|
||||
final ejecucion =
|
||||
evento.occurrenceAtMillis > 0
|
||||
? DateTime.fromMillisecondsSinceEpoch(evento.occurrenceAtMillis)
|
||||
: alarma.proximaEjecucion ?? DateTime.now();
|
||||
await estado.posponerProximaDesdePreaviso(
|
||||
alarma,
|
||||
evento.snoozeMinutes,
|
||||
ejecucion,
|
||||
);
|
||||
if (!mounted) return;
|
||||
setState(() => _indice = 3);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
SnackBar(
|
||||
content: Text(
|
||||
'Alarma pospuesta ${evento.snoozeMinutes} min para esta ejecución.',
|
||||
),
|
||||
),
|
||||
);
|
||||
return;
|
||||
}
|
||||
if (evento.accion.endsWith('.PRE_NOTICE')) {
|
||||
setState(() => _indice = 3);
|
||||
return;
|
||||
@@ -268,7 +289,6 @@ class _PaginaPrincipalState extends State<_PaginaPrincipal> {
|
||||
_alarmaSonandoId = alarma.id;
|
||||
|
||||
try {
|
||||
await alarmas.android.detenerSonidoNativo(alarma.id);
|
||||
await _prearrancarAudioAlarma(alarma);
|
||||
if (!mounted) return;
|
||||
await Navigator.of(context).push(
|
||||
|
||||
Reference in New Issue
Block a user