diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-05-04 07:50:32 -1000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-05-04 07:50:32 -1000 |
| commit | afc7906c1a47fa9cf9dff5a247e6abae7e8aacbb (patch) | |
| tree | 9330474c859123845f4ed22283acaa6efc29587b /android-app | |
| parent | f9cf42e5087a747aae480544173127d6b0f8a956 (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')
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" /> |
