also looking at this
feat(ios): haptic, whose reason expired when ios_config landed
#134
18 files
+562
-163
| @@ -1236,16 +1236,20 @@ const key_always = "NSLocationAlwaysAndWhenInUseUsageDescription"; | ||
| 1236 | 1236 | /// Decide, from evidence in the running process, whether geolocation was |
| 1237 | 1237 | /// configured and which prompt to ask for. |
| 1238 | 1238 | /// |
| 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 | |
| 1247 | 1251 | /// 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. | |
| 1249 | 1253 | /// |
| 1250 | 1254 | /// Two divergences, both real and neither hideable: |
| 1251 | 1255 | /// |