[android] Fix avg speed display edge case, simplify code

Signed-off-by: gekeleda <git@davidgekeler.eu>
This commit is contained in:
gekeleda
2025-10-07 13:13:21 +02:00
committed by map-per
parent 079d51f4af
commit 292f84faa8

View File

@@ -510,16 +510,13 @@ public class LocationHelper implements BaseLocationProvider.Listener
if (Double.isNaN(mTimeElapsedAtLastAverage))
updateSpeedHistory();
double timeDiff = mSavedLocation.getElapsedRealtimeNanos() * 1.0E-9 - mTimeElapsedAtLastAverage;
if (timeDiff < SPEED_AVERAGING_TIME)
if (timeDiff < SPEED_AVERAGING_TIME || mSpeedHistory.isEmpty())
{
if (!Float.isNaN(mLastAverageSpeed))
return mLastAverageSpeed;
else
return mSavedLocation.getSpeed();
}
else if (mSpeedHistory.isEmpty())
// If no measurements since last average, return 0
return 0.0F;
else {
mLastAverageSpeed = mSpeedHistory.stream().reduce(0.0F, Float::sum);
mLastAverageSpeed /= mSpeedHistory.size();