jonasoreland / runnerup

A open source run tracker
GNU General Public License v3.0
719 stars 271 forks source link

Incorrect time computed (on a slow phone) #1142

Closed dankleb closed 1 year ago

dankleb commented 1 year ago

The tracker always undercounts the amount of elapsed time when running. Sometimes it's really bad. For example, today it reported a 7:16/mi pace when in fact the real pace was over 9 minutes. Ususally, it's only off by a small amount. When looking at history, the map view shows the correct pace.

I took a look at the code, and my hunch is that computation of timeDiffNanos, which is using getElapsedRealtimeNanos() is making a wrong assumption, which gets exacerbated on a slow phone. I would suggest to refactor that code to read the absolute RTC directly from the phone and store that value between location updates. That way, if an update gets missed for whatever reason, it wouldn't matter. I'd try this myself, but I'm not an Android dev. Sorry. Happy to test it though.

gerhardol commented 1 year ago

Is this the same as #1138? If so, there is a beta available (just waiting for feedback to rollout to all).

dankleb commented 1 year ago

Yes, that looks like the same issue! Where can I get the beta? I can try it out.

gerhardol commented 1 year ago

Yes, that looks like the same issue! Where can I get the beta? I can try it out.

See https://github.com/jonasoreland/runnerup, there is a link to join the beta.

dankleb commented 1 year ago

I ran today with v2.5.1.0 and it seems to be working much better. reported time was 45:56. map time was 45:55.