Pad/cmd/pad
Greg Pomerantz 2bdff5c8e8 Flush the session snapshot on activity onStop (Android)
The OS provides no user-space hook for a process kill, but the
activity onStop fires on every 'going away' transition the framework
still controls: entering recents (the swipe-wipe path), app switch,
and home. Recents-wipe then kills the process right after onStop
returns, so that moment is the last reliable flush.

- Logic.FlushSession (any goroutine, buffered, non-blocking) ->
  flushSessionSave on the owner: persist the snapshot now, bypassing
  the rate limit (still honoring the restore-pending suppression).
  saveSessionIfChanged's persist tail is deduplicated into writeSession.
- JNI: GioActivity.onStop (patched into the smali by the build
  scripts, in sync) now calls the static native padFlushSession, which
  maps to the pad_flush_session cgo export.

Verified on emulator: the flush fires on home/app-switch and when the
app is backgrounded into recents before a kill; a state change made
inside the 250ms rate window and then backed out of the app persists
the latest position. A hard kill while foregrounded (force-stop,
memory pressure) still has no hook — the immediate edit saves plus the
250ms rate window bound that loss.
2026-08-20 18:24:43 -04:00
..
impl_android.go Flush the session snapshot on activity onStop (Android) 2026-08-20 18:24:43 -04:00
impl_other.go Flush the session snapshot on activity onStop (Android) 2026-08-20 18:24:43 -04:00
jni_android.c Flush the session snapshot on activity onStop (Android) 2026-08-20 18:24:43 -04:00
jni_android.h Fix selection-handle drags, menu anchoring, and left-edge back-gesture theft 2026-08-18 13:09:29 -04:00
main.go Flush the session snapshot on activity onStop (Android) 2026-08-20 18:24:43 -04:00
Permissions.java Refactor RealFileSystem to use WorkingDir, and ensure clean shutdown with FlushAll 2026-06-05 11:42:39 -04:00