From 7cfde248112dd69ac7f78b85dd21a626eb5fdd61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20Bautista=20Fern=C3=A1ndez?= Date: Thu, 2 Jul 2026 10:52:07 +0200 Subject: [PATCH] fix(alarm): avoid ClassCastException casting snooze millis to Long 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() cast. Read all millis args as Number and convert with toLong(). --- .../kotlin/es/freetimelab/pluriwave/MainActivity.kt | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/android/app/src/main/kotlin/es/freetimelab/pluriwave/MainActivity.kt b/android/app/src/main/kotlin/es/freetimelab/pluriwave/MainActivity.kt index 35ec8f7..aad6470 100644 --- a/android/app/src/main/kotlin/es/freetimelab/pluriwave/MainActivity.kt +++ b/android/app/src/main/kotlin/es/freetimelab/pluriwave/MainActivity.kt @@ -80,8 +80,8 @@ class MainActivity : AudioServiceActivity() { "scheduleAlarm" -> { val id = call.argument("id") val title = call.argument("title") ?: "PluriWave" - val triggerAtMillis = call.argument("triggerAtMillis") - val preNoticeAtMillis = call.argument("preNoticeAtMillis") ?: 0L + val triggerAtMillis = call.argument("triggerAtMillis")?.toLong() + val preNoticeAtMillis = call.argument("preNoticeAtMillis")?.toLong() ?: 0L val stationName = call.argument("stationName") val stationUrl = call.argument("stationUrl") val fallbackSound = call.argument("fallbackSound") @@ -107,10 +107,10 @@ class MainActivity : AudioServiceActivity() { minute = call.argument("minute"), scheduleType = call.argument("scheduleType"), weekdays = weekdays, - oneShotDateMillis = call.argument("oneShotDateMillis"), - snoozeUntilMillis = call.argument("snoozeUntilMillis"), - snoozeOriginMillis = call.argument("snoozeOriginMillis"), - lastHandledAtMillis = call.argument("lastHandledAtMillis"), + oneShotDateMillis = call.argument("oneShotDateMillis")?.toLong(), + snoozeUntilMillis = call.argument("snoozeUntilMillis")?.toLong(), + snoozeOriginMillis = call.argument("snoozeOriginMillis")?.toLong(), + lastHandledAtMillis = call.argument("lastHandledAtMillis")?.toLong(), soundOnVacation = call.argument("soundOnVacation") ?: true, snoozeMinutes = call.argument("snoozeMinutes") ?: 5, fallbackStationName = call.argument("fallbackStationName"),