Close overlay with tap outside

This commit is contained in:
Arkadiusz Fal 2022-07-05 19:21:01 +02:00
parent e56ab3804e
commit 17aeef9af7
2 changed files with 30 additions and 5 deletions

View File

@ -43,14 +43,15 @@ struct FixtureEnvironmentObjectsModifier: ViewModifier {
private var player: PlayerModel {
let player = PlayerModel()
player.currentItem = PlayerQueueItem(Video.fixture)
player.currentItem = PlayerQueueItem(Video(videoID: "", title: "", author: "", length: 0, published: "2 days ago", views: 43434, channel: .init(id: "", name: ""), likes: 2332, dislikes: 30))
player.queue = Video.allFixtures.map { PlayerQueueItem($0) }
player.videoBeingOpened = Video.fixture
return player
}
private var playerControls: PlayerControlsModel {
PlayerControlsModel(presentingControls: true, player: player)
PlayerControlsModel(presentingControls: true, presentingControlsOverlay: true, player: player)
}
private var subscriptions: SubscriptionsModel {

View File

@ -10,7 +10,15 @@ struct PlayerGestures: View {
.tapRecognizer(
tapSensitivity: 0.2,
singleTapAction: {
if model.presentingControlsOverlay {
model.presentingControls = true
model.resetTimer()
withAnimation {
model.presentingControlsOverlay = false
}
} else {
model.toggle()
}
},
doubleTapAction: {
player.backend.seek(relative: .secondsInDefaultTimescale(-10))
@ -24,7 +32,15 @@ struct PlayerGestures: View {
.tapRecognizer(
tapSensitivity: 0.2,
singleTapAction: {
if model.presentingControlsOverlay {
model.presentingControls = true
model.resetTimer()
withAnimation {
model.presentingControlsOverlay = false
}
} else {
model.toggle()
}
},
doubleTapAction: {
player.backend.togglePlay()
@ -38,7 +54,15 @@ struct PlayerGestures: View {
.tapRecognizer(
tapSensitivity: 0.2,
singleTapAction: {
if model.presentingControlsOverlay {
model.presentingControls = true
model.resetTimer()
withAnimation {
model.presentingControlsOverlay = false
}
} else {
model.toggle()
}
},
doubleTapAction: {
player.backend.seek(relative: .secondsInDefaultTimescale(10))