All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.io.dyte.mobilecorebridge.listeners.ParticipantUpdateEventsListener.kt Maven / Gradle / Ivy

package io.dyte.mobilecorebridge.listeners

import io.dyte.core.feat.DyteMeetingParticipant
import io.dyte.core.listeners.DyteParticipantUpdateListener
import io.dyte.mobilecorebridge.CallDetailsBuilder
import io.dyte.mobilecorebridge.DyteSink

class ParticipantUpdateEventsListener(private val sink: DyteSink) : DyteParticipantUpdateListener {
  private val callDetailsBuilder = CallDetailsBuilder()

  override fun onAudioUpdate(isEnabled: Boolean) {
    super.onAudioUpdate(isEnabled)
    callDetailsBuilder
      .flush()
      .addMethodName("onAudioUpdate")
      .addArguments(hashMapOf("isEnabled" to isEnabled))
    sink.success(callDetailsBuilder.build())
  }

  override fun onPinned() {
    super.onPinned()
    callDetailsBuilder.flush().addMethodName("onPinned")

    sink.success(callDetailsBuilder.build())
  }

  override fun onRemovedAsActiveSpeaker() {
    super.onRemovedAsActiveSpeaker()
    callDetailsBuilder.flush().addMethodName("onRemovedAsActiveSpeaker")

    sink.success(callDetailsBuilder.build())
  }

  override fun onScreenShareEnded() {
    super.onScreenShareEnded()

    callDetailsBuilder.flush().addMethodName("onScreenShareEnded")

    sink.success(callDetailsBuilder.build())
  }

  override fun onScreenShareStarted() {
    super.onScreenShareStarted()

    callDetailsBuilder.flush().addMethodName("onScreenShareStarted")
    sink.success(callDetailsBuilder.build())
  }

  override fun onSetAsActiveSpeaker() {
    super.onSetAsActiveSpeaker()

    callDetailsBuilder.flush().addMethodName("onSetAsActiveSpeaker")
    sink.success(callDetailsBuilder.build())
  }

  override fun onUnpinned() {
    super.onUnpinned()
    callDetailsBuilder.flush().addMethodName("onUnpinned")
    sink.success(callDetailsBuilder.build())
  }

  override fun onUpdate(participant: DyteMeetingParticipant) {
    super.onUpdate(participant)

    callDetailsBuilder
      .flush()
      .addMethodName("onUpdate")
      .addArguments(hashMapOf("participant" to participant.toMap()))
    sink.success(callDetailsBuilder.build())
  }

  override fun onVideoUpdate(isEnabled: Boolean) {
    super.onVideoUpdate(isEnabled)

    callDetailsBuilder
      .flush()
      .addMethodName("onVideoUpdate")
      .addArguments(hashMapOf("isEnabled" to isEnabled))
    sink.success(callDetailsBuilder.build())
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy