mirror of
https://github.com/home-assistant/android
synced 2024-10-06 16:19:38 +00:00
Only update geocode sensor if accuracy and time are valid, like location updates (#2802)
This commit is contained in:
parent
06fe9569cc
commit
da8263dc9c
|
@ -76,10 +76,20 @@ class GeocodeSensorManager : SensorManager {
|
|||
?: DEFAULT_MINIMUM_ACCURACY
|
||||
sensorDao.add(SensorSetting(geocodedLocation.id, SETTING_ACCURACY, minAccuracy.toString(), SensorSettingType.NUMBER))
|
||||
|
||||
if (location.accuracy <= minAccuracy)
|
||||
if (location.accuracy <= minAccuracy) {
|
||||
address = Geocoder(context)
|
||||
.getFromLocation(location.latitude, location.longitude, 1)
|
||||
.firstOrNull()
|
||||
} else {
|
||||
Log.w(TAG, "Skipping geocoded update as accuracy was not met: ${location.accuracy}")
|
||||
return@addOnSuccessListener
|
||||
}
|
||||
|
||||
val now = System.currentTimeMillis()
|
||||
if (now - location.time > 300000) {
|
||||
Log.w(TAG, "Skipping geocoded update due to old timestamp ${location.time} compared to $now")
|
||||
return@addOnSuccessListener
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
Log.e(TAG, "Failed to get geocoded location", e)
|
||||
}
|
||||
|
@ -99,7 +109,7 @@ class GeocodeSensorManager : SensorManager {
|
|||
)
|
||||
}.orEmpty()
|
||||
|
||||
var prettyAddress = address?.getAddressLine(0)
|
||||
val prettyAddress = address?.getAddressLine(0)
|
||||
|
||||
HighAccuracyLocationService.updateNotificationAddress(context, location, if (!prettyAddress.isNullOrEmpty()) prettyAddress else context.getString(commonR.string.unknown_address))
|
||||
|
||||
|
|
Loading…
Reference in a new issue