element-hq / element-hq/element-x-android
Please add a basic in-app camera with basic photo editing for "+" → "take photo"
- Dominant language
- Kotlin
- Stars
- 2.4k
- Forks
- 624
- Avg merge
- 1d 14h
- Merged PRs (30d)
- 149
Description
### Your use case
Hi devs,
currently, one can take a photo and send it to a room using the stock camera (which doesn't work if it's deactivated and an alternative camera app is installed, cf. https://github.com/element-hq/element-x-android/issues/4094). However, the photo is sent as-is. Apparently, it's compressed, but one can't change it.
To crop a photo, rotate it, mark something on it, draw something on it, write text on it etc., one has to take a photo outside of Element X, store it and process it with some third-party tool like [Fossify Gallery](https://github.com/FossifyOrg/Gallery/) or [Quick Edit](https://github.com/Abizer-R/QuickEdit-Photo-Editor) (which looks quite promising although lacking rotation support – and the dev doesn't reply …).
Almost all pictures/photos I send when I use Signal are either cropped screenshots or photos taken at screen resolution with Signal's in-app camera – cropped, rotated and sometimes with something marked on them. I think Signal's approach is really good here, as it covers most use-cases when sending a picture (at least for me) – without having to save them first and without having to use third-party tools.
It would be really cool and convenient if similar functionality was added to Element X.
Thanks for possibly considering this!
Cheers, Tobias
### Have you considered any alternatives?
_No response_
### Additional context
_No response_
### Are you willing to provide a PR?
No
Contributor guide
Research direction
Start with the existing "+" → "take photo" flow and review issue #4094 about camera availability. Define the minimal in-app capture and editing scope—crop, rotate, mark, draw, and text—and verify the result can be sent without saving through a third-party tool.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- android, kotlin
- Domain
- mobile
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100