Skip to content

geolocator_watchos 0.2.1: pending requests share the most accurate accuracy - #32

Merged
MAUstaoglu merged 1 commit into
mainfrom
geolocator-most-accurate-pending
Oct 24, 2026
Merged

MAUstaoglu merged 1 commit into
mainfrom
geolocator-most-accurate-pending

Conversation

@MAUstaoglu

Copy link
Copy Markdown
Member

Fixes #18.

Bug. With several getCurrentPosition calls pending, each call passed its own accuracy to the shared single-request manager, so the last call's won. geolocator_apple 2.4.3 runs the shared request at the most accurate of the pending ones (MIN of CLLocationAccuracy) until the last one ends.

Fix. This package now does the same. The rule lives in Dart, where host tests reach it, ranked by the desiredAccuracy native sets for each LocationAccuracy:

Accuracy desiredAccuracy
bestForNavigation -2 m
best -1
high 10
medium 100
low 1000
lowest 3000
reduced 6380 km (kCLLocationAccuracyReduced, read on macOS)

Native is unchanged; its header comment now says what Dart passes.

Tests. Three new ones, all failing with the old rule:

  • the ranking across pending calls, and the reset after the last one ends;
  • reduced against lowest, and bestForNavigation against best;
  • a call that times out leaves the others at the accuracy they share.

flutter analyze lib test is clean, and 29 tests pass. Version 0.2.1 with a CHANGELOG entry; the README and PORTING_REPORT describe the rule.

…curacy

With several getCurrentPosition calls pending, each call passed its own
accuracy to the shared single-request manager, so the last call's won.
geolocator_apple 2.4.3 runs the shared request at the most accurate of the
pending ones (MIN of CLLocationAccuracy) until the last one ends, and so
does this package now (#18).

The rule lives in Dart, ranked by the desiredAccuracy native sets for each
LocationAccuracy: bestForNavigation -2 m, best -1, high 10, medium 100, low
1000, lowest 3000, reduced 6380 km (kCLLocationAccuracyReduced, read on
macOS). Native is unchanged; its header says what Dart passes.

Three tests: the ranking across pending calls and the reset after the last
one, reduced against lowest and bestForNavigation against best, and a call
that times out leaving the others at the accuracy they share. All three fail
with the old rule.
@MAUstaoglu
MAUstaoglu merged commit c6c1fea into main Oct 24, 2026
2 checks passed
@MAUstaoglu
MAUstaoglu deleted the geolocator-most-accurate-pending branch October 24, 2026 21:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

geolocator_watchos: with several getCurrentPosition calls pending, use the most accurate request

1 participant