Greyson Parrelli
36f7c60a99
Improve camera mixed mode handling and clean up dead code.
2026-03-31 16:20:26 -03:00
Greyson Parrelli
bf28b90e89
Fix volume key interference during camera video recording.
2026-03-31 16:20:25 -03:00
Greyson Parrelli
ef6e5abc17
Add retry logic for camera binding failures.
2026-03-25 16:31:08 -04:00
Greyson Parrelli
cd3e9a4009
Add some tests for CameraScreenViewModel.
2026-03-11 15:41:44 -04:00
Greyson Parrelli
e88f63f54d
Improve video capture experience when we can't multi-bind.
2026-03-11 15:41:42 -04:00
Greyson Parrelli
3c5774960a
Automatically reduce camera use cases on error.
2026-03-11 15:41:41 -04:00
Greyson Parrelli
c37bb96aab
Only bind camera use cases that the device supports.
...
The new camera implementation always bound all four CameraX use cases
(preview, image capture, video capture, and image analysis) regardless
of device capabilities. On devices with LEGACY camera hardware level,
this causes image capture to fail with "Capture request failed with
reason ERROR" because the hardware cannot handle that many simultaneous
use cases.
This change makes video capture and QR scanning use case binding
conditional based on CameraXModePolicy, which already determines device
capabilities. Video capture is only bound when the device supports mixed
mode (image + video simultaneously). QR scanning analysis is only bound
when explicitly requested.
2026-02-25 19:38:12 -05:00
Greyson Parrelli
d28fc98cfd
Add ability to use volume buttons to capture image/video.
2026-02-24 16:50:01 -05:00
Greyson Parrelli
4ed0056d2a
Preserve user zoom level when starting video recording.
...
Remove the unconditional zoom reset to 1x at the start of video
recording so that any pinch-to-zoom the user applied before recording
is maintained.
2026-02-24 16:50:00 -05:00
Greyson Parrelli
b48b1f031e
Fix gradle format task.
2026-02-18 15:48:16 -04:00
Greyson Parrelli
8d44640377
Prompt for microphone permission when recording video in new camera.
...
Previously, the new camera would silently record video without audio
when microphone permission was missing. Now it shows the same rationale
dialog and permanent denial flow as the old camera.
2026-02-09 15:52:03 -05:00
Greyson Parrelli
cbcbe3f564
Use OrientationEventListener to update CameraX target rotation.
2026-02-09 14:15:52 -05:00
Greyson Parrelli
698923423f
Downsample gallery thumbnail to display size in camera HUD.
...
Was loading full size image, potentially causing OOM.
2026-02-09 12:01:40 -05:00
Greyson Parrelli
bda9664cb9
Check audio permission before enabling audio in video recording.
2026-02-06 16:11:09 -05:00
Greyson Parrelli
9c055a35a9
Increase flash toggle button hitbox in new camera.
2026-02-06 15:59:18 -05:00
Greyson Parrelli
bf794c41da
Maximize screen brightness during selfie flash in new camera.
2026-02-06 15:59:18 -05:00
Greyson Parrelli
de698c8a1a
Enable torch during video recording in new camera.
2026-02-06 15:59:17 -05:00
Greyson Parrelli
f972382f5e
Fix tap-to-focus using wrong coordinate space in new camera.
...
We were using raw coordinates. Now we transform them appropriately
to the correct coordinate space.
2026-02-06 15:35:47 -05:00
Greyson Parrelli
73b0331884
Fix video recording zoom starting at ultrawide instead of 1x.
2026-02-06 15:29:36 -05:00
Greyson Parrelli
2248abb749
Persist camera lens selection across sessions.
2026-02-06 15:18:50 -05:00
Greyson Parrelli
13435c0b54
Add double-tap gesture on viewfinder to switch cameras.
2026-02-06 15:17:08 -05:00
Greyson Parrelli
5575f75118
Block camera switching during video recording.
2026-02-06 15:17:04 -05:00
Greyson Parrelli
f53ae66fc9
Rebuild CameraXFragment to use a brand new camera.
2026-01-31 22:21:40 -05:00