From 45f72ce4a151bec03371860a336b560e03b49457 Mon Sep 17 00:00:00 2001 From: Arkadiusz Fal Date: Wed, 19 Nov 2025 01:32:09 +0100 Subject: [PATCH] Fix playing videos from channel view in modal opened in video player Handle case where player is already presenting by using delayed dispatch instead of appending to onPresentPlayer callback queue. --- Model/Player/PlayerModel.swift | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/Model/Player/PlayerModel.swift b/Model/Player/PlayerModel.swift index 7b55dd41..a38f79cc 100644 --- a/Model/Player/PlayerModel.swift +++ b/Model/Player/PlayerModel.swift @@ -440,11 +440,19 @@ final class PlayerModel: ObservableObject { #if os(iOS) if !playingInPictureInPicture, showingPlayer { - onPresentPlayer.append { [weak self] in - changeBackendHandler?() - self?.playNow(video, at: time) + if presentingPlayer { + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { [weak self] in + guard let self else { return } + changeBackendHandler?() + self.playNow(video, at: time) + } + } else { + onPresentPlayer.append { [weak self] in + changeBackendHandler?() + self?.playNow(video, at: time) + } + show() } - show() return } #endif