diff --git a/app/src/main/java/org/linphone/ui/call/view/RoundCornersTextureView.kt b/app/src/main/java/org/linphone/ui/call/view/RoundCornersTextureView.kt index 35a49f3ac..7dea7b108 100644 --- a/app/src/main/java/org/linphone/ui/call/view/RoundCornersTextureView.kt +++ b/app/src/main/java/org/linphone/ui/call/view/RoundCornersTextureView.kt @@ -86,6 +86,11 @@ class RoundCornersTextureView : CaptureTextureView { } } + fun setRadius(radius: Float) { + mRadius = radius + setRoundCorners() + } + private fun setRoundCorners() { outlineProvider = object : ViewOutlineProvider() { override fun getOutline(view: View, outline: Outline) { diff --git a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt index 3b3a261bf..3065937f9 100644 --- a/app/src/main/java/org/linphone/utils/DataBindingUtils.kt +++ b/app/src/main/java/org/linphone/utils/DataBindingUtils.kt @@ -64,6 +64,7 @@ import org.linphone.contacts.AvatarGenerator import org.linphone.core.ConsolidatedPresence import org.linphone.core.tools.Log import org.linphone.ui.call.conference.model.ConferenceParticipantDeviceModel +import org.linphone.ui.call.view.RoundCornersTextureView /** * This file contains all the data binding necessary for the app @@ -514,6 +515,11 @@ fun setConstraintLayoutWidthMax(view: View, dp: Float) { cs.applyTo(layout) } +@BindingAdapter("roundCornersRadius") +fun RoundCornersTextureView.setRoundCornersRadius(radius: Float) { + setRadius(radius) +} + @BindingAdapter("focusNextOnInput") fun focusNextOnInput(editText: EditText, enabled: Boolean) { if (!enabled) return diff --git a/app/src/main/res/layout/call_active_conference_fragment.xml b/app/src/main/res/layout/call_active_conference_fragment.xml index d8a3e9eed..861bd5971 100644 --- a/app/src/main/res/layout/call_active_conference_fragment.xml +++ b/app/src/main/res/layout/call_active_conference_fragment.xml @@ -244,6 +244,7 @@ android:visibility="@{conferenceViewModel.isMeParticipantSendingVideo && conferenceViewModel.participants.size() == 1 && !conferenceViewModel.isPaused ? View.VISIBLE : View.GONE}" app:alignTopRight="true" app:displayMode="black_bars" + roundCornersRadius="@{viewModel.pipMode ? @dimen/call_pip_round_corners_texture_view_radius : @dimen/call_round_corners_texture_view_radius, default=@dimen/call_round_corners_texture_view_radius}" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_max="@{viewModel.pipMode ? @dimen/call_video_preview_pip_max_size : @dimen/call_video_preview_max_size, default=@dimen/call_video_preview_max_size}" diff --git a/app/src/main/res/layout/call_active_fragment.xml b/app/src/main/res/layout/call_active_fragment.xml index 94347e8e5..f14b8407f 100644 --- a/app/src/main/res/layout/call_active_fragment.xml +++ b/app/src/main/res/layout/call_active_fragment.xml @@ -267,6 +267,7 @@ android:visibility="@{viewModel.isSendingVideo && !(viewModel.isPaused || viewModel.isPausedByRemote) ? View.VISIBLE : View.GONE}" app:alignTopRight="true" app:displayMode="black_bars" + roundCornersRadius="@{viewModel.pipMode ? @dimen/call_pip_round_corners_texture_view_radius : @dimen/call_round_corners_texture_view_radius, default=@dimen/call_round_corners_texture_view_radius}" app:layout_constraintBottom_toBottomOf="@id/hinge_bottom" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHeight_max="@{viewModel.pipMode ? @dimen/call_video_preview_pip_max_size : @dimen/call_video_preview_max_size, default=@dimen/call_video_preview_max_size}" diff --git a/app/src/main/res/values/dimen.xml b/app/src/main/res/values/dimen.xml index 983429319..b0ebb3fcb 100644 --- a/app/src/main/res/values/dimen.xml +++ b/app/src/main/res/values/dimen.xml @@ -58,6 +58,7 @@ 345dp 120dp 20dp + 5dp 55dp 15dp 30dp