[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 Konstantin Pastbin
parent 9c9e8dac63
commit ba997f6c05

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();