diff options
| author | Peter Stone <thepeterstone@gmail.com> | 2026-04-07 06:42:51 +0000 |
|---|---|---|
| committer | Peter Stone <thepeterstone@gmail.com> | 2026-04-07 06:42:51 +0000 |
| commit | 5ee2dd8925afa858f466ae63db3f7df5c7516953 (patch) | |
| tree | 9a6e66a86746d58a4c283db45ee0401dff7945b8 /android-app/app/src/main/res | |
| parent | d98b441f2f9ca8b11a04406240dd19ecc0cac7ab (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.xml | 18 |
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" |
