diff --git a/SodaLive/Sources/Content/Player/ContentPlayerPlayManager.swift b/SodaLive/Sources/Content/Player/ContentPlayerPlayManager.swift index b638f19..dfe0b6c 100644 --- a/SodaLive/Sources/Content/Player/ContentPlayerPlayManager.swift +++ b/SodaLive/Sources/Content/Player/ContentPlayerPlayManager.swift @@ -138,7 +138,11 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { } private func handlePlaybackEnded() { - playNextContent() + if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { + self.playNextContent() + } else { + self.stop() + } } func playNextContent() { @@ -148,11 +152,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { generateUrl(contentId: content.id) { [unowned self] url in self.urlGenerateSuccess(content: content, url: url) } onFailure: { - if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { - self.playNextContent() - } else { - self.stop() - } + self.playNextContent() } } } @@ -164,11 +164,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { generateUrl(contentId: content.id) { [unowned self] url in self.urlGenerateSuccess(content: content, url: url) } onFailure: { - if let hasNextContent = self.playlistManager?.hasNextContent(), hasNextContent { - self.playNextContent() - } else { - self.stop() - } + self.playPreviousContent() } } } @@ -196,12 +192,12 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { isLoading = false player?.pause() player?.seek(to: .zero) - duration = 0 currentTime = 0 } func resetPlayer() { stop() + duration = 0 isShowingMiniPlayer = false title = "" @@ -243,7 +239,7 @@ final class ContentPlayerPlayManager: NSObject, ObservableObject { let jsonDecoder = JSONDecoder() let decoded = try jsonDecoder.decode(ApiResponse.self, from: responseData) - if let data = decoded.data, decoded.success { + if let data = decoded.data, !data.contentUrl.trimmingCharacters(in: .whitespacesAndNewlines).isEmpty, decoded.success { onSuccess(data.contentUrl) } else { self.isLoading = false diff --git a/SodaLive/Sources/Content/Playlist/Create/PlaylistAddContentItemView.swift b/SodaLive/Sources/Content/Playlist/Create/PlaylistAddContentItemView.swift index 6f7d7be..8b1b82b 100644 --- a/SodaLive/Sources/Content/Playlist/Create/PlaylistAddContentItemView.swift +++ b/SodaLive/Sources/Content/Playlist/Create/PlaylistAddContentItemView.swift @@ -62,6 +62,7 @@ struct PlaylistAddContentItemView: View { Image(isChecked ? "ic_check_blue" : "ic_playlist_add") .padding(8) } + .contentShape(Rectangle()) .onTapGesture { onClick() isChecked.toggle()