VideoChatUtil

                Never    
fun Context.startVideoChat(meetingId: String, name: String, onError: () -> Unit) {
    if (ZoomSDK.getInstance().isInitialized) joinMeeting(meetingId, name) else ZoomSDK.getInstance().initialize(
        applicationContext,
        object : ZoomSDKInitializeListener {
            override fun onZoomSDKInitializeResult(errorCode: Int, internalErrorCode: Int) {
                if (errorCode == ZoomError.ZOOM_ERROR_SUCCESS) {
                    joinMeeting(meetingId, name)
                } else {
                    onError()
                }
            }

            override fun onZoomAuthIdentityExpired() = Unit
        },
        ZoomSDKInitParams().apply {
            appKey = APP_KEY
            appSecret = APP_SECRET
            enableLog = false
        })
}

private fun Context.joinMeeting(meetingId: String, name: String) = ZoomSDK.getInstance().meetingService.joinMeetingWithParams(
    applicationContext,
    JoinMeetingParams().apply {
        meetingNo = meetingId
        displayName = name
    },
    JoinMeetingOptions()
)

Raw Text