76cf4c6d7e
Bound the geotag fix with a 2 s deadline and prewarm it at launch, queue a shot pressed before the camera session binds and replay it, pass the options argument capturePhotoToFile requires, save through the native path so the media permission is not needed, and release the Skia surface and bitmap after every export. Store the JS bundle uncompressed and load the export pipeline on demand. Note in RELEASE_NOTES.md that none of this moved the tap threshold.
1.2 KiB
1.2 KiB
Release notes
1.2.3 (versionCode 5)
Shutter
- The shutter no longer waits on GPS: the fix is prewarmed at launch and bounded by a 2 s deadline, so a tagged shot reaches the gallery in about 3 s instead of 12–25 s.
- A shot pressed before the camera session binds is queued and replayed, not dropped.
- Fixes "Capture Failed — Could not take the photo.":
capturePhotoToFileneeds both its settings and options arguments. - Saving to the gallery no longer depends on the media permission — the native save runs first, MediaLibrary only as a fallback.
Memory
- The Skia surface and bitmap are released after every export, dropping one full-resolution copy per rotation; the watermark font is parsed once.
Cold start
- The JS bundle is stored uncompressed in the APK.
- The export pipeline and the recipe/GPS helpers load on demand.
- Hidden modals render nothing.
Measured on a vivo V2430 (Android 16): the cold-start work did not move the tap threshold (the earliest reliable tap is still ~1.9 s). The remaining time is spent before app JS — process init, SoLoader, Hermes eval. Trimming the bundle is the next candidate; lucide-react-native currently ships the whole icon set.