diff --git a/android/src/main/java/com/brentvatne/common/api/SideLoadedTextTrackList.kt b/android/src/main/java/com/brentvatne/common/api/SideLoadedTextTrackList.kt index 494facdc..8d7d483f 100644 --- a/android/src/main/java/com/brentvatne/common/api/SideLoadedTextTrackList.kt +++ b/android/src/main/java/com/brentvatne/common/api/SideLoadedTextTrackList.kt @@ -24,7 +24,7 @@ class SideLoadedTextTrackList { } val sideLoadedTextTrackList = SideLoadedTextTrackList() for (i in 0 until src.size()) { - val textTrack: ReadableMap = src.getMap(i) + val textTrack: ReadableMap = src.getMap(i) ?: continue sideLoadedTextTrackList.tracks.add(SideLoadedTextTrack.parse(textTrack)) } return sideLoadedTextTrackList diff --git a/android/src/main/java/com/brentvatne/common/api/Source.kt b/android/src/main/java/com/brentvatne/common/api/Source.kt index 4437f668..b56420a6 100644 --- a/android/src/main/java/com/brentvatne/common/api/Source.kt +++ b/android/src/main/java/com/brentvatne/common/api/Source.kt @@ -228,7 +228,7 @@ class Source { if (propSrcHeadersArray != null) { if (propSrcHeadersArray.size() > 0) { for (i in 0 until propSrcHeadersArray.size()) { - val current = propSrcHeadersArray.getMap(i) + val current = propSrcHeadersArray.getMap(i) ?: continue val key = if (current.hasKey("key")) current.getString("key") else null val value = if (current.hasKey("value")) current.getString("value") else null if (key != null && value != null) { 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 7fc6cc92..be38f42c 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,22 @@ class VideoEventEmitter { } } + private class VideoEvent( + surfaceId: Int, + viewId: Int, + private val name: String, + private val data: WritableMap? + ) : Event(surfaceId, viewId) { + override fun getEventName() = name + override fun getEventData() = data + } + 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 ?: {}) - }) + fun dispatch(event: EventTypes, paramsSetter: (WritableMap.() -> Unit)? = null) { + val eventName = "top${event.eventName.removePrefix("on")}" + val eventData = Arguments.createMap().apply(paramsSetter ?: {}) + dispatcher.dispatchEvent(VideoEvent(surfaceId, viewId, eventName, eventData)) + } } private fun audioTracksToArray(audioTracks: java.util.ArrayList?): WritableArray =