Skip to content

Commit 60c5b35

Browse files
committed
speed up video controller appear and disappear animation
1 parent fb2e21e commit 60c5b35

File tree

2 files changed

+26
-4
lines changed

2 files changed

+26
-4
lines changed

new-player/src/main/java/net/newpipe/newplayer/ui/NewPlayerUI.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ fun NewPlayerUI(
117117
) {
118118
val windowInsetsController = WindowCompat.getInsetsController(window, window.decorView)
119119
windowInsetsController.systemBarsBehavior =
120-
WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
120+
WindowInsetsControllerCompat.BEHAVIOR_DEFAULT
121121

122122
if (uiState.uiMode.systemInsetsVisible) {
123123
windowInsetsController.show(WindowInsetsCompat.Type.systemBars())

new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/VideoPlayerControllerUI.kt

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,13 @@
2020

2121
package net.newpipe.newplayer.ui.videoplayer
2222

23+
import android.util.Log
2324
import androidx.annotation.OptIn
2425
import 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
2530
import androidx.compose.foundation.layout.Box
2631
import androidx.compose.foundation.layout.defaultMinSize
2732
import androidx.compose.foundation.layout.fillMaxSize
@@ -44,6 +49,7 @@ import androidx.compose.ui.graphics.Color
4449
import androidx.compose.ui.tooling.preview.Preview
4550
import androidx.compose.ui.unit.dp
4651
import androidx.media3.common.util.UnstableApi
52+
import kotlinx.coroutines.delay
4753
import net.newpipe.newplayer.uiModel.NewPlayerUIState
4854
import net.newpipe.newplayer.uiModel.InternalNewPlayerViewModel
4955
import 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

Comments
 (0)