summaryrefslogtreecommitdiff
path: root/android-app
diff options
context:
space:
mode:
Diffstat (limited to 'android-app')
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt27
1 files 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<Style?>(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)