summaryrefslogtreecommitdiff
path: root/android-app/app/src/main/res
diff options
context:
space:
mode:
Diffstat (limited to 'android-app/app/src/main/res')
-rw-r--r--android-app/app/src/main/res/drawable/ic_track_record.xml17
-rw-r--r--android-app/app/src/main/res/layout/activity_main.xml15
-rw-r--r--android-app/app/src/main/res/layout/fragment_anchor_watch.xml79
-rw-r--r--android-app/app/src/main/res/layout/fragment_map.xml14
-rwxr-xr-xandroid-app/app/src/main/res/values/strings.xml10
5 files changed, 134 insertions, 1 deletions
diff --git a/android-app/app/src/main/res/drawable/ic_track_record.xml b/android-app/app/src/main/res/drawable/ic_track_record.xml
new file mode 100644
index 0000000..9016369
--- /dev/null
+++ b/android-app/app/src/main/res/drawable/ic_track_record.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <!-- Outer ring -->
+ <path
+ android:fillColor="#00000000"
+ android:strokeColor="@android:color/white"
+ android:strokeWidth="2"
+ android:pathData="M12,12m-10,0a10,10 0,1 1,20 0a10,10 0,1 1,-20 0"/>
+ <!-- Filled red dot -->
+ <path
+ android:fillColor="#E53935"
+ android:pathData="M12,12m-6,0a6,6 0,1 1,12 0a6,6 0,1 1,-12 0"/>
+</vector>
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 66d1abe..68abc60 100644
--- a/android-app/app/src/main/res/layout/activity_main.xml
+++ b/android-app/app/src/main/res/layout/activity_main.xml
@@ -65,7 +65,20 @@
android:contentDescription="Man Overboard"
app:srcCompat="@android:drawable/ic_dialog_alert"
app:backgroundTint="@color/mob_button_background"
- app:layout_anchor="@id/bottom_navigation"
+ app:layout_anchor="@id/instrument_bottom_sheet"
app:layout_anchorGravity="top|start" />
+ <!-- Record Track Button -->
+ <com.google.android.material.floatingactionbutton.FloatingActionButton
+ android:id="@+id/fab_record_track"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_margin="16dp"
+ android:clickable="true"
+ android:focusable="true"
+ android:contentDescription="Record Track"
+ app:srcCompat="@drawable/ic_track_record"
+ app:layout_anchor="@id/instrument_bottom_sheet"
+ app:layout_anchorGravity="top|end" />
+
</androidx.coordinatorlayout.widget.CoordinatorLayout>
diff --git a/android-app/app/src/main/res/layout/fragment_anchor_watch.xml b/android-app/app/src/main/res/layout/fragment_anchor_watch.xml
new file mode 100644
index 0000000..96b9969
--- /dev/null
+++ b/android-app/app/src/main/res/layout/fragment_anchor_watch.xml
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="utf-8"?>
+<ScrollView
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <LinearLayout
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:orientation="vertical"
+ android:padding="16dp">
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/anchor_watch_title"
+ android:textSize="20sp"
+ android:textStyle="bold"
+ android:layout_marginBottom="24dp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/anchor_depth_label"
+ android:textSize="14sp"
+ android:layout_marginBottom="4dp" />
+
+ <EditText
+ android:id="@+id/etDepth"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/anchor_depth_hint"
+ android:inputType="numberDecimal"
+ android:importantForAutofill="no"
+ android:layout_marginBottom="16dp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/anchor_rode_label"
+ android:textSize="14sp"
+ android:layout_marginBottom="4dp" />
+
+ <EditText
+ android:id="@+id/etRodeOut"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:hint="@string/anchor_rode_hint"
+ android:inputType="numberDecimal"
+ android:importantForAutofill="no"
+ android:layout_marginBottom="24dp" />
+
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/anchor_suggested_radius_label"
+ android:textSize="14sp"
+ android:layout_marginBottom="4dp" />
+
+ <TextView
+ android:id="@+id/tvSuggestedRadius"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/anchor_suggested_radius_empty"
+ android:textSize="18sp"
+ android:textStyle="bold"
+ android:layout_marginBottom="4dp" />
+
+ <TextView
+ android:id="@+id/tvSuggestedRadiusHint"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:text="@string/anchor_suggested_radius_hint"
+ android:textSize="12sp"
+ android:alpha="0.6" />
+
+ </LinearLayout>
+
+</ScrollView>
diff --git a/android-app/app/src/main/res/layout/fragment_map.xml b/android-app/app/src/main/res/layout/fragment_map.xml
index e5b86b7..2b9b40d 100644
--- a/android-app/app/src/main/res/layout/fragment_map.xml
+++ b/android-app/app/src/main/res/layout/fragment_map.xml
@@ -27,4 +27,18 @@
android:textSize="14sp"
android:visibility="gone" />
+ <!-- Staleness banner -->
+ <TextView
+ android:id="@+id/tvStalenessWarning"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_gravity="bottom"
+ android:background="#FFCC00"
+ android:textColor="#000000"
+ android:textStyle="bold"
+ android:padding="8dp"
+ android:gravity="center"
+ android:visibility="gone"
+ android:text="" />
+
</FrameLayout>
diff --git a/android-app/app/src/main/res/values/strings.xml b/android-app/app/src/main/res/values/strings.xml
index 499ba8d..756f5e3 100755
--- a/android-app/app/src/main/res/values/strings.xml
+++ b/android-app/app/src/main/res/values/strings.xml
@@ -58,4 +58,14 @@
<string name="temp_fmt">%.0f °C</string>
<string name="precip_fmt">%d%%</string>
<string name="permission_rationale">Location is needed to show weather for your current position.</string>
+ <string name="nav_anchor_watch">Anchor</string>
+ <string name="anchor_watch_title">Anchor Watch</string>
+ <string name="anchor_depth_label">Depth (m)</string>
+ <string name="anchor_depth_hint">e.g. 5.0</string>
+ <string name="anchor_rode_label">Rode Out (m)</string>
+ <string name="anchor_rode_hint">e.g. 30.0</string>
+ <string name="anchor_suggested_radius_label">Suggested Watch Radius</string>
+ <string name="anchor_suggested_radius_empty">—</string>
+ <string name="anchor_suggested_radius_fmt">%.1f m</string>
+ <string name="anchor_suggested_radius_hint">Calculated from rode and depth using Pythagorean scope formula (2 m freeboard assumed)</string>
</resources>