@tapioI do not agree. Some value "30 s" has nothing to do in UI. Firstly, no one should be interested in such value. The app works or not, that's the point. I told you this to give a better overview of what happened under the hood. And secondly, I really plan to make this value more dynamic, so there won't be a single "30-sec" value.
POI database should work the same, no matter which map version you have. Do you have correct naming, same as your map?
@Graf Geodoes problem with recalculation in the field happen also when the screen is on? Because if you have Android 8.x, there is a possible problem on some devices in case, the screen is turned off.
@Mipsagree that fake GPS or any similar app is definitelly better and more robust system how to test. But, a lot more complicated (more steps).
Travel time: you mean travel time at bottom panel? In case of GraphHopper routing, times on route segments is estimated on their server. From my experience, they are usually quite precise.
In case of BRouter, there are no time and Locus Map know absolutely nothing about the route itself (surface, city/highway, ...). Just a routing type and is able to compute elevation. So app internally records your traveling speed during track recording or navigation for known activity and then use this average speed for a time estimate. Time is something like an "average" from the last 60 minutes. So these times are usually fine for a hike, where your speed is around the certain average value. In case of a bike, it may be worst mainly if you change a surface or bikes. In case of the car, these values are usually useless, mainly if you combine hour of a ride over the city and then you plan route over highway

. Hope my explanation is clear.