[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)) if (Double.isNaN(mTimeElapsedAtLastAverage))
updateSpeedHistory(); updateSpeedHistory();
double timeDiff = mSavedLocation.getElapsedRealtimeNanos() * 1.0E-9 - mTimeElapsedAtLastAverage; double timeDiff = mSavedLocation.getElapsedRealtimeNanos() * 1.0E-9 - mTimeElapsedAtLastAverage;
if (timeDiff < SPEED_AVERAGING_TIME) if (timeDiff < SPEED_AVERAGING_TIME || mSpeedHistory.isEmpty())
{ {
if (!Float.isNaN(mLastAverageSpeed)) if (!Float.isNaN(mLastAverageSpeed))
return mLastAverageSpeed; return mLastAverageSpeed;
else else
return mSavedLocation.getSpeed(); return mSavedLocation.getSpeed();
} }
else if (mSpeedHistory.isEmpty())
// If no measurements since last average, return 0
return 0.0F;
else { else {
mLastAverageSpeed = mSpeedHistory.stream().reduce(0.0F, Float::sum); mLastAverageSpeed = mSpeedHistory.stream().reduce(0.0F, Float::sum);
mLastAverageSpeed /= mSpeedHistory.size(); mLastAverageSpeed /= mSpeedHistory.size();