Skip to content

In-app camera and full-screen attachment preview with crop, rotate and draw #6815

Description

@ToteMeiSter

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.

Activity

  1. mahibi commented on Oct 5, 2026

    @mahibi
    Collaborator

    Hi @ToteMeiSter thank you for your contributions/created issues.
    We will review them soon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions