From c6b7157d5b2e0c5baf3e396b9832ffddf1af03ea Mon Sep 17 00:00:00 2001 From: johan12345 Date: Thu, 22 Apr 2021 22:09:19 +0200 Subject: [PATCH] GoingElectricApi: avoid crash when opening hours don't match expected format (not sure why this happens) --- .../api/goingelectric/GoingElectricAdapters.kt | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricAdapters.kt b/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricAdapters.kt index 9dbe7d5c..339644d9 100644 --- a/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricAdapters.kt +++ b/app/src/main/java/net/vonforst/evmap/api/goingelectric/GoingElectricAdapters.kt @@ -1,5 +1,6 @@ package net.vonforst.evmap.api.goingelectric +import android.util.Log import com.squareup.moshi.* import java.lang.reflect.Type import java.time.Instant @@ -130,11 +131,18 @@ internal class HoursAdapter { return Hours(null, null) } else { val match = regex.find(str) - ?: throw IllegalArgumentException("$str does not match hours format") - return Hours( - LocalTime.parse(match.groupValues[1]), - LocalTime.parse(match.groupValues[2]) - ) + if (match != null) { + return Hours( + LocalTime.parse(match.groupValues[1]), + LocalTime.parse(match.groupValues[2]) + ) + } else { + // I cannot reproduce this case, but it seems to occur once in a while + Log.e("GoingElectricApi", "invalid hours value: " + str) + return Hours( + LocalTime.MIN, LocalTime.MIN + ) + } } }