From 94967fc4a61e00c521242d29fd28bed13bbba7c4 Mon Sep 17 00:00:00 2001 From: Tuan Luong Date: Mon, 23 Jun 2025 14:40:14 +0700 Subject: [PATCH] fix(android): create custom event class for dispatcher (#4575) --- .../brentvatne/common/react/VideoEventEmitter.kt | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.kt b/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.kt index 02b29226..fe469fca 100644 --- a/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.kt +++ b/android/src/main/java/com/brentvatne/common/react/VideoEventEmitter.kt @@ -288,12 +288,17 @@ class VideoEventEmitter { } } + private class VideoCustomEvent(surfaceId: Int, viewId: Int, private val event: EventTypes, private val paramsSetter: (WritableMap.() -> Unit)?) : + Event(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>(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?): WritableArray =