From f1589f82b9afec08d02bd90c502cd6cf755f8bb0 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Wed, 1 Jul 2026 06:53:19 +0000 Subject: feat(main): wire ATON repository + TSS into MainActivity layer sheet --- .../src/main/kotlin/org/terst/nav/MainActivity.kt | 27 ++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt b/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt index 7de7da8..93cefb1 100644 --- a/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt +++ b/android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt @@ -76,6 +76,8 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { private val loadedStyleFlow = MutableStateFlow(null) private lateinit var layerManager: MapLayerManager private var particleWindView: ParticleWindView? = null + private val atonRepository by lazy { org.terst.nav.ui.aton.AtonRepository(this) } + private var atonLoaded = false private var weatherLoaded = false private var windGridLoaded = false private var cameraIdleJob: Job? = null @@ -436,8 +438,21 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { val style = loadedStyleFlow.value ?: return@LayerPickerSheet layerManager.setSstEnabled(style, enabled) }, - onAtonChanged = { _ -> }, - onTssChanged = { _ -> }, + onAtonChanged = { enabled -> + layerManager.setAtonEnabled(enabled) + val style = loadedStyleFlow.value ?: return@LayerPickerSheet + mapHandler?.setAtonLayerVisible(style, enabled) + if (enabled) { + lifecycleScope.launch { + mapHandler?.updateAtonLayer(atonRepository.getFeatures()) + } + } + }, + onTssChanged = { enabled -> + layerManager.setTssEnabled(enabled) + val style = loadedStyleFlow.value ?: return@LayerPickerSheet + mapHandler?.setTssLayerVisible(style, enabled) + }, unitPrefs = unitPrefs, onUnitsChanged = { refreshUnits() } ) @@ -695,6 +710,8 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { mapHandler?.setupLayers(style, anchorBitmap, arrowBitmap, userBitmap) mapHandler?.setupWindLayer(style, windArrowBitmap) mapHandler?.setupFadLayer(style, layerManager.fadsEnabled) + mapHandler?.setupAtonLayer(style, layerManager.atonEnabled) + mapHandler?.setupTssLayer(style, this@MainActivity, layerManager.tssEnabled) mapHandler?.updateFadLayer(FadData.toFeatures()) mapHandler?.setupFishingLayer(style) // Eagerly load conditions at style-ready time so the HUD is never blank @@ -852,6 +869,12 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { .format(gpsData.latitude, gpsData.longitude, gpsData.sog, gpsData.cog)) viewModel.loadConditions(gpsData.latitude, gpsData.longitude) } + if (layerManager.atonEnabled && !atonLoaded) { + atonLoaded = true + lifecycleScope.launch { + mapHandler?.updateAtonLayer(atonRepository.getFeatures()) + } + } if (!weatherLoaded) { weatherLoaded = true viewModel.loadWeather(gpsData.latitude, gpsData.longitude) -- cgit v1.2.3