fix(android): create custom event class for dispatcher (#4575)

This commit is contained in:
Tuan Luong
2025-06-23 14:40:14 +07:00
committed by GitHub
parent b56b647d85
commit 94967fc4a6
@@ -288,12 +288,17 @@ class VideoEventEmitter {
}
}
private class VideoCustomEvent(surfaceId: Int, viewId: Int, private val event: EventTypes, private val paramsSetter: (WritableMap.() -> Unit)?) :
Event<VideoCustomEvent>(surfaceId, viewId) {
override fun getEventName(): String = "top${event.eventName.removePrefix("on")}"
override fun getEventData(): WritableMap? = Arguments.createMap().apply(paramsSetter ?: {})
}
private class EventBuilder(private val surfaceId: Int, private val viewId: Int, private val dispatcher: EventDispatcher) {
fun dispatch(event: EventTypes, paramsSetter: (WritableMap.() -> Unit)? = null) =
dispatcher.dispatchEvent(object : Event<Event<*>>(surfaceId, viewId) {
override fun getEventName() = "top${event.eventName.removePrefix("on")}"
override fun getEventData() = Arguments.createMap().apply(paramsSetter ?: {})
})
dispatcher.dispatchEvent(VideoCustomEvent(surfaceId, viewId, event, paramsSetter))
}
private fun audioTracksToArray(audioTracks: java.util.ArrayList<Track>?): WritableArray =