diff --git a/CHANGES.md b/CHANGES.md index d5c3df0521..d8556e16bc 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -11,6 +11,7 @@ Improvements 🙌: Bugfix 🐛: - Clear the notification when the event is read elsewhere (#1822) - Speakerphone is not used for ringback tone (#1644, #1645) + - Back camera preview is not mirrored anymore (#1776) - Various report of people that cannot play video (#2107) Translations 🗣: diff --git a/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt b/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt index b53be292c8..655de3376c 100644 --- a/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt +++ b/vector/src/main/java/im/vector/app/features/call/WebRtcPeerConnectionManager.kt @@ -503,7 +503,7 @@ class WebRtcPeerConnectionManager @Inject constructor( // render local video in pip view localSurfaceRenderer.forEach { it.get()?.let { pipSurface -> - pipSurface.setMirror(true) + pipSurface.setMirror(this.cameraInUse?.type == CameraType.FRONT) // no need to check if already added, addSink is checking that currentCall?.localVideoTrack?.addSink(pipSurface) } @@ -740,6 +740,10 @@ class WebRtcPeerConnectionManager @Inject constructor( override fun onCameraSwitchDone(isFrontCamera: Boolean) { Timber.v("## VOIP onCameraSwitchDone isFront $isFrontCamera") cameraInUse = availableCamera.first { if (isFrontCamera) it.type == CameraType.FRONT else it.type == CameraType.BACK } + localSurfaceRenderer.forEach { + it.get()?.setMirror(isFrontCamera) + } + currentCallsListeners.forEach { tryThis { it.onCameraChange(this@WebRtcPeerConnectionManager) } }