Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import android.os.Bundle
- import android.util.Log
- import android.view.LayoutInflater
- import android.view.View
- import android.view.ViewGroup
- import androidx.fragment.app.Fragment
- import androidx.fragment.app.activityViewModels
- import com.kobyakov.zoomlegaldialogtest.databinding.FragmentZoomBinding
- import com.kobyakov.zoomlegaldialogtest.databinding.ZoomMeetingViewBinding
- import us.zoom.sdk.MeetingStatus
- import us.zoom.sdk.MobileRTCVideoUnitRenderInfo
- import us.zoom.sdk.MobileRTCVideoViewManager
- private const val TAG = "ZoomFragment"
- //@AndroidEntryPoint
- class ZoomFragment : Fragment() {
- private var _binding: FragmentZoomBinding? = null
- private val binding get() = _binding!!
- private var zoomBinding: ZoomMeetingViewBinding? = null
- private var mobileRTCVideoViewManager: MobileRTCVideoViewManager? = null
- private val zoomViewModel: ZoomViewModel by activityViewModels()
- override fun onCreateView(
- inflater: LayoutInflater,
- container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View {
- _binding = FragmentZoomBinding.inflate(inflater, container, false)
- return binding.root
- }
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- super.onViewCreated(view, savedInstanceState)
- initObservers()
- }
- private fun initObservers() {
- zoomViewModel.zoomMeetingStatus.observe(this.viewLifecycleOwner, {
- Log.d(TAG, "zoomMeetingStatus: $it")
- processMeetingStatus(it)
- })
- }
- private fun addZoomViewToLayout() {
- binding.container.removeAllViews()
- zoomBinding =
- ZoomMeetingViewBinding.inflate(layoutInflater, binding.container, true)
- val mDefaultVideoView = zoomBinding?.videoView
- mobileRTCVideoViewManager = mDefaultVideoView?.videoViewManager
- }
- private fun processMeetingStatus(meetingStatus: MeetingStatus?) {
- if (meetingStatus != MeetingStatus.MEETING_STATUS_IDLE && zoomBinding == null) {
- addZoomViewToLayout()
- }
- if (meetingStatus == MeetingStatus.MEETING_STATUS_INMEETING) {
- zoomBinding?.videoView?.visibility = View.VISIBLE
- zoomBinding?.progressContainer?.visibility = View.GONE
- val renderInfo = MobileRTCVideoUnitRenderInfo(0, 0, 100, 100)
- mobileRTCVideoViewManager?.addActiveVideoUnit(renderInfo)
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment