Guest User

Untitled

a guest
Jan 27th, 2022
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.44 KB | None | 0 0
  1. import android.os.Bundle
  2. import android.util.Log
  3. import android.view.LayoutInflater
  4. import android.view.View
  5. import android.view.ViewGroup
  6. import androidx.fragment.app.Fragment
  7. import androidx.fragment.app.activityViewModels
  8. import com.kobyakov.zoomlegaldialogtest.databinding.FragmentZoomBinding
  9. import com.kobyakov.zoomlegaldialogtest.databinding.ZoomMeetingViewBinding
  10. import us.zoom.sdk.MeetingStatus
  11. import us.zoom.sdk.MobileRTCVideoUnitRenderInfo
  12. import us.zoom.sdk.MobileRTCVideoViewManager
  13.  
  14. private const val TAG = "ZoomFragment"
  15.  
  16. //@AndroidEntryPoint
  17. class ZoomFragment : Fragment() {
  18. private var _binding: FragmentZoomBinding? = null
  19. private val binding get() = _binding!!
  20.  
  21. private var zoomBinding: ZoomMeetingViewBinding? = null
  22. private var mobileRTCVideoViewManager: MobileRTCVideoViewManager? = null
  23.  
  24. private val zoomViewModel: ZoomViewModel by activityViewModels()
  25.  
  26. override fun onCreateView(
  27. inflater: LayoutInflater,
  28. container: ViewGroup?,
  29. savedInstanceState: Bundle?
  30. ): View {
  31. _binding = FragmentZoomBinding.inflate(inflater, container, false)
  32.  
  33. return binding.root
  34. }
  35.  
  36. override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
  37. super.onViewCreated(view, savedInstanceState)
  38.  
  39. initObservers()
  40. }
  41.  
  42. private fun initObservers() {
  43. zoomViewModel.zoomMeetingStatus.observe(this.viewLifecycleOwner, {
  44. Log.d(TAG, "zoomMeetingStatus: $it")
  45.  
  46. processMeetingStatus(it)
  47. })
  48. }
  49.  
  50. private fun addZoomViewToLayout() {
  51. binding.container.removeAllViews()
  52. zoomBinding =
  53. ZoomMeetingViewBinding.inflate(layoutInflater, binding.container, true)
  54.  
  55. val mDefaultVideoView = zoomBinding?.videoView
  56.  
  57. mobileRTCVideoViewManager = mDefaultVideoView?.videoViewManager
  58. }
  59.  
  60. private fun processMeetingStatus(meetingStatus: MeetingStatus?) {
  61. if (meetingStatus != MeetingStatus.MEETING_STATUS_IDLE && zoomBinding == null) {
  62. addZoomViewToLayout()
  63. }
  64.  
  65. if (meetingStatus == MeetingStatus.MEETING_STATUS_INMEETING) {
  66. zoomBinding?.videoView?.visibility = View.VISIBLE
  67. zoomBinding?.progressContainer?.visibility = View.GONE
  68.  
  69. val renderInfo = MobileRTCVideoUnitRenderInfo(0, 0, 100, 100)
  70. mobileRTCVideoViewManager?.addActiveVideoUnit(renderInfo)
  71. }
  72. }
  73. }
Advertisement
Add Comment
Please, Sign In to add comment