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<Long>() cast. Read all millis args as Number and convert with toLong().
This commit is contained in:
@@ -80,8 +80,8 @@ class MainActivity : AudioServiceActivity() {
|
|||||||
"scheduleAlarm" -> {
|
"scheduleAlarm" -> {
|
||||||
val id = call.argument<String>("id")
|
val id = call.argument<String>("id")
|
||||||
val title = call.argument<String>("title") ?: "PluriWave"
|
val title = call.argument<String>("title") ?: "PluriWave"
|
||||||
val triggerAtMillis = call.argument<Long>("triggerAtMillis")
|
val triggerAtMillis = call.argument<Number>("triggerAtMillis")?.toLong()
|
||||||
val preNoticeAtMillis = call.argument<Long>("preNoticeAtMillis") ?: 0L
|
val preNoticeAtMillis = call.argument<Number>("preNoticeAtMillis")?.toLong() ?: 0L
|
||||||
val stationName = call.argument<String>("stationName")
|
val stationName = call.argument<String>("stationName")
|
||||||
val stationUrl = call.argument<String>("stationUrl")
|
val stationUrl = call.argument<String>("stationUrl")
|
||||||
val fallbackSound = call.argument<String>("fallbackSound")
|
val fallbackSound = call.argument<String>("fallbackSound")
|
||||||
@@ -107,10 +107,10 @@ class MainActivity : AudioServiceActivity() {
|
|||||||
minute = call.argument<Int>("minute"),
|
minute = call.argument<Int>("minute"),
|
||||||
scheduleType = call.argument<String>("scheduleType"),
|
scheduleType = call.argument<String>("scheduleType"),
|
||||||
weekdays = weekdays,
|
weekdays = weekdays,
|
||||||
oneShotDateMillis = call.argument<Long>("oneShotDateMillis"),
|
oneShotDateMillis = call.argument<Number>("oneShotDateMillis")?.toLong(),
|
||||||
snoozeUntilMillis = call.argument<Long>("snoozeUntilMillis"),
|
snoozeUntilMillis = call.argument<Number>("snoozeUntilMillis")?.toLong(),
|
||||||
snoozeOriginMillis = call.argument<Long>("snoozeOriginMillis"),
|
snoozeOriginMillis = call.argument<Number>("snoozeOriginMillis")?.toLong(),
|
||||||
lastHandledAtMillis = call.argument<Long>("lastHandledAtMillis"),
|
lastHandledAtMillis = call.argument<Number>("lastHandledAtMillis")?.toLong(),
|
||||||
soundOnVacation = call.argument<Boolean>("soundOnVacation") ?: true,
|
soundOnVacation = call.argument<Boolean>("soundOnVacation") ?: true,
|
||||||
snoozeMinutes = call.argument<Int>("snoozeMinutes") ?: 5,
|
snoozeMinutes = call.argument<Int>("snoozeMinutes") ?: 5,
|
||||||
fallbackStationName = call.argument<String>("fallbackStationName"),
|
fallbackStationName = call.argument<String>("fallbackStationName"),
|
||||||
|
|||||||
Reference in New Issue
Block a user