diff --git a/app/src/main/java/io/homeassistant/companion/android/bluetooth/ble/IBeaconMonitor.kt b/app/src/main/java/io/homeassistant/companion/android/bluetooth/ble/IBeaconMonitor.kt index 0da7f9e21..dc2d8a0ca 100644 --- a/app/src/main/java/io/homeassistant/companion/android/bluetooth/ble/IBeaconMonitor.kt +++ b/app/src/main/java/io/homeassistant/companion/android/bluetooth/ble/IBeaconMonitor.kt @@ -58,14 +58,14 @@ class IBeaconMonitor { sendUpdate(context, sorted) return } - assert(sorted.count() == beacons.count()) beacons.forEachIndexed foreach@{ i, existingBeacon -> - - if (name(sorted[i].uuid, sorted[i].major, sorted[i].minor) != name(existingBeacon.uuid, existingBeacon.major, existingBeacon.minor) || // the distance order switched - kotlin.math.abs(sorted[i].distance - existingBeacon.distance) > 0.5 // the distance difference is greater than 0.5m - ) { - requireUpdate = true - return@foreach + if (i < sorted.size) { + if (name(sorted[i].uuid, sorted[i].major, sorted[i].minor) != name(existingBeacon.uuid, existingBeacon.major, existingBeacon.minor) || // the distance order switched + kotlin.math.abs(sorted[i].distance - existingBeacon.distance) > 0.5 // the distance difference is greater than 0.5m + ) { + requireUpdate = true + return@foreach + } } } if (requireUpdate) {