summaryrefslogtreecommitdiff
path: root/android-app
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-05-04 07:50:32 -1000
committerPeter Stone <thepeterstone@gmail.com>2026-05-04 07:50:32 -1000
commitafc7906c1a47fa9cf9dff5a247e6abae7e8aacbb (patch)
tree9330474c859123845f4ed22283acaa6efc29587b /android-app
parentf9cf42e5087a747aae480544173127d6b0f8a956 (diff)
feat: move Layers from bottom nav to dedicated FAB
Replaces the nav_layers bottom nav item with a mini FloatingActionButton anchored below the HUD, giving layers access without occupying a nav slot. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'android-app')
-rw-r--r--android-app/app/src/main/kotlin/org/terst/nav/MainActivity.kt10
-rw-r--r--android-app/app/src/main/res/layout/activity_main.xml14
-rw-r--r--android-app/app/src/main/res/menu/bottom_nav_menu.xml4
3 files changed, 19 insertions, 9 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 eaab575..da96e98 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
@@ -64,6 +64,7 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener {
private lateinit var bottomSheetBehavior: BottomSheetBehavior<View>
private lateinit var fragmentContainer: FrameLayout
private lateinit var fabRecordTrack: FloatingActionButton
+ private lateinit var fabLayers: FloatingActionButton
private lateinit var fabRecenter: MaterialButton
private lateinit var bottomSheet: CardView
private lateinit var bottomNav: BottomNavigationView
@@ -126,7 +127,11 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener {
private fun initializeUI() {
fragmentContainer = findViewById(R.id.fragment_container)
fabRecordTrack = findViewById(R.id.fab_record_track)
+ fabLayers = findViewById(R.id.fab_layers)
fabRecenter = findViewById(R.id.fab_recenter)
+ fabLayers.setOnClickListener {
+ buildLayerPickerSheet().show(supportFragmentManager, "layer_picker")
+ }
bottomSheet = findViewById(R.id.instrument_bottom_sheet)
bottomNav = findViewById(R.id.bottom_navigation)
mapCrosshair = findViewById(R.id.map_crosshair)
@@ -292,11 +297,6 @@ class MainActivity : AppCompatActivity(), SafetyFragment.SafetyListener {
bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
true
}
- R.id.nav_layers -> {
- buildLayerPickerSheet().show(supportFragmentManager, "layer_picker")
- bottomNav.post { bottomNav.selectedItemId = R.id.nav_map }
- true
- }
R.id.nav_log -> {
showOverlay(VoiceLogFragment())
bottomSheetBehavior.isHideable = true
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 4150b2e..6832daa 100644
--- a/android-app/app/src/main/res/layout/activity_main.xml
+++ b/android-app/app/src/main/res/layout/activity_main.xml
@@ -39,6 +39,20 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
+ <!-- Layers FAB — map layer picker -->
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/fab_layers"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="8dp"
+ android:layout_marginEnd="12dp"
+ android:contentDescription="Layers"
+ app:srcCompat="@drawable/ic_layers"
+ app:fabSize="mini"
+ app:elevation="8dp"
+ app:layout_constraintTop_toBottomOf="@id/nav_hud"
+ app:layout_constraintEnd_toEndOf="parent" />
+
<!-- Crosshair — visible when not following (panning) -->
<ImageView
android:id="@+id/map_crosshair"
diff --git a/android-app/app/src/main/res/menu/bottom_nav_menu.xml b/android-app/app/src/main/res/menu/bottom_nav_menu.xml
index 5c6de7e..4bbf8b6 100644
--- a/android-app/app/src/main/res/menu/bottom_nav_menu.xml
+++ b/android-app/app/src/main/res/menu/bottom_nav_menu.xml
@@ -5,10 +5,6 @@
android:icon="@drawable/ic_map"
android:title="Map" />
<item
- android:id="@+id/nav_layers"
- android:icon="@drawable/ic_layers"
- android:title="Layers" />
- <item
android:id="@+id/nav_log"
android:icon="@drawable/ic_log"
android:title="Log" />