summaryrefslogtreecommitdiff
path: root/android-app/app/src/main/res
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-04-07 06:42:51 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-04-07 06:42:51 +0000
commit5ee2dd8925afa858f466ae63db3f7df5c7516953 (patch)
tree9a6e66a86746d58a4c283db45ee0401dff7945b8 /android-app/app/src/main/res
parentd98b441f2f9ca8b11a04406240dd19ecc0cac7ab (diff)
fix(track): fix silent GPX save failure + add stop friction + quit buttonmain
TrackStorage: openOutputStream null returned true (file never written). Added IS_PENDING flag to fix Android 10-11 race where insert succeeds but file isn't physically created yet. Added storage-mounted guard. TrackRepository now logs save failures. Stop tracking now requires a long press (haptic feedback) — prevents accidental mid-sail stops from a single tap. Quit button (top-right, tonal X) stops LocationService and calls finishAffinity(). Prompts if a track is in progress. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Diffstat (limited to 'android-app/app/src/main/res')
-rw-r--r--android-app/app/src/main/res/layout/activity_main.xml18
1 files changed, 18 insertions, 0 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 b8df5c9..0734476 100644
--- a/android-app/app/src/main/res/layout/activity_main.xml
+++ b/android-app/app/src/main/res/layout/activity_main.xml
@@ -30,6 +30,24 @@
android:visibility="gone"
android:background="?attr/colorSurface" />
+ <!-- Quit button — stops all services and exits -->
+ <com.google.android.material.button.MaterialButton
+ android:id="@+id/btn_quit"
+ style="@style/Widget.Material3.Button.IconButton.Filled.Tonal"
+ android:layout_width="40dp"
+ android:layout_height="40dp"
+ android:alpha="0.7"
+ app:icon="@drawable/ic_close"
+ app:iconSize="18dp"
+ app:iconGravity="textStart"
+ app:iconPadding="0dp"
+ app:cornerRadius="20dp"
+ app:elevation="4dp"
+ app:layout_constraintTop_toTopOf="parent"
+ app:layout_constraintEnd_toEndOf="parent"
+ android:layout_marginTop="16dp"
+ android:layout_marginEnd="16dp" />
+
<com.google.android.material.button.MaterialButton
android:id="@+id/fab_recenter"
android:layout_width="wrap_content"