diff options
Diffstat (limited to 'android-app/app/src/main/res/layout')
3 files changed, 619 insertions, 13 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 757dbdb..54ad0cd 100644 --- a/android-app/app/src/main/res/layout/activity_main.xml +++ b/android-app/app/src/main/res/layout/activity_main.xml @@ -1,22 +1,542 @@ <?xml version="1.0" encoding="utf-8"?> -<androidx.coordinatorlayout.widget.CoordinatorLayout - xmlns:android="http://schemas.android.com/apk/res/android" +<androidx.constraintlayout.widget.ConstraintLayout 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"> + android:layout_height="match_parent" + tools:context=".MainActivity"> - <androidx.fragment.app.FragmentContainerView - android:id="@+id/fragment_container" + <org.maplibre.android.maps.MapView + android:id="@+id/mapView" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_marginBottom="56dp" /> + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toTopOf="parent" /> - <com.google.android.material.bottomnavigation.BottomNavigationView - android:id="@+id/bottom_nav" + <!-- Instrument Display Container --> + <androidx.constraintlayout.widget.ConstraintLayout + android:id="@+id/instrument_display_container" android:layout_width="match_parent" - android:layout_height="56dp" - android:layout_gravity="bottom" - android:background="?attr/colorSurface" - app:menu="@menu/bottom_nav_menu" /> + 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" /> + + <!-- 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" /> + + <!-- 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" + /> + + </androidx.constraintlayout.widget.ConstraintLayout> + + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/fab_tidal" + android:layout_width="wrap_content" + 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" /> + + <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" /> + + <!-- Anchor FAB --> + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/fab_anchor" + android:layout_width="wrap_content" + 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" /> + + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/fab_mob" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_margin="16dp" + android:clickable="true" + android:focusable="true" + android:contentDescription="@string/fab_mob_content_description" + 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" /> -</androidx.coordinatorlayout.widget.CoordinatorLayout> +</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file diff --git a/android-app/app/src/main/res/layout/activity_weather.xml b/android-app/app/src/main/res/layout/activity_weather.xml new file mode 100644 index 0000000..36ea871 --- /dev/null +++ b/android-app/app/src/main/res/layout/activity_weather.xml @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical"> + + <FrameLayout + android:id="@+id/fragment_container" + android:layout_width="match_parent" + android:layout_height="0dp" + android:layout_weight="1" /> + + <com.google.android.material.bottomnavigation.BottomNavigationView + android:id="@+id/bottom_nav" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:menu="@menu/bottom_nav_menu" + xmlns:app="http://schemas.android.com/apk/res-auto" /> + +</LinearLayout> diff --git a/android-app/app/src/main/res/layout/fragment_voice_log.xml b/android-app/app/src/main/res/layout/fragment_voice_log.xml new file mode 100644 index 0000000..e5f864c --- /dev/null +++ b/android-app/app/src/main/res/layout/fragment_voice_log.xml @@ -0,0 +1,66 @@ +<?xml version="1.0" encoding="utf-8"?> +<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" + android:layout_width="match_parent" + android:layout_height="match_parent" + android:orientation="vertical" + android:gravity="center" + android:padding="24dp"> + + <TextView + android:id="@+id/tv_status" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Tap microphone to log" + android:textSize="18sp" + android:textAlignment="center" + android:layout_marginBottom="16dp" /> + + <TextView + android:id="@+id/tv_recognized" + android:layout_width="match_parent" + android:layout_height="wrap_content" + android:text="" + android:textSize="16sp" + android:textAlignment="center" + android:padding="12dp" + android:minHeight="80dp" + android:background="#F5F5F5" + android:layout_marginBottom="24dp" /> + + <com.google.android.material.floatingactionbutton.FloatingActionButton + android:id="@+id/fab_mic" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:contentDescription="Start voice recognition" + android:src="@android:drawable/ic_btn_speak_now" + android:layout_marginBottom="16dp" /> + + <LinearLayout + android:id="@+id/ll_confirm_buttons" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:orientation="horizontal" + android:visibility="gone"> + + <Button + android:id="@+id/btn_save" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Save" + android:layout_marginEnd="8dp" /> + + <Button + android:id="@+id/btn_retry" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="Retry" /> + </LinearLayout> + + <TextView + android:id="@+id/tv_saved_confirmation" + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:text="" + android:textSize="14sp" + android:layout_marginTop="16dp" /> +</LinearLayout> |
