From afc7906c1a47fa9cf9dff5a247e6abae7e8aacbb Mon Sep 17 00:00:00 2001 From: Peter Stone Date: Mon, 4 May 2026 07:50:32 -1000 Subject: 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 --- .../app/src/main/kotlin/org/terst/nav/MainActivity.kt | 10 +++++----- android-app/app/src/main/res/layout/activity_main.xml | 14 ++++++++++++++ android-app/app/src/main/res/menu/bottom_nav_menu.xml | 4 ---- 3 files changed, 19 insertions(+), 9 deletions(-) (limited to 'android-app/app') 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 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" /> + + + -