ReviewOS

also looking at this

craft-native/craft

feat(ios): haptic, whose reason expired when ios_config landed

#134
Merged glennmichael123 wants to merge fix/sdk-event-map into main
18 files +562 -163
packages/zig/src/bridge_mobile_location.zigmodified+13-9
Changes to packages/zig/src/bridge_mobile_location.zig
@@ -1236,16 +1236,20 @@ const key_always = "NSLocationAlwaysAndWhenInUseUsageDescription";
12361236/// Decide, from evidence in the running process, whether geolocation was
12371237/// configured and which prompt to ask for.
12381238///
1239/// Neither `config.enableGeolocation` nor `config.enableBackgroundLocation` has
1240/// a Zig mirror — they appear nowhere in `packages/zig/src` outside a comment —
1241/// which is the same gap `bridge_mobile_watch.zig` documents for
1242/// `enableWatchApp`. Rather than guess, this reads the Info.plist keys the
1243/// generator writes from exactly those flags. Apple requires the usage
1244/// description before authorization may be requested at all, so its absence is
1245/// both the honest signal that the app was never built for location and the
1246/// condition under which requesting would be illegitimate; the refusal happens
1239/// Both `config.enableGeolocation` and `config.enableBackgroundLocation` are
1240/// read directly now — `ios_config.gateFor` maps `getCurrentPosition`,
1241/// `watchPosition` and `startLocationRecording` to `.geolocation`, and
1242/// `ios_dispatch.offerToModules` answers `CAPABILITY_DISABLED` before this
1243/// module is asked. This used to say neither had a Zig mirror and that they
1244/// appeared nowhere in `packages/zig/src`; `ios_config.zig`'s own header names
1245/// this file as one of the workarounds it replaced.
1246///
1247/// The plist read below stays, and not as a config proxy. Apple requires the
1248/// usage description before authorization may be requested at all, so its
1249/// absence is the condition under which requesting would be illegitimate — a
1250/// precondition of the API rather than evidence of a flag. The refusal happens
12471251/// before any request is made, so what the system would otherwise do never
1248/// arises.
1252/// arises, and which of the two keys is present still selects the prompt.
12491253///
12501254/// Two divergences, both real and neither hideable:
12511255///