mirror of
https://github.com/meshtastic/Meshtastic-Android.git
synced 2026-09-21 11:15:18 -04:00
BuildUtils, Dispatchers, NetworkUtils, DecimalFormatting, LocalizedUnitFormatting, DateFormatter, MeasurementSystem -- backed by the browser's Intl API (NumberFormat, DateTimeFormat, RelativeTimeFormat) and navigator.language, via a single interop layer (JsIntlApi.kt) isolating every external/js() declaration from the plain-Kotlin actuals above it, mirroring core:ble's WebBluetoothApi.kt discipline. Uses the current documented Kotlin/Wasm JS interop mechanism (external fun/class/interface extending JsAny, primitive Kotlin types crossing directly as parameters) -- not @JsFun, which JetBrains' own docs mark as being deprecated. Honest, documented platform gaps rather than silent approximations: no browser API exists for a measurement-system or temperature-unit override the way Android 14+ exposes one, so region-based inference (reusing core:common's own measurementSystemForRegion) is the best available signal, same as the JVM/desktop actual's own fallback below Android API 28. Verified via gradle-runner: compileKotlinWasmJs + compileTestKotlinWasmJs PASS; full regression on core:common and core:ble (jvm/android/iOS compiles, allTests, detekt, spotlessCheck) all PASS -- no regressions from adding this target.