Skip to content

Movie Tickets v1.16.0

Choose a tag to compare

@github-actions github-actions released this 28 Aug 02:28
· 3 commits to main since this release

Burst capture

Shoot the whole stack, then leave. The camera used to take one photograph and navigate away, so four tickets to one game meant four trips through ADD. It now stays up until you press DONE, and every shot in the visit lands on one stack.

A Sony-style buffer. A thin vertical bar exactly as tall as the numeral beside it, filling from the bottom as the queue drains, with the count going down rather than up. Past 8 unread shots the shutter says BUFFER FULL until it drains.

Fixes

The lag, and the black screen after about the third shot. Three quick taps did three full-resolution JPEG encodes on the main thread and started three ingests at once — an OutOfMemoryError on this phone, and an OOM inside CameraX unbinds the camera, which is a preview that never comes back.

  • Encoding runs off the main thread on its own single-parallelism dispatcher, so one frame is resident instead of all of them.
  • Reading is serialised too: four shots no longer mean four model calls, four ZXing decodes and four full-size bitmaps competing with the preview.
  • The frame grab and the encode are both guarded — a shot that cannot be taken costs that shot, not the camera.
  • The camera binds in a DisposableEffect and unbinds on the way out, so leaving the screen releases it.

Grouping. A burst shot falls back to the burst's first pass only when the title match found nothing and the dates do not disagree — so a badly read photo joins the three it was taken with instead of landing alone as Ticket 4f2a, and a genuinely different event still keeps its own group. The movie picker waits for the burst to end rather than opening over the viewfinder.

Error chip

Errors now arrive as a small chip in the corner instead of the full sheet across the screen. Three things raise it — a shake, a crash last run, a failure the app noticed itself — and only a tap opens the sheet. Ignore it and it fades; an unsent crash log stays on disk for the next launch.

Full Changelog: v1.15.1...v1.16.0