chore(android): refactor side loaded text tracks (#3754)
* 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
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
@@ -0,0 +1,27 @@
|
||||
package com.brentvatne.common.api
|
||||
|
||||
import com.facebook.react.bridge.ReadableArray
|
||||
import com.facebook.react.bridge.ReadableMap
|
||||
|
||||
/**
|
||||
* Class representing a list of sideLoaded text track from application
|
||||
* Do you use player import in this class
|
||||
*/
|
||||
|
||||
class SideLoadedTextTrackList {
|
||||
var tracks = ArrayList<SideLoadedTextTrack>()
|
||||
|
||||
companion object {
|
||||
fun parse(src: ReadableArray?): SideLoadedTextTrackList? {
|
||||
if (src == null) {
|
||||
return null
|
||||
}
|
||||
var sideLoadedTextTrackList = SideLoadedTextTrackList()
|
||||
for (i in 0 until src.size()) {
|
||||
val textTrack: ReadableMap = src.getMap(i)
|
||||
sideLoadedTextTrackList.tracks.add(SideLoadedTextTrack.parse(textTrack))
|
||||
}
|
||||
return sideLoadedTextTrackList
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user