Revert "Remove "Honor system orientation lock""

This reverts commit 2d51f6adff.
This commit is contained in:
Arkadiusz Fal 2022-11-13 12:49:39 +01:00
parent ac99971d03
commit 0049a68839
4 changed files with 13 additions and 4 deletions

View File

@ -177,6 +177,7 @@ extension Defaults.Keys {
static let visibleSections = Key<Set<VisibleSection>>("visibleSections", default: [.subscriptions, .trending, .playlists])
#if os(iOS)
static let honorSystemOrientationLock = Key<Bool>("honorSystemOrientationLock", default: true)
static let enterFullscreenInLandscape = Key<Bool>("enterFullscreenInLandscape", default: UIDevice.current.userInterfaceIdiom == .phone)
static let rotateToPortraitOnExitFullScreen = Key<Bool>("rotateToPortraitOnExitFullScreen", default: UIDevice.current.userInterfaceIdiom == .phone)
#endif

View File

@ -8,9 +8,7 @@ extension VideoPlayerView {
if currentOrientation.isLandscape,
Defaults[.enterFullscreenInLandscape],
!player.playingFullScreen,
!player.playingInPictureInPicture,
!player.currentItem.isNil,
player.lockedOrientation.isNil || player.lockedOrientation!.contains(.landscape)
!player.playingInPictureInPicture
{
guard player.presentingPlayer else { return }
@ -29,7 +27,8 @@ extension VideoPlayerView {
object: nil,
queue: .main
) { _ in
guard player.presentingPlayer,
guard !Defaults[.honorSystemOrientationLock],
player.presentingPlayer,
!player.playingInPictureInPicture,
player.lockedOrientation.isNil
else {

View File

@ -155,6 +155,8 @@ struct VideoPlayerView: View {
}
stopOrientationUpdates()
player.controls.hideOverlays()
player.lockedOrientation = nil
}
.onAnimationCompleted(for: viewDragOffset) {
guard !dragGestureState else { return }

View File

@ -15,6 +15,7 @@ struct PlayerSettings: View {
@Default(.pauseOnHidingPlayer) private var pauseOnHidingPlayer
@Default(.closeLastItemOnPlaybackEnd) private var closeLastItemOnPlaybackEnd
#if os(iOS)
@Default(.honorSystemOrientationLock) private var honorSystemOrientationLock
@Default(.enterFullscreenInLandscape) private var enterFullscreenInLandscape
@Default(.rotateToPortraitOnExitFullScreen) private var rotateToPortraitOnExitFullScreen
#endif
@ -111,6 +112,7 @@ struct PlayerSettings: View {
enterFullscreenInLandscapeToggle
}
rotateToPortraitOnExitFullScreenToggle
honorSystemOrientationLockToggle
}
#endif
@ -247,6 +249,11 @@ struct PlayerSettings: View {
}
#if os(iOS)
private var honorSystemOrientationLockToggle: some View {
Toggle("Honor orientation lock", isOn: $honorSystemOrientationLock)
.disabled(!enterFullscreenInLandscape)
}
private var enterFullscreenInLandscapeToggle: some View {
Toggle("Enter fullscreen in landscape", isOn: $enterFullscreenInLandscape)
}