Compare commits

...

10 Commits

Author SHA1 Message Date
Arkadiusz Fal
16b25df3bc Fix method and property access 2023-06-09 18:03:42 +02:00
Arkadiusz Fal
a66e59a282 Bump build number to 155 2023-06-09 17:50:56 +02:00
Arkadiusz Fal
aeeedf3d63 Update CHANGELOG 2023-06-09 17:50:30 +02:00
Arkadiusz Fal
3d35a60c7a Performance improvements 2023-06-09 17:46:31 +02:00
Arkadiusz Fal
8ffdd4d51f Fix crash 2023-06-09 17:45:51 +02:00
Arkadiusz Fal
f871c7aaf5 Bump build number to 154 2023-06-08 12:27:26 +02:00
Arkadiusz Fal
32af2b385b Update CHANGELOG 2023-06-08 12:25:12 +02:00
Arkadiusz Fal
f78545baf9 Fix issue with AVPlayer rate restore 2023-06-08 12:25:12 +02:00
Arkadiusz Fal
d95bcc4065 Fix #492 2023-06-08 12:17:16 +02:00
Arkadiusz Fal
1efd9e2b90 Fix hiding overlays 2023-06-08 12:11:44 +02:00
9 changed files with 48 additions and 46 deletions

View File

@@ -1,4 +1,11 @@
## Build 153
## Build 155
* Fixed reported crashes
* Minor performance improvements
## Previous Builds
* Fixed issue where AVPlayer would pause playing on exiting fullscreen
* Fixed issue with empty button appearing on subscriptions list on tvOS
* Fixed issue with AVPlayer not always using full width
* Fixed issue with layout when switching backend while in fullscreen
* Fixed issue with updating watched time on closing video
@@ -8,9 +15,7 @@
* Reverted change to placeholders as were causing issues to properly display loading status, will be revisited in future
* Fixed performance issue with swiping back to subscribed channels list
* Fixed reported crashes
* Other minor fixes and improvements
## Previous Builds
* Tapping second time on search tab button focuses the input field and selects entered query text (iOS)
* Added Browsing setting "Keep channels with unwatched videos on top of subscriptions list"
* Improved buttons and layout on tvOS

View File

@@ -68,13 +68,12 @@ final class SubscribedChannelsModel: ObservableObject, CacheModel {
return
}
let request = force ? resource?.load() : resource?.loadIfNeeded()
guard request != nil else { return }
loadCachedChannels(account)
DispatchQueue.main.async { [weak self] in
guard let self else { return }
let request = force ? self.resource?.load() : self.resource?.loadIfNeeded()
guard request != nil else { return }
self.loadCachedChannels(account)
self.isLoading = true

View File

@@ -160,7 +160,7 @@ final class AVPlayerBackend: PlayerBackend {
return
}
avPlayer.playImmediately(atRate: Float(model.currentRate))
avPlayer.play()
model.objectWillChange.send()
}
@@ -643,7 +643,12 @@ final class AVPlayerBackend: PlayerBackend {
if player.timeControlStatus == .playing {
self.model.objectWillChange.send()
if player.rate != Float(self.model.currentRate) {
if let rate = self.model.rateToRestore, player.rate != rate {
player.rate = rate
self.model.rateToRestore = nil
}
if player.rate > 0, player.rate != Float(self.model.currentRate) {
if self.model.avPlayerUsesSystemControls {
self.model.currentRate = Double(player.rate)
} else {
@@ -719,10 +724,10 @@ final class AVPlayerBackend: PlayerBackend {
}
#if os(iOS)
ControlOverlaysModel.shared.hide()
model.navigation.presentingPlaybackSettings = false
if model.playingFullScreen {
ControlOverlaysModel.shared.hide()
model.navigation.presentingPlaybackSettings = false
model.onPlayStream.append { _ in
self.controller.enterFullScreen(animated: true)
}

View File

@@ -183,6 +183,7 @@ final class PlayerModel: ObservableObject {
var onPresentPlayer = [() -> Void]()
var onPlayStream = [(Stream) -> Void]()
var rateToRestore: Float?
private var remoteCommandCenterConfigured = false
init() {
@@ -542,6 +543,9 @@ final class PlayerModel: ObservableObject {
if !self.backend.canPlayAtRate(currentRate) {
currentRate = self.backend.suggestedPlaybackRates.last { $0 < currentRate } ?? 1.0
}
self.rateToRestore = Float(currentRate)
self.backend.didChangeTo()
if wasPlaying {

View File

@@ -28,13 +28,7 @@ struct PlaybackSettings: View {
#endif
var body: some View {
#if DEBUG
// TODO: remove
if #available(iOS 15.0, macOS 12.0, *) {
Self._printChanges()
}
#endif
return ScrollView {
ScrollView {
VStack(alignment: .leading, spacing: 10) {
HStack {
Button {

View File

@@ -90,13 +90,7 @@ struct VideoPlayerView: View {
}
var videoPlayer: some View {
#if DEBUG
// TODO: remove
if #available(iOS 15.0, macOS 12.0, *) {
Self._printChanges()
}
#endif
return GeometryReader { geometry in
GeometryReader { geometry in
HStack(spacing: 0) {
content
.onAppear {

View File

@@ -77,9 +77,11 @@ struct ChannelsView: View {
.listRowSeparator(false)
}
}
#if !os(tvOS)
.background(
NavigationLink(destination: ChannelVideosView(channel: channelForLink ?? Video.fixture.channel), isActive: $channelLinkActive, label: EmptyView.init)
)
#endif
.onAppear {
subscriptions.load()
}

View File

@@ -20,7 +20,6 @@ struct VideoContextMenuView: View {
@FetchRequest private var watchRequest: FetchedResults<Watch>
@Default(.saveHistory) private var saveHistory
@Default(.showPlayNowInBackendContextMenu) private var showPlayNowInBackendContextMenu
private var backgroundContext = PersistenceController.shared.container.newBackgroundContext()
@@ -44,7 +43,7 @@ struct VideoContextMenuView: View {
removeAllFromQueueButton()
}
if !video.localStreamIsDirectory {
if saveHistory {
if Defaults[.saveHistory] {
Section {
if let watchedAtString {
Text(watchedAtString)
@@ -72,7 +71,7 @@ struct VideoContextMenuView: View {
#endif
}
if showPlayNowInBackendContextMenu {
if Defaults[.showPlayNowInBackendContextMenu] {
Section {
ForEach(PlayerBackendType.allCases, id: \.self) { backend in
playNowInBackendButton(backend)

View File

@@ -4053,7 +4053,7 @@
CODE_SIGN_ENTITLEMENTS = "Open in Yattee/Open in Yattee.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Open in Yattee/Info.plist";
INFOPLIST_KEY_CFBundleDisplayName = "Open in Yattee";
@@ -4084,7 +4084,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
GENERATE_INFOPLIST_FILE = YES;
INFOPLIST_FILE = "Open in Yattee/Info.plist";
@@ -4115,7 +4115,7 @@
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
MACOSX_DEPLOYMENT_TARGET = 11.0;
@@ -4135,7 +4135,7 @@
buildSettings = {
CLANG_CXX_LANGUAGE_STANDARD = "gnu++17";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
MACOSX_DEPLOYMENT_TARGET = 11.0;
@@ -4295,7 +4295,7 @@
CODE_SIGN_ENTITLEMENTS = "iOS/Yattee (iOS).entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
ENABLE_PREVIEWS = YES;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -4348,7 +4348,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
"DEVELOPMENT_TEAM[sdk=iphoneos*]" = 78Z5H3M6RJ;
ENABLE_PREVIEWS = YES;
GCC_PREPROCESSOR_DEFINITIONS = "GLES_SILENCE_DEPRECATION=1";
@@ -4400,7 +4400,7 @@
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
DEAD_CODE_STRIPPING = YES;
ENABLE_APP_SANDBOX = YES;
ENABLE_HARDENED_RUNTIME = YES;
@@ -4442,7 +4442,7 @@
"CODE_SIGN_IDENTITY[sdk=macosx*]" = "3rd Party Mac Developer Application";
CODE_SIGN_STYLE = Manual;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
DEAD_CODE_STRIPPING = YES;
"DEVELOPMENT_TEAM[sdk=macosx*]" = 78Z5H3M6RJ;
ENABLE_APP_SANDBOX = YES;
@@ -4480,7 +4480,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4504,7 +4504,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4530,7 +4530,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
DEAD_CODE_STRIPPING = YES;
GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4555,7 +4555,7 @@
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
COMBINE_HIDPI_IMAGES = YES;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
DEAD_CODE_STRIPPING = YES;
GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = (
@@ -4581,7 +4581,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_ASSET_PATHS = "";
ENABLE_PREVIEWS = YES;
GENERATE_INFOPLIST_FILE = YES;
@@ -4621,7 +4621,7 @@
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
"CODE_SIGN_IDENTITY[sdk=appletvos*]" = "iPhone Distribution";
CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
DEVELOPMENT_ASSET_PATHS = "";
"DEVELOPMENT_TEAM[sdk=appletvos*]" = 78Z5H3M6RJ;
ENABLE_PREVIEWS = YES;
@@ -4662,7 +4662,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
@@ -4686,7 +4686,7 @@
buildSettings = {
ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 153;
CURRENT_PROJECT_VERSION = 155;
GENERATE_INFOPLIST_FILE = YES;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",