mirror of
https://github.com/home-assistant/android
synced 2024-10-02 22:34:46 +00:00
Store health services updates and send them with worker updates (#3076)
* Store health services updates and send them with worker updates * Switch update type to worker
This commit is contained in:
parent
0bccff65c3
commit
a390865cad
|
@ -48,7 +48,7 @@ class HealthServicesSensorManager : SensorManager {
|
|||
"mdi:stairs",
|
||||
unitOfMeasurement = "floors",
|
||||
entityCategory = SensorManager.ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
updateType = SensorManager.BasicSensor.UpdateType.INTENT
|
||||
updateType = SensorManager.BasicSensor.UpdateType.WORKER
|
||||
)
|
||||
private val dailyDistance = SensorManager.BasicSensor(
|
||||
"daily_distance",
|
||||
|
@ -58,7 +58,7 @@ class HealthServicesSensorManager : SensorManager {
|
|||
"mdi:map-marker-distance",
|
||||
unitOfMeasurement = "m",
|
||||
entityCategory = SensorManager.ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
updateType = SensorManager.BasicSensor.UpdateType.INTENT
|
||||
updateType = SensorManager.BasicSensor.UpdateType.WORKER
|
||||
)
|
||||
private val dailyCalories = SensorManager.BasicSensor(
|
||||
"daily_calories",
|
||||
|
@ -68,7 +68,7 @@ class HealthServicesSensorManager : SensorManager {
|
|||
"mdi:fire",
|
||||
unitOfMeasurement = "kcal",
|
||||
entityCategory = SensorManager.ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
updateType = SensorManager.BasicSensor.UpdateType.INTENT
|
||||
updateType = SensorManager.BasicSensor.UpdateType.WORKER
|
||||
)
|
||||
private val dailySteps = SensorManager.BasicSensor(
|
||||
"daily_steps",
|
||||
|
@ -78,7 +78,7 @@ class HealthServicesSensorManager : SensorManager {
|
|||
"mdi:shoe-print",
|
||||
unitOfMeasurement = "steps",
|
||||
entityCategory = SensorManager.ENTITY_CATEGORY_DIAGNOSTIC,
|
||||
updateType = SensorManager.BasicSensor.UpdateType.INTENT
|
||||
updateType = SensorManager.BasicSensor.UpdateType.WORKER
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -225,13 +225,10 @@ class HealthServicesSensorManager : SensorManager {
|
|||
}
|
||||
}
|
||||
|
||||
val hasFloorData = processDataPoint(floorsDaily, dailyFloors)
|
||||
val hasDistanceData = processDataPoint(distanceDaily, dailyDistance)
|
||||
val hasCalorieData = processDataPoint(caloriesDaily, dailyCalories)
|
||||
val hasStepData = processDataPoint(stepsDaily, dailySteps)
|
||||
|
||||
if (hasFloorData || hasDistanceData || hasCalorieData || hasStepData)
|
||||
SensorWorker.start(latestContext)
|
||||
processDataPoint(floorsDaily, dailyFloors)
|
||||
processDataPoint(distanceDaily, dailyDistance)
|
||||
processDataPoint(caloriesDaily, dailyCalories)
|
||||
processDataPoint(stepsDaily, dailySteps)
|
||||
}
|
||||
|
||||
override fun onPermissionLost() {
|
||||
|
@ -319,8 +316,7 @@ class HealthServicesSensorManager : SensorManager {
|
|||
private fun processDataPoint(
|
||||
dataPoints: List<IntervalDataPoint<*>>,
|
||||
basicSensor: SensorManager.BasicSensor
|
||||
): Boolean {
|
||||
var sendUpdate = false
|
||||
) {
|
||||
var latest = 0
|
||||
var lastIndex = 0
|
||||
val bootInstant =
|
||||
|
@ -333,7 +329,6 @@ class HealthServicesSensorManager : SensorManager {
|
|||
if (endTime.toEpochMilli() > latest) {
|
||||
latest = endTime.toEpochMilli().toInt()
|
||||
lastIndex = index
|
||||
sendUpdate = true
|
||||
}
|
||||
}
|
||||
onSensorUpdated(
|
||||
|
@ -344,6 +339,5 @@ class HealthServicesSensorManager : SensorManager {
|
|||
mapOf()
|
||||
)
|
||||
}
|
||||
return sendUpdate
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue