Ensure screen does not turn off when playing a video (#1519)

This commit is contained in:
Benoit Marty 2023-10-12 12:10:20 +02:00 committed by Benoit Marty
parent a2601c0388
commit c3bc44bfec
4 changed files with 44 additions and 0 deletions

View file

@ -66,6 +66,7 @@ import io.element.android.libraries.core.mimetype.MimeTypes.isMimeTypeVideo
import io.element.android.libraries.designsystem.theme.components.Icon
import io.element.android.libraries.designsystem.theme.components.Text
import io.element.android.libraries.designsystem.utils.CommonDrawables
import io.element.android.libraries.designsystem.utils.KeepScreenOn
import io.element.android.libraries.designsystem.utils.OnLifecycleEvent
import io.element.android.libraries.theme.ElementTheme
import me.saket.telephoto.zoomable.ZoomSpec
@ -152,6 +153,10 @@ private fun MediaVideoView(
override fun onRenderedFirstFrame() {
localMediaViewState.isReady = true
}
override fun onIsPlayingChanged(isPlaying: Boolean) {
localMediaViewState.isPlaying = isPlaying
}
}
val exoPlayer = remember {
ExoPlayerWrapper.create(context)
@ -168,6 +173,7 @@ private fun MediaVideoView(
} else {
exoPlayer.setMediaItems(emptyList())
}
KeepScreenOn(localMediaViewState.isPlaying)
AndroidView(
factory = {
PlayerView(context).apply {

View file

@ -26,6 +26,7 @@ import androidx.compose.runtime.setValue
@Stable
class LocalMediaViewState {
var isReady: Boolean by mutableStateOf(false)
var isPlaying: Boolean by mutableStateOf(false)
}
@Composable