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]) static let visibleSections = Key<Set<VisibleSection>>("visibleSections", default: [.subscriptions, .trending, .playlists])
#if os(iOS) #if os(iOS)
static let honorSystemOrientationLock = Key<Bool>("honorSystemOrientationLock", default: true)
static let enterFullscreenInLandscape = Key<Bool>("enterFullscreenInLandscape", default: UIDevice.current.userInterfaceIdiom == .phone) static let enterFullscreenInLandscape = Key<Bool>("enterFullscreenInLandscape", default: UIDevice.current.userInterfaceIdiom == .phone)
static let rotateToPortraitOnExitFullScreen = Key<Bool>("rotateToPortraitOnExitFullScreen", default: UIDevice.current.userInterfaceIdiom == .phone) static let rotateToPortraitOnExitFullScreen = Key<Bool>("rotateToPortraitOnExitFullScreen", default: UIDevice.current.userInterfaceIdiom == .phone)
#endif #endif

View File

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

View File

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

View File

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