Olivier Bouillet efb338ee2a
chore(android): refactor side loaded text tracks ()
* perf: ensure we do not provide callback to native if no callback provided from app

* chore: rework bufferConfig to make it more generic and reduce ReactExoplayerView code size

* chore(android): refactor external text tracks management.

Split parsing and tracks handling

* chore: fix linter
2024-05-11 18:57:59 +02:00

35 lines
1.3 KiB
Kotlin

package com.brentvatne.common.api
import android.net.Uri
import com.brentvatne.common.toolbox.ReactBridgeUtils
import com.facebook.react.bridge.ReadableMap
/**
* Class representing a sideLoaded text track from application
* Do you use player import in this class
*/
class SideLoadedTextTrack {
var language: String? = null
var title: String? = null
var uri: Uri = Uri.EMPTY
var type: String? = null
companion object {
val SIDELOAD_TEXT_TRACK_LANGUAGE = "language"
val SIDELOAD_TEXT_TRACK_TITLE = "title"
val SIDELOAD_TEXT_TRACK_URI = "uri"
val SIDELOAD_TEXT_TRACK_TYPE = "type"
fun parse(src: ReadableMap?): SideLoadedTextTrack {
val sideLoadedTextTrack = SideLoadedTextTrack()
if (src == null) {
return sideLoadedTextTrack
}
sideLoadedTextTrack.language = ReactBridgeUtils.safeGetString(src, SIDELOAD_TEXT_TRACK_LANGUAGE)
sideLoadedTextTrack.title = ReactBridgeUtils.safeGetString(src, SIDELOAD_TEXT_TRACK_TITLE, "")
sideLoadedTextTrack.uri = Uri.parse(ReactBridgeUtils.safeGetString(src, SIDELOAD_TEXT_TRACK_URI, ""))
sideLoadedTextTrack.type = ReactBridgeUtils.safeGetString(src, SIDELOAD_TEXT_TRACK_TYPE, "")
return sideLoadedTextTrack
}
}
}