feat(alarm): complete musical alarm flows
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# Alarmas Android en PluriWave
|
||||
|
||||
PluriWave programa las alarmas con `AlarmManager.setAlarmClock`, porque es el camino Android pensado para despertadores visibles y de alta fiabilidad. Flutter conserva la configuración, la UI, la emisora y los fallbacks; Android se encarga de despertar la app en el momento exacto.
|
||||
|
||||
## Flujo
|
||||
|
||||
1. Flutter calcula la próxima ejecución según tipo, días, vacaciones y omisiones.
|
||||
2. `ServicioAlarmasAndroid` envía la programación al `MethodChannel pluriwave/alarm_scheduler`.
|
||||
3. `AlarmScheduler` registra:
|
||||
- alarma principal con `setAlarmClock`;
|
||||
- preaviso silencioso 30 minutos antes con `setExactAndAllowWhileIdle`.
|
||||
4. `PluriWaveAlarmReceiver` abre la app cuando suena la alarma.
|
||||
5. Flutter muestra `PantallaAlarmaSonando`, intenta reproducir la emisora y activa audio interno si la radio falla o tarda demasiado.
|
||||
|
||||
## Permisos
|
||||
|
||||
- `SCHEDULE_EXACT_ALARM`: necesario en Android 12+ para exactitud.
|
||||
- `POST_NOTIFICATIONS`: necesario en Android 13+ para el preaviso silencioso.
|
||||
- `WAKE_LOCK` y foreground media playback ya están declarados para la reproducción.
|
||||
|
||||
## Fallbacks
|
||||
|
||||
Si la emisora no existe, falla o no empieza a reproducir en unos segundos, la pantalla usa sonidos internos incluidos en `assets/audio/`. Esto evita una alarma silenciosa por problemas de red o de radio.
|
||||
|
||||
## Vacaciones y omisiones
|
||||
|
||||
Las vacaciones se guardan en Flutter. Las alarmas configuradas para pausar en vacaciones saltan automáticamente esos rangos y muestran la próxima fecha válida. El preaviso permite omitir la siguiente ejecución abriendo la app y aplicando la misma lógica de omisión persistente.
|
||||
Reference in New Issue
Block a user