Repository navigation
Conversation
Render the self video into a TextureView based renderer instead of a SurfaceViewRenderer, so it can be clipped and moved like a regular view. The tile can be dragged within the call area, is reset to its initial position on rotation and is slightly larger than before. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Tapping the self video toggles between the regular and an enlarged size instead of switching the camera. The enlarged view shows buttons to switch the camera and to enlarge the self video even further. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
The largest self video size now covers most of the area above the call controls and dims the views behind it. The self video tile gets a shadow and a border so it is recognizable as an overlay, and the renderer clips itself to rounded corners. The self video tile is only shown while the local video is enabled. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
The initial position is calculated from the current width until the self video is dragged, so it keeps its margin to the edge after the screen was rotated. Use absolute offsets so that position and dragging are not mirrored in RTL layouts. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
The self video is flipped around its vertical axis when switching between the cameras, like the iOS app does. If the first frame of the switched camera is not rendered yet when the self video is edge-on, the loading indicator is shown until it is, so the last frame of the prior camera is not shown after the flip. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
📱 QA build
The QA build installs alongside a released Nextcloud app, so you can keep Downloading the file requires a GitHub account, so open this link on the |
- Place the self video below the reactions, the lower hand button and the end call popup so they stay visible and can be tapped. - Apply drag movements to the current position so none get lost. - Reset the self video size when the video is turned off. - Let tapping the large self video shrink it to the enlarged size, like the shrink button and the scrim do. - Release the reference to the renderer when it is released. - While switching the camera, cover the self video without a loading indicator and fade in the new video once it is rendered. The loading indicator is only shown if switching takes longer. - Use the Nextcloud SPDX copyright header for TextureViewRenderer. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
The large self video was 85% of the call area in both dimensions, so in landscape a portrait camera frame was cropped heavily. It now uses the largest size with the aspect ratio of the received frames that fits into that area. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
If the switched camera is not ready yet, show the loading indicator as soon as the flip finished instead of after a fixed delay. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
- Hide the switch camera button if there is only one camera. - Pause rendering of the self video while it is hidden, e.g. in picture-in-picture mode. - Apply the mirroring of the switched camera before its first frame is rendered. - Keep the self video covered until the first frame of the switched camera was rendered, and do not start another switch until then. - Close the end call popup menu on any touch outside of it, including touches on the self video. Assisted-by: Claude Code:claude-opus-5-5 Signed-off-by: Marcel Hibbe <dev@mhibbe.de>
|
There seems to be some behavioral changes here, are they intended?
|
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
this was intended. Some users complained that switching by tap is not intuitive.
fine 👍
that's the expected behavior in my opinion. |
What the branch changes
🖼️ Screenshots
Video
Screen_recording_20261020_123214.mp4
🏁 Checklist
/backport to stable-xx.x🤖 AI (if applicable)
Summary by CodeRabbit