summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-07-02 00:59:44 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-07-02 00:59:44 +0000
commit801288968198814b77e0a740da72db3cfb584872 (patch)
tree32444c09d09ff527637052dd93ac609c393bb19f
parentaa15f13f2e3206e8ac7daff8cf78b3a686f242e8 (diff)
fix(ui): remove night mode FAB, fix fishing FAB occlusion, cap Ocean tiles at zoom 13
- 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 <noreply@anthropic.com>
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt20
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/ui/MapLayerManager.kt2
-rw-r--r--android-app/app/src/main/res/layout/activity_main.xml15
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" />
- <!-- Night mode toggle FAB -->
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/fab_night_mode"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="4dp"
- android:layout_marginEnd="12dp"
- android:contentDescription="Toggle night mode"
- app:srcCompat="@drawable/ic_night_mode"
- app:fabSize="mini"
- app:elevation="8dp"
- app:layout_constraintTop_toBottomOf="@id/fab_layers"
- app:layout_constraintEnd_toEndOf="parent" />
<!-- Crosshair — visible when not following (panning) -->
<ImageView
@@ -119,7 +106,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
- android:layout_marginBottom="80dp"
+ android:layout_marginBottom="136dp"
android:src="@drawable/ic_fish"
android:contentDescription="Fishing mode"
app:fabSize="mini"