5a7c598610f845097a907dac09fb7dd5ce31d36b
T10 -- LocationSource abstraction plus FakeLocationSource, so the riskiest code in the app is testable with no device. Also found that geolocator ships its own Android foreground service with enableWakeLock, which could drop flutter_foreground_task and both its deprecation paths; deferred to T12 since it costs notification actions. T11 -- the pipeline. Kotlin's unbounded Channel plus blocking-receive writer becomes a List buffer plus a periodic Timer; Dart's event loop makes a blocking receive unnecessary and the guarantee is unchanged, since the fix callback only appends and returns. 24 tests. Found a real bug in the native app while porting. restoreAfterProcessDeath says it resumes into a new segment because the dead time is a real gap, but it calls resumeTrip, which adopts the segment a crash left open. After a pause that is right; after a crash nothing closed it. Points either side of the dead time then share a segment, and computeSummary -- the authoritative pass that overwrites the live estimate on completion -- measures straight through the gap. Reverting the fix and running the guard shows 111,217 m of phantom distance. Fixed via TripRepository.resumeIntoNewSegment, which closes the stale segment at its last recorded point rather than at now, so the dead time is not billed as ride time either. A deliberate, documented departure from parity: the code contradicted its own comment and produced silently wrong data. The first version of that guard passed with the bug still present -- the fixture used pause(), which closes the segment and stops reproducing the crash. Caught only by reverting the fix and checking the test failed. 145 tests passing, analyze clean. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
rippr
GPS ride recorder for motorcycles
Getting Started
This project is a starting point for a Flutter application.
A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the online documentation, which offers tutorials, samples, guidance on mobile development, and a full API reference.
Description
Languages
Dart
98.6%
Kotlin
0.7%
Shell
0.4%
Ruby
0.2%
Swift
0.1%