From cb592ede5452a0edf59f05d8dfe8b98b9f426825 Mon Sep 17 00:00:00 2001 From: Gulzar Date: Wed, 8 May 2024 13:00:46 +0530 Subject: [PATCH] Update VideoGridBaseFragment.kt --- .../ui/meeting/commons/VideoGridBaseFragment.kt | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/room-kit/src/main/java/live/hms/roomkit/ui/meeting/commons/VideoGridBaseFragment.kt b/room-kit/src/main/java/live/hms/roomkit/ui/meeting/commons/VideoGridBaseFragment.kt index f92bb309f..e79860986 100644 --- a/room-kit/src/main/java/live/hms/roomkit/ui/meeting/commons/VideoGridBaseFragment.kt +++ b/room-kit/src/main/java/live/hms/roomkit/ui/meeting/commons/VideoGridBaseFragment.kt @@ -1,6 +1,5 @@ package live.hms.roomkit.ui.meeting.commons -import android.content.Context import android.os.Bundle import android.util.Log import android.view.LayoutInflater @@ -29,6 +28,7 @@ import live.hms.roomkit.ui.theme.applyTheme import live.hms.roomkit.ui.theme.getColorOrDefault import live.hms.roomkit.ui.theme.setBackgroundAndColor import live.hms.roomkit.util.* +import live.hms.video.media.settings.HMSLayer import live.hms.video.media.tracks.HMSLocalVideoTrack import live.hms.video.media.tracks.HMSRemoteVideoTrack import live.hms.video.media.tracks.HMSVideoTrack @@ -111,6 +111,10 @@ abstract class VideoGridBaseFragment : Fragment() { Log.d("VGBF"," (screenshar : ${isScreenshare()}) grid row count ${gridRowCount} else column count ${gridColumnCount}") } + fun isDocked(): Boolean { + return gridRowCount == 1 && gridColumnCount == 2 && isScreenshare().not() + } + protected val maxItems: Int get() = gridRowCount * gridColumnCount @@ -190,6 +194,8 @@ abstract class VideoGridBaseFragment : Fragment() { item: MeetingTrack, scalingType: RendererCommon.ScalingType = RendererCommon.ScalingType.SCALE_ASPECT_BALANCED ) { + + val isAutoSimulcastEnabled = if (isDocked()) false else meetingViewModel.isAutoSimulcastEnabled() Log.d(TAG,"bindSurfaceView for :: ${item.peer.name}") val earlyExit = item.video == null || item.video?.isMute == true @@ -198,7 +204,11 @@ abstract class VideoGridBaseFragment : Fragment() { item.video?.let { track -> if (isScreenshare()) view.setScalingType( RendererCommon.ScalingType.SCALE_ASPECT_FIT) view.addTrack(track) - view.disableAutoSimulcastLayerSelect(meetingViewModel.isAutoSimulcastEnabled()) + + view.disableAutoSimulcastLayerSelect(isAutoSimulcastEnabled) + if (track is HMSRemoteVideoTrack && isDocked()) { + track.setLayer(HMSLayer.LOW) + } if (item.video?.isDegraded == true ) binding.hmsVideoView.hide() else binding.hmsVideoView.show() binding.hmsVideoView.setOnLongClickListener { (it as? HMSVideoView)?.let { videoView -> openDialog(videoView, item.video, item.peer.name.orEmpty()) }