summaryrefslogtreecommitdiff
path: root/android-app/app/src/main/res/layout/activity_main.xml
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-03-23 04:16:32 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-03-23 04:16:32 +0000
commit77892d354eda07d98e2dfa5d00fca1ed1f808d8b (patch)
tree53c05f944d616eef5cbc3ee667ad6beb18665d23 /android-app/app/src/main/res/layout/activity_main.xml
parentf024a6a1cbcb68395fe1a15d4ac852c2be2416e6 (diff)
feat: refactor UI to BottomNavigationView with Safety and Doc fragments
Replace FAB-based navigation with a 4-tab BottomNavigationView (Map, Instruments, Log, Safety). Instruments use a collapsible bottom sheet; Log and Safety display as full-screen overlay fragments. - Add SafetyFragment with MOB and Anchor Watch controls - Add DocFragment for in-app markdown help (Markwon: core, tables, images) - Add layout_instruments_sheet with 3x3 instrument grid and PolarDiagramView - Add fragment_safety and fragment_doc layouts - Add vector drawables: ic_map, ic_instruments, ic_log, ic_safety, ic_close - Update activity_main.xml to CoordinatorLayout with bottom sheet + overlay - Fix: set isHideable=true before STATE_HIDDEN to avoid silent no-op from behavior_hideable=false default; restore false on Map/Instruments tabs Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'android-app/app/src/main/res/layout/activity_main.xml')
-rw-r--r--android-app/app/src/main/res/layout/activity_main.xml550
1 files changed, 38 insertions, 512 deletions
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 54ad0cd..c841fc3 100644
--- a/android-app/app/src/main/res/layout/activity_main.xml
+++ b/android-app/app/src/main/res/layout/activity_main.xml
@@ -1,330 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
-<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
+<androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity">
- <org.maplibre.android.maps.MapView
- android:id="@+id/mapView"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <!-- Instrument Display Container -->
+ <!-- Main Content Area -->
<androidx.constraintlayout.widget.ConstraintLayout
- android:id="@+id/instrument_display_container"
android:layout_width="match_parent"
android:layout_height="match_parent"
- android:background="@color/instrument_background"
- android:visibility="gone"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
-
- <!-- Guidelines for a 3x2 grid-like layout (6 sections) -->
- <androidx.constraintlayout.widget.Guideline
- android:id="@+id/guideline_vertical_33"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- app:layout_constraintGuide_percent="0.33" />
- <androidx.constraintlayout.widget.Guideline
- android:id="@+id/guideline_vertical_66"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="vertical"
- app:layout_constraintGuide_percent="0.66" />
- <androidx.constraintlayout.widget.Guideline
- android:id="@+id/guideline_horizontal_50"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- app:layout_constraintGuide_percent="0.5" />
-
- <!-- Wind Instrument -->
- <TextView
- android:id="@+id/label_wind"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_wind"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_aws"
- style="@style/InstrumentPrimaryValue"
- tools:text="--.-"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/label_wind"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/label_aws"
- style="@style/InstrumentSecondaryLabel"
- android:text="@string/instrument_label_aws"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/value_aws"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_tws"
- style="@style/InstrumentPrimaryValue"
- tools:text="--.-"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/label_aws"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/label_tws"
- style="@style/InstrumentSecondaryLabel"
- android:text="@string/instrument_label_tws"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/value_tws"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
-
- <!-- Compass Instrument -->
- <TextView
- android:id="@+id/label_compass"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_compass"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_hdg"
- style="@style/InstrumentPrimaryValue"
- tools:text="---"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toBottomOf="@+id/label_compass"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/label_hdg"
- style="@style/InstrumentSecondaryLabel"
- android:text="@string/instrument_label_hdg"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toBottomOf="@+id/value_hdg"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_cog"
- style="@style/InstrumentPrimaryValue"
- tools:text="---"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toBottomOf="@+id/label_hdg"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/label_cog"
- style="@style/InstrumentSecondaryLabel"
- android:text="@string/instrument_label_cog"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toBottomOf="@+id/value_cog"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintHorizontal_bias="0.5" />
-
- <!-- Boat Speed Instrument -->
- <TextView
- android:id="@+id/label_boatspeed"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_boatspeed"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintTop_toTopOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_bsp"
- style="@style/InstrumentPrimaryValue"
- tools:text="--.-"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintTop_toBottomOf="@+id/label_boatspeed"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/label_bsp"
- style="@style/InstrumentSecondaryLabel"
- android:text="@string/instrument_label_bsp"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintTop_toBottomOf="@+id/value_bsp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_sog"
- style="@style/InstrumentPrimaryValue"
- tools:text="--.-"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintTop_toBottomOf="@+id/label_bsp"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/label_sog"
- style="@style/InstrumentSecondaryLabel"
- android:text="@string/instrument_label_sog"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintTop_toBottomOf="@+id/value_sog"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
-
- <!-- VMG Instrument -->
- <TextView
- android:id="@+id/label_vmg"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_vmg"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="@+id/guideline_horizontal_50"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_vmg"
- style="@style/InstrumentPrimaryValue"
- tools:text="--.-"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/label_vmg"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
-
- <!-- Depth Instrument -->
- <TextView
- android:id="@+id/label_depth"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_depth"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toTopOf="@+id/guideline_horizontal_50"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_depth"
- style="@style/InstrumentPrimaryValue"
- tools:text="--.-"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toBottomOf="@+id/label_depth"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintHorizontal_bias="0.5" />
+ android:layout_marginBottom="56dp"> <!-- Space for BottomNav -->
- <!-- Polar % Instrument -->
- <TextView
- android:id="@+id/label_polar_pct"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_polar_pct"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintTop_toTopOf="@+id/guideline_horizontal_50"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_polar_pct"
- style="@style/InstrumentPrimaryValue"
- android:text="@string/placeholder_polar_value"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_66"
- app:layout_constraintTop_toBottomOf="@+id/label_polar_pct"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
+ <org.maplibre.android.maps.MapView
+ android:id="@+id/mapView"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent" />
- <!-- Barometer Instrument -->
- <TextView
- android:id="@+id/label_barometer"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_barometer"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/value_vmg"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/value_baro"
- style="@style/InstrumentPrimaryValue"
- tools:text="1013.2"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/label_barometer"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
- <TextView
- android:id="@+id/label_baro_unit"
- style="@style/InstrumentSecondaryLabel"
- android:text="hPa"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/value_baro"
- app:layout_constraintEnd_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintHorizontal_bias="0.5" />
-
- <!-- Barometer Trend -->
- <TextView
- android:id="@+id/label_trend"
- style="@style/InstrumentLabel"
- android:text="@string/instrument_label_trend"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toBottomOf="@+id/value_depth"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
-
- <org.terst.nav.BarometerTrendView
- android:id="@+id/barometer_trend_view"
- android:layout_width="0dp"
- android:layout_height="0dp"
- app:layout_constraintStart_toStartOf="@+id/guideline_vertical_33"
- app:layout_constraintTop_toBottomOf="@+id/label_trend"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintBottom_toBottomOf="@+id/label_baro_unit" />
-
- <!-- Polar Diagram View -->
- <org.terst.nav.PolarDiagramView
- android:id="@+id/polar_diagram_view"
- android:layout_width="0dp"
- android:layout_height="0dp"
- android:layout_margin="16dp"
- app:layout_constraintDimensionRatio="1:1"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/label_baro_unit"
- app:layout_constraintBottom_toBottomOf="parent"
- />
+ <!-- Overlay Fragment Container (for Log, Safety, Help) -->
+ <FrameLayout
+ android:id="@+id/fragment_container"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent"
+ android:visibility="gone"
+ android:background="?attr/colorSurface" />
</androidx.constraintlayout.widget.ConstraintLayout>
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/fab_tidal"
- android:layout_width="wrap_content"
+ <!-- Collapsible Instrument Bottom Sheet -->
+ <androidx.cardview.widget.CardView
+ android:id="@+id/instrument_bottom_sheet"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:clickable="true"
- android:focusable="true"
- android:contentDescription="Toggle Tidal Current Overlay"
- app:srcCompat="@android:drawable/ic_menu_directions"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintBottom_toTopOf="@+id/fab_toggle_instruments" />
+ app:behavior_hideable="false"
+ app:behavior_peekHeight="120dp"
+ app:cardElevation="16dp"
+ app:cardCornerRadius="24dp"
+ app:layout_behavior="com.google.android.material.bottomsheet.BottomSheetBehavior">
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/fab_toggle_instruments"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:clickable="true"
- android:focusable="true"
- android:contentDescription="Toggle Instrument Display"
- app:srcCompat="@android:drawable/ic_menu_rotate"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintBottom_toBottomOf="parent" />
+ <include layout="@layout/layout_instruments_sheet" />
- <!-- Anchor FAB -->
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/fab_anchor"
- android:layout_width="wrap_content"
+ </androidx.cardview.widget.CardView>
+
+ <!-- Bottom Navigation -->
+ <com.google.android.material.bottomnavigation.BottomNavigationView
+ android:id="@+id/bottom_navigation"
+ android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:clickable="true"
- android:focusable="true"
- android:contentDescription="@string/fab_anchor_content_description"
- app:srcCompat="@android:drawable/ic_menu_myplaces"
- app:backgroundTint="@color/anchor_button_background"
- app:layout_constraintBottom_toTopOf="@+id/fab_mob"
- app:layout_constraintStart_toStartOf="parent" />
+ android:layout_gravity="bottom"
+ android:background="?attr/colorSurface"
+ app:menu="@menu/bottom_nav_menu" />
+ <!-- Persistent MOB Button (Crucial for safety, always on top) -->
<com.google.android.material.floatingactionbutton.FloatingActionButton
android:id="@+id/fab_mob"
android:layout_width="wrap_content"
@@ -332,211 +59,10 @@
android:layout_margin="16dp"
android:clickable="true"
android:focusable="true"
- android:contentDescription="@string/fab_mob_content_description"
+ android:contentDescription="Man Overboard"
app:srcCompat="@android:drawable/ic_dialog_alert"
app:backgroundTint="@color/mob_button_background"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintBottom_toBottomOf="parent" />
-
- <!-- Anchor Configuration Container -->
- <androidx.constraintlayout.widget.ConstraintLayout
- android:id="@+id/anchor_config_container"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:background="#DD212121"
- android:padding="16dp"
- android:visibility="gone"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent">
-
- <TextView
- android:id="@+id/anchor_title"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/anchor_config_title"
- android:textColor="@android:color/white"
- android:textSize="20sp"
- android:textStyle="bold"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
-
- <TextView
- android:id="@+id/anchor_status_text"
- android:layout_width="0dp"
- android:layout_height="wrap_content"
- android:layout_marginTop="8dp"
- android:textColor="@android:color/white"
- android:textSize="16sp"
- tools:text="Anchor Inactive"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/anchor_title" />
-
- <LinearLayout
- android:id="@+id/radius_control_layout"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:layout_marginTop="16dp"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/anchor_status_text">
-
- <Button
- android:id="@+id/button_decrease_radius"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="-"
- android:textSize="20sp"
- android:minWidth="48dp"
- android:layout_marginEnd="8dp" />
-
- <TextView
- android:id="@+id/anchor_radius_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textColor="@android:color/white"
- android:textSize="18sp"
- android:textStyle="bold"
- tools:text="Radius: 50.0m"
- android:gravity="center_vertical" />
-
- <Button
- android:id="@+id/button_increase_radius"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="+"
- android:textSize="20sp"
- android:minWidth="48dp"
- android:layout_marginStart="8dp" />
-
- </LinearLayout>
-
- <Button
- android:id="@+id/button_set_anchor"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="16dp"
- android:text="@string/button_set_anchor"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/radius_control_layout" />
-
- <Button
- android:id="@+id/button_stop_anchor"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="16dp"
- android:text="@string/button_stop_anchor"
- android:backgroundTint="@android:color/holo_red_dark"
- app:layout_constraintStart_toEndOf="@+id/button_set_anchor"
- app:layout_constraintTop_toBottomOf="@+id/radius_control_layout"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintHorizontal_bias="0.5" />
-
- </androidx.constraintlayout.widget.ConstraintLayout>
-
- <!-- MOB Navigation Display Container -->
- <androidx.constraintlayout.widget.ConstraintLayout
- android:id="@+id/mob_navigation_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@color/instrument_background"
- android:visibility="gone"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent">
-
- <TextView
- android:id="@+id/mob_label_distance"
- style="@style/InstrumentLabel"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="@string/mob_label_distance"
- app:layout_constraintBottom_toTopOf="@+id/mob_value_distance"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintVertical_chainStyle="packed"
- app:layout_constraintTop_toTopOf="parent" />
-
- <TextView
- android:id="@+id/mob_value_distance"
- style="@style/InstrumentPrimaryValue"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- tools:text="125 m"
- android:textSize="80sp"
- app:layout_constraintBottom_toTopOf="@+id/mob_label_elapsed_time"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/mob_label_distance" />
-
- <TextView
- android:id="@+id/mob_label_elapsed_time"
- style="@style/InstrumentLabel"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="32dp"
- android:text="@string/mob_label_elapsed_time"
- app:layout_constraintBottom_toTopOf="@+id/mob_value_elapsed_time"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/mob_value_distance" />
-
- <TextView
- android:id="@+id/mob_value_elapsed_time"
- style="@style/InstrumentPrimaryValue"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- tools:text="00:01:23"
- android:textSize="60sp"
- app:layout_constraintBottom_toTopOf="@+id/mob_recovered_button"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/mob_label_elapsed_time" />
-
- <Button
- android:id="@+id/mob_recovered_button"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginTop="64dp"
- android:text="@string/mob_button_recovered"
- android:paddingStart="32dp"
- android:paddingEnd="32dp"
- android:paddingTop="16dp"
- android:paddingBottom="16dp"
- android:textSize="24sp"
- android:backgroundTint="@color/mob_button_background"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toBottomOf="@+id/mob_value_elapsed_time" />
-
- </androidx.constraintlayout.widget.ConstraintLayout>
-
- <!-- Voice Log FAB -->
- <com.google.android.material.floatingactionbutton.FloatingActionButton
- android:id="@+id/fab_voice_log"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_margin="16dp"
- android:clickable="true"
- android:focusable="true"
- android:contentDescription="Open Voice Log"
- android:src="@android:drawable/ic_btn_speak_now"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintBottom_toTopOf="@+id/fab_tidal" />
-
- <!-- Voice Log Fragment Container -->
- <FrameLayout
- android:id="@+id/voice_log_container"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:background="@android:color/white"
- android:visibility="gone"
- app:layout_constraintBottom_toBottomOf="parent"
- app:layout_constraintEnd_toEndOf="parent"
- app:layout_constraintStart_toStartOf="parent"
- app:layout_constraintTop_toTopOf="parent" />
+ app:layout_anchor="@id/bottom_navigation"
+ app:layout_anchorGravity="top|start" />
-</androidx.constraintlayout.widget.ConstraintLayout> \ No newline at end of file
+</androidx.coordinatorlayout.widget.CoordinatorLayout>