diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerControllerUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerControllerUI.kt index 78130d5..44afe64 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerControllerUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/VideoPlayerControllerUI.kt @@ -83,22 +83,19 @@ fun VideoPlayerControllerUI( .union(WindowInsets.displayCutout) .union(WindowInsets.waterfall) - if (!uiState.uiVissible) { - GestureUI( - modifier = Modifier - .fillMaxSize(), -// .windowInsetsPadding(WindowInsets.systemGestures), - viewModel = viewModel, - uiState = uiState - ) - } - AnimatedVisibility(uiState.uiVissible) { Surface( modifier = Modifier.fillMaxSize(), color = Color(0x75000000) ) {} } + GestureUI( + modifier = Modifier + .fillMaxSize(), + viewModel = viewModel, + uiState = uiState + ) + if (uiState.isLoading) { Box(modifier = Modifier.fillMaxSize()) { CircularProgressIndicator( @@ -112,14 +109,6 @@ fun VideoPlayerControllerUI( } AnimatedVisibility(uiState.uiVissible) { - GestureUI( - modifier = Modifier - .fillMaxSize() - .windowInsetsPadding(WindowInsets.systemGestures), - viewModel = viewModel, - uiState = uiState - ) - Box(modifier = Modifier.fillMaxSize()) { CenterUI( modifier = Modifier.align(Alignment.Center), diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt index 0584f3c..4afd155 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/GestureUI.kt @@ -30,13 +30,6 @@ import net.newpipe.newplayer.ui.videoplayer.gesture_ui.FullscreenGestureUI private const val TAG = "TouchUi" - -const val DELAY_UNTIL_SHOWING_UI_AFTER_TOUCH_IN_MS: Long = 200 -const val SEEK_ANIMATION_DURATION_IN_MS = 300 -const val FAST_SEEK_MODE_DURATION = 500L -const val SEEK_ANIMATION_FADE_IN = 200 -const val SEEK_ANIMATION_FADE_OUT = 500 - val INDICATOR_BACKGROUND_COLOR = Color.Black.copy(alpha = 0.3f) @Composable diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/EmbeddedGestureUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/EmbeddedGestureUI.kt index d2c57f5..6172087 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/EmbeddedGestureUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/EmbeddedGestureUI.kt @@ -36,7 +36,6 @@ import net.newpipe.newplayer.model.VideoPlayerUIState import net.newpipe.newplayer.model.VideoPlayerViewModel import net.newpipe.newplayer.model.VideoPlayerViewModelDummy import net.newpipe.newplayer.ui.theme.VideoPlayerTheme -import net.newpipe.newplayer.ui.videoplayer.FAST_SEEK_MODE_DURATION private const val TAG = "EmbeddedGestureUI" diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FastSeekVisualFeedback.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FastSeekVisualFeedback.kt index 2968937..19f7687 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FastSeekVisualFeedback.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FastSeekVisualFeedback.kt @@ -57,9 +57,12 @@ import com.google.android.material.color.MaterialColors import net.newpipe.newplayer.R import net.newpipe.newplayer.ui.theme.VideoPlayerTheme import net.newpipe.newplayer.ui.videoplayer.INDICATOR_BACKGROUND_COLOR -import net.newpipe.newplayer.ui.videoplayer.SEEK_ANIMATION_DURATION_IN_MS -import net.newpipe.newplayer.ui.videoplayer.SEEK_ANIMATION_FADE_IN -import net.newpipe.newplayer.ui.videoplayer.SEEK_ANIMATION_FADE_OUT + +const val SEEK_ANIMATION_DURATION_IN_MS = 300 +const val FAST_SEEK_MODE_DURATION = 500L +const val SEEK_ANIMATION_FADE_IN = 200 +const val SEEK_ANIMATION_FADE_OUT = 500 + @Composable fun FastSeekVisualFeedback(modifier: Modifier = Modifier, seconds: Int, backwards: Boolean) { diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FullscreenGestureUI.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FullscreenGestureUI.kt index cb0c811..42ee363 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FullscreenGestureUI.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/FullscreenGestureUI.kt @@ -72,7 +72,6 @@ fun FullscreenGestureUI( } val defaultOnRegularTap = { - if (uiState.uiVisible) { viewModel.hideUi() } else { diff --git a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/GestureSurface.kt b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/GestureSurface.kt index 481d5b9..99266b3 100644 --- a/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/GestureSurface.kt +++ b/new-player/src/main/java/net/newpipe/newplayer/ui/videoplayer/gesture_ui/GestureSurface.kt @@ -37,7 +37,9 @@ import androidx.compose.ui.input.pointer.pointerInteropFilter import kotlinx.coroutines.Job import kotlinx.coroutines.delay import kotlinx.coroutines.launch -import net.newpipe.newplayer.ui.videoplayer.DELAY_UNTIL_SHOWING_UI_AFTER_TOUCH_IN_MS + +private const val MULTITAB_MODE_DELAY: Long = 300 + @Composable @OptIn(ExperimentalComposeUiApi::class) @@ -84,28 +86,29 @@ fun GestureSurface( val defaultActionUp = { onMultiTap: (Int) -> Unit, onRegularTap: () -> Unit -> onUp() - val currentTime = System.currentTimeMillis() if (!moveOccured) { + val currentTime = System.currentTimeMillis() val timeSinceLastTouch = currentTime - lastFingerUpTime - if (timeSinceLastTouch <= DELAY_UNTIL_SHOWING_UI_AFTER_TOUCH_IN_MS) { + if (timeSinceLastTouch <= MULTITAB_MODE_DELAY) { regularTabJob?.cancel() cancelMultitapJob?.cancel() multitapAmount++ onMultiTap(multitapAmount) cancelMultitapJob = composableScope.launch { - delay(DELAY_UNTIL_SHOWING_UI_AFTER_TOUCH_IN_MS) + delay(MULTITAB_MODE_DELAY) multitapAmount = 0 onMultiTapFinished() } } else { regularTabJob = composableScope.launch { - delay(DELAY_UNTIL_SHOWING_UI_AFTER_TOUCH_IN_MS) + delay(MULTITAB_MODE_DELAY) onRegularTap() } } + + lastFingerUpTime = currentTime } moveOccured = false - lastFingerUpTime = currentTime true }