2020
2121package net.newpipe.newplayer.ui.videoplayer
2222
23+ import android.util.Log
2324import androidx.annotation.OptIn
2425import androidx.compose.animation.AnimatedVisibility
26+ import androidx.compose.animation.core.LinearEasing
27+ import androidx.compose.animation.core.tween
28+ import androidx.compose.animation.fadeIn
29+ import androidx.compose.animation.fadeOut
2530import androidx.compose.foundation.layout.Box
2631import androidx.compose.foundation.layout.defaultMinSize
2732import androidx.compose.foundation.layout.fillMaxSize
@@ -44,6 +49,7 @@ import androidx.compose.ui.graphics.Color
4449import androidx.compose.ui.tooling.preview.Preview
4550import androidx.compose.ui.unit.dp
4651import androidx.media3.common.util.UnstableApi
52+ import kotlinx.coroutines.delay
4753import net.newpipe.newplayer.uiModel.NewPlayerUIState
4854import net.newpipe.newplayer.uiModel.InternalNewPlayerViewModel
4955import net.newpipe.newplayer.uiModel.NewPlayerViewModelDummy
@@ -75,15 +81,15 @@ internal fun VideoPlayerControllerUI(
7581
7682 val insets = getInsets()
7783
78- AnimatedVisibility (uiState.uiMode.videoControllerUiVisible) {
84+ AnimateVideoControlVisibility (uiState.uiMode.videoControllerUiVisible) {
7985 Surface (
8086 modifier = Modifier .fillMaxSize(), color = CONTROLLER_UI_BACKGROUND_COLOR
8187 ) {}
8288 }
8389
8490 GestureUI (
8591 modifier = Modifier .fillMaxSize(), viewModel = viewModel, uiState = uiState,
86- onVolumeIndicatorVisibilityChanged = {volumeIndicatorVissible = it}
92+ onVolumeIndicatorVisibilityChanged = { volumeIndicatorVissible = it }
8793 )
8894
8995 AnimatedVisibility (uiState.isLoading) {
@@ -98,7 +104,10 @@ internal fun VideoPlayerControllerUI(
98104 }
99105 }
100106
101- AnimatedVisibility (uiState.uiMode.videoControllerUiVisible) {
107+
108+ AnimateVideoControlVisibility (
109+ uiState.uiMode.videoControllerUiVisible,
110+ ) {
102111
103112 AnimatedVisibility (visible = ! uiState.isLoading && ! volumeIndicatorVissible) {
104113 Box (modifier = Modifier .fillMaxSize()) {
@@ -140,6 +149,19 @@ internal fun VideoPlayerControllerUI(
140149// Utils
141150// /////////////////////////////////////////////////////////////////
142151
152+ @Composable
153+ fun AnimateVideoControlVisibility (visible : Boolean , content : @Composable () -> Unit ) {
154+ AnimatedVisibility (
155+ visible,
156+ enter = fadeIn(animationSpec = tween(durationMillis = 100 , easing = LinearEasing )),
157+ exit = fadeOut(animationSpec = tween(durationMillis = 100 , easing = LinearEasing ))
158+ ) {
159+ Log .d(" GestureSurface" , " =========" );
160+ content()
161+ }
162+ }
163+
164+
143165@Composable
144166
145167/* * @hide */
0 commit comments