From 801288968198814b77e0a740da72db3cfb584872 Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Thu, 2 Jul 2026 00:59:44 +0000 Subject: fix(ui): remove night mode FAB, fix fishing FAB occlusion, cap Ocean tiles at zoom 13 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove fab_night_mode from layout and all MainActivity code (nightModePrefs, isNightMode, fabNightMode field, onCreate theme apply, click handler, applyScreenBrightness) - Raise fab_fishing marginBottom 80dp→136dp so it clears the instrument sheet peek (120dp) - Set maxZoom=13 on Esri Ocean Base TileSet; tiles stop at z13, MapLibre overzooms rather than fetching blank 404 tiles at higher zoom levels Co-Authored-By: Claude Sonnet 4.6 --- .../src/main/kotlin/org/terst/nav/MainActivity.kt | 20 -------------------- .../main/kotlin/org/terst/nav/ui/MapLayerManager.kt | 2 +- .../app/src/main/res/layout/activity_main.xml | 15 +-------------- 3 files changed, 2 insertions(+), 35 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 93cefb1..dd14557 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 @@ -63,11 +63,6 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { private val featureFlags get() = (application as NavApplication).featureFlags - private val nightModePrefs by lazy { getSharedPreferences("night_mode", MODE_PRIVATE) } - private var isNightMode: Boolean - get() = nightModePrefs.getBoolean("enabled", false) - set(v) { nightModePrefs.edit().putBoolean("enabled", v).apply() } - private var mapView: MapView? = null private var mobHandler: MobHandler? = null private var instrumentHandler: InstrumentHandler? = null @@ -87,7 +82,6 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { private lateinit var fragmentContainer: FrameLayout private lateinit var fabRecordTrack: FloatingActionButton private lateinit var fabLayers: FloatingActionButton - private lateinit var fabNightMode: FloatingActionButton private lateinit var fabRecenter: MaterialButton private lateinit var bottomSheet: CardView private lateinit var bottomNav: BottomNavigationView @@ -167,7 +161,6 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { } override fun onCreate(savedInstanceState: Bundle?) { - if (isNightMode) setTheme(R.style.Theme_Nav_NightVision) super.onCreate(savedInstanceState) MapLibre.getInstance(this) setContentView(R.layout.activity_main) @@ -234,17 +227,10 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { fragmentContainer = findViewById(R.id.fragment_container) fabRecordTrack = findViewById(R.id.fab_record_track) fabLayers = findViewById(R.id.fab_layers) - fabNightMode = findViewById(R.id.fab_night_mode) fabRecenter = findViewById(R.id.fab_recenter) fabLayers.setOnClickListener { buildLayerPickerSheet().show(supportFragmentManager, "layer_picker") } - fabNightMode.setOnClickListener { - isNightMode = !isNightMode - applyScreenBrightness() - recreate() - } - applyScreenBrightness() bottomSheet = findViewById(R.id.instrument_bottom_sheet) bottomNav = findViewById(R.id.bottom_navigation) mapCrosshair = findViewById(R.id.map_crosshair) @@ -352,12 +338,6 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener { } - /** Updates all static unit label TextViews to match current [unitPrefs]. */ - private fun applyScreenBrightness() { - val lp = window.attributes - lp.screenBrightness = if (isNightMode) 0.3f else WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE - window.attributes = lp - } private fun applyUnitLabels() { unitHudSog.text = unitPrefs.speedUnitLabel() diff --git a/android-app/app/src/main/kotlin/org/terst/nav/ui/MapLayerManager.kt b/android-app/app/src/main/kotlin/org/terst/nav/ui/MapLayerManager.kt index 5902da1..b8b7ac8 100644 --- a/android-app/app/src/main/kotlin/org/terst/nav/ui/MapLayerManager.kt +++ b/android-app/app/src/main/kotlin/org/terst/nav/ui/MapLayerManager.kt @@ -109,7 +109,7 @@ class MapLayerManager(context: Context) { fun addToStyleBuilder(builder: Style.Builder) { // ── Sources ─────────────────────────────────────────────────────────── builder.withSource(RasterSource(SOURCE_OCEAN, - TileSet("2.2.0", URL_OCEAN), 256)) + TileSet("2.2.0", URL_OCEAN).also { it.setMaxZoom(13f) }, 256)) builder.withSource(RasterSource(SOURCE_SATELLITE, TileSet("2.2.0", URL_SATELLITE), 256)) diff --git a/android-app/app/src/main/res/layout/activity_main.xml b/android-app/app/src/main/res/layout/activity_main.xml index 1a54722..a1939c1 100644 --- a/android-app/app/src/main/res/layout/activity_main.xml +++ b/android-app/app/src/main/res/layout/activity_main.xml @@ -64,19 +64,6 @@ app:layout_constraintTop_toBottomOf="@id/nav_hud" app:layout_constraintStart_toStartOf="parent" /> - -