Refactor PlayerSurface Kotlin syntax to avoid variable shadowing

PiperOrigin-RevId: 751414538
This commit is contained in:
jbibik 2025-04-25 07:53:18 -07:00 committed by Copybara-Service
parent ae7d7dc7e8
commit fe59718805

View File

@ -58,16 +58,16 @@ fun PlayerSurface(
player, player,
modifier, modifier,
createView = { SurfaceView(it) }, createView = { SurfaceView(it) },
setViewOnPlayer = { player, view -> player.setVideoSurfaceView(view) }, setViewOnPlayer = { setVideoSurfaceView(it) },
clearViewFromPlayer = { player, view -> player.clearVideoSurfaceView(view) }, clearViewFromPlayer = { clearVideoSurfaceView(it) },
) )
SURFACE_TYPE_TEXTURE_VIEW -> SURFACE_TYPE_TEXTURE_VIEW ->
PlayerSurfaceInternal( PlayerSurfaceInternal(
player, player,
modifier, modifier,
createView = { TextureView(it) }, createView = { TextureView(it) },
setViewOnPlayer = { player, view -> player.setVideoTextureView(view) }, setViewOnPlayer = { setVideoTextureView(it) },
clearViewFromPlayer = { player, view -> player.clearVideoTextureView(view) }, clearViewFromPlayer = { clearVideoTextureView(it) },
) )
else -> throw IllegalArgumentException("Unrecognized surface type: $surfaceType") else -> throw IllegalArgumentException("Unrecognized surface type: $surfaceType")
} }
@ -78,8 +78,8 @@ private fun <T : View> PlayerSurfaceInternal(
player: Player, player: Player,
modifier: Modifier, modifier: Modifier,
createView: (Context) -> T, createView: (Context) -> T,
setViewOnPlayer: (Player, T) -> Unit, setViewOnPlayer: Player.(T) -> Unit,
clearViewFromPlayer: (Player, T) -> Unit, clearViewFromPlayer: Player.(T) -> Unit,
) { ) {
var view by remember { mutableStateOf<T?>(null) } var view by remember { mutableStateOf<T?>(null) }
var registeredPlayer by remember { mutableStateOf<Player?>(null) } var registeredPlayer by remember { mutableStateOf<Player?>(null) }
@ -88,11 +88,11 @@ private fun <T : View> PlayerSurfaceInternal(
LaunchedEffect(view, player) { LaunchedEffect(view, player) {
registeredPlayer?.let { previousPlayer -> registeredPlayer?.let { previousPlayer ->
if (previousPlayer.isCommandAvailable(Player.COMMAND_SET_VIDEO_SURFACE)) if (previousPlayer.isCommandAvailable(Player.COMMAND_SET_VIDEO_SURFACE))
clearViewFromPlayer(previousPlayer, view) previousPlayer.clearViewFromPlayer(view)
registeredPlayer = null registeredPlayer = null
} }
if (player.isCommandAvailable(Player.COMMAND_SET_VIDEO_SURFACE)) { if (player.isCommandAvailable(Player.COMMAND_SET_VIDEO_SURFACE)) {
setViewOnPlayer(player, view) player.setViewOnPlayer(view)
registeredPlayer = player registeredPlayer = player
} }
} }