Skip to content

Commit 110f1a9

Browse files
Fix cast exception on LocationSensorManager (#5954)
* Fix cast exception on LocationSensorManager * Update app/src/full/kotlin/io/homeassistant/companion/android/sensors/LocationSensorManager.kt Co-authored-by: Joris Pelgröm <[email protected]> * Filter zones w/o radius * Update app/src/full/kotlin/io/homeassistant/companion/android/sensors/LocationSensorManager.kt Co-authored-by: Joris Pelgröm <[email protected]> * Update app/src/full/kotlin/io/homeassistant/companion/android/sensors/LocationSensorManager.kt Co-authored-by: Joris Pelgröm <[email protected]> * Update app/src/full/kotlin/io/homeassistant/companion/android/sensors/LocationSensorManager.kt --------- Co-authored-by: Joris Pelgröm <[email protected]>
1 parent 4b9f001 commit 110f1a9

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

app/src/full/kotlin/io/homeassistant/companion/android/sensors/LocationSensorManager.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -928,18 +928,24 @@ class LocationSensorManager :
928928
if (updateLocationAs == SEND_LOCATION_AS_ZONE_ONLY) {
929929
val zones = getZones(serverId)
930930
val locationZone = zones
931-
.filter { !(it.attributes["passive"] as Boolean) && it.containsWithAccuracy(location) }
932-
.minByOrNull { (it.attributes["radius"] as Number).toFloat() }
931+
.filter {
932+
val passive = it.attributes["passive"] as? Boolean
933+
val radius = it.attributes["radius"] as? Number
934+
return@filter passive == false && radius != null && it.containsWithAccuracy(location)
935+
}
936+
.minByOrNull { (it.attributes["radius"] as? Number ?: Int.MAX_VALUE).toFloat() }
937+
938+
val locationName = locationZone?.entityId?.split(".")?.getOrNull(1) ?: ZONE_NAME_NOT_HOME
933939
updateLocation = UpdateLocation(
934940
gps = null,
935941
gpsAccuracy = null,
936-
locationName = locationZone?.entityId?.split(".")?.get(1) ?: ZONE_NAME_NOT_HOME,
942+
locationName = locationName,
937943
speed = null,
938944
altitude = null,
939945
course = null,
940946
verticalAccuracy = null,
941947
)
942-
updateLocationString = updateLocation.locationName!!
948+
updateLocationString = locationName
943949
} else {
944950
updateLocation = UpdateLocation(
945951
gps = listOf(location.latitude, location.longitude),

0 commit comments

Comments
 (0)