fix(alarm): avoid ClassCastException casting snooze millis to Long
Build & Deploy PluriWave / Análisis de código (push) Successful in 38s
Build & Deploy PluriWave / Build APK + AAB release (push) Successful in 2m29s

Flutter's StandardMethodCodec encodes Dart ints that fit in 32 bits as
Java Integer, not Long. scheduleAlarm sends preNoticeAtMillis=0 when
rescheduling a snooze, which crashed the unchecked argument<Long>()
cast. Read all millis args as Number and convert with toLong().
This commit is contained in:
Javier Bautista Fernández
2026-07-02 10:52:07 +02:00
parent da9d32849c
commit 7cfde24811
@@ -80,8 +80,8 @@ class MainActivity : AudioServiceActivity() {
"scheduleAlarm" -> {
val id = call.argument<String>("id")
val title = call.argument<String>("title") ?: "PluriWave"
val triggerAtMillis = call.argument<Long>("triggerAtMillis")
val preNoticeAtMillis = call.argument<Long>("preNoticeAtMillis") ?: 0L
val triggerAtMillis = call.argument<Number>("triggerAtMillis")?.toLong()
val preNoticeAtMillis = call.argument<Number>("preNoticeAtMillis")?.toLong() ?: 0L
val stationName = call.argument<String>("stationName")
val stationUrl = call.argument<String>("stationUrl")
val fallbackSound = call.argument<String>("fallbackSound")
@@ -107,10 +107,10 @@ class MainActivity : AudioServiceActivity() {
minute = call.argument<Int>("minute"),
scheduleType = call.argument<String>("scheduleType"),
weekdays = weekdays,
oneShotDateMillis = call.argument<Long>("oneShotDateMillis"),
snoozeUntilMillis = call.argument<Long>("snoozeUntilMillis"),
snoozeOriginMillis = call.argument<Long>("snoozeOriginMillis"),
lastHandledAtMillis = call.argument<Long>("lastHandledAtMillis"),
oneShotDateMillis = call.argument<Number>("oneShotDateMillis")?.toLong(),
snoozeUntilMillis = call.argument<Number>("snoozeUntilMillis")?.toLong(),
snoozeOriginMillis = call.argument<Number>("snoozeOriginMillis")?.toLong(),
lastHandledAtMillis = call.argument<Number>("lastHandledAtMillis")?.toLong(),
soundOnVacation = call.argument<Boolean>("soundOnVacation") ?: true,
snoozeMinutes = call.argument<Int>("snoozeMinutes") ?: 5,
fallbackStationName = call.argument<String>("fallbackStationName"),