Is your feature request related to a problem? Please describe.
Taking a photo for a chat opens the system camera app. After the shot, I confirm it on the camera's own ✕/✓ screen, and only then the attachment preview opens. Before sending, I cannot crop, rotate or mark up the photo in Talk.
I know #2461 and #6429 replaced the built-in photo camera with the system camera. So I would like to ask first: would you accept an in-app camera again, now on CameraX? The video message recorder from #6812 already uses CameraX, and this proposal reuses that code.
Describe the solution you'd like
In-app camera (CameraX), opened from the camera tile of the attachment sheet (#6814) and from "add more" in the preview:
- Full-screen preview, shutter, front/back camera, flash off/auto/on (off by default).
- The photo opens directly in the preview, without a confirmation screen.
- Full 4:3 resolution (the CameraX default, now set explicitly).
- A "Fast/Quality" switch on the camera screen. Fast (
CAPTURE_MODE_MINIMIZE_LATENCY) is the default, the choice is remembered. In my measurement both modes give the same resolution; Quality only writes a lossless JPEG, about 3× larger.
- The screen is fixed to the device body: the shutter stays at the natural bottom edge in any rotation, only the icons rotate. The photo orientation comes from the sensor. On Android 16 with sw600dp, where the orientation lock is ignored, the layout follows
Display.rotation, so the result is the same.
Full-screen preview, built on the existing attachmentpreview screen (no second screen):
- Black background, swipe between files, "N / M" counter, a checkbox to exclude a file.
- Caption on top of the photo, round send button.
- Crop and rotate with uCrop (already a dependency), drawing with a brush (6 colors, undo). The edited file replaces the original.
- SD/HD and View-only stay, now in a bottom tool bar.
No new dependencies.
Describe alternatives you've considered
Keep the system camera and add only the editing to the preview. This removes the ✕/✓ step only partly and leaves the user outside the app.
Additional context
Tested by me on a Huawei DEL-LX9 with a fork build.
A working implementation is in the fork: https://github.com/ToteMeiSter/talk-android/tree/feat/in-app-camera
Video recording from the attachment sheet still uses the system camera.
The same proposal for iOS: nextcloud/talk-ios#2744.
Implementation: #6820 (depends on #6819). The PR is opened for discussion, not to skip the approval.
The analysis and this text were prepared with an AI assistant (Claude Code) and reviewed by me.
Is your feature request related to a problem? Please describe.
Taking a photo for a chat opens the system camera app. After the shot, I confirm it on the camera's own ✕/✓ screen, and only then the attachment preview opens. Before sending, I cannot crop, rotate or mark up the photo in Talk.
I know #2461 and #6429 replaced the built-in photo camera with the system camera. So I would like to ask first: would you accept an in-app camera again, now on CameraX? The video message recorder from #6812 already uses CameraX, and this proposal reuses that code.
Describe the solution you'd like
In-app camera (CameraX), opened from the camera tile of the attachment sheet (#6814) and from "add more" in the preview:
CAPTURE_MODE_MINIMIZE_LATENCY) is the default, the choice is remembered. In my measurement both modes give the same resolution; Quality only writes a lossless JPEG, about 3× larger.Display.rotation, so the result is the same.Full-screen preview, built on the existing
attachmentpreviewscreen (no second screen):No new dependencies.
Describe alternatives you've considered
Keep the system camera and add only the editing to the preview. This removes the ✕/✓ step only partly and leaves the user outside the app.
Additional context
Tested by me on a Huawei DEL-LX9 with a fork build.
A working implementation is in the fork: https://github.com/ToteMeiSter/talk-android/tree/feat/in-app-camera
Video recording from the attachment sheet still uses the system camera.
The same proposal for iOS: nextcloud/talk-ios#2744.
Implementation: #6820 (depends on #6819). The PR is opened for discussion, not to skip the approval.
The analysis and this text were prepared with an AI assistant (Claude Code) and reviewed by me.