INNER CODE UNIT · Kotlin
selectDecoder
anilbeesetti/nextplayer · app/src/androidTest/java/dev/anilbeesetti/nextplayer/LocalSubtitleTest.kt:149
private fun selectDecoder(player: MediaController, customCommand: CustomCommands, key: String, mode: DecoderMode) {
command(player, customCommand, Bundle().apply { putString(key, mode.name) })
}
private fun command(player: MediaController, command: CustomCommands, args: Bundle) {
lateinit var result: ListenableFuture<SessionResult>
onMain { result = player.sendCustomCommand(command.sessionCommand, args) }
assertEquals(SessionResult.RESULT_SUCCESS, result.get(10, TimeUnit.SECONDS).resultCode)
}
private fun onMain(block: () -> Unit) = instrumentation.runOnMainSync(block)
private fun await(description: String, condition: () -> Boolean) {
val deadline = SystemClock.elapsedRealtime() + 10_000
while (SystemClock.elapsedRealtime() < deadline) {
var satisfied = false
onMain { satisfied = condition() }
if (satisfied) return