From 3ea069926b5335cea1009fa3c4aed36156c3e949 Mon Sep 17 00:00:00 2001 From: tapframe Date: Mon, 15 Sep 2025 12:07:26 +0530 Subject: [PATCH] Z-Index fix --- src/components/player/AndroidVideoPlayer.tsx | 3 +- src/components/player/VideoPlayer.tsx | 1 + src/screens/StreamsScreen.tsx | 38 ++++++++++++-------- 3 files changed, 26 insertions(+), 16 deletions(-) diff --git a/src/components/player/AndroidVideoPlayer.tsx b/src/components/player/AndroidVideoPlayer.tsx index dc60865..0c5b1e6 100644 --- a/src/components/player/AndroidVideoPlayer.tsx +++ b/src/components/player/AndroidVideoPlayer.tsx @@ -2950,13 +2950,14 @@ const AndroidVideoPlayer: React.FC = () => { {/* Next Episode Button */} {showNextEpisodeButton && nextEpisode && ( - { right: 8 + insets.right, opacity: nextEpisodeButtonOpacity, transform: [{ scale: nextEpisodeButtonScale }], + zIndex: 50, }} > { const isMkvByPath = lowerUri.includes('.mkv') || /[?&]ext=mkv\b/.test(lowerUri) || /format=mkv\b/.test(lowerUri) || /container=mkv\b/.test(lowerUri); const isMkvFile = Boolean(isMkvByHeader || isMkvByPath); - // Also check if the provider declares MKV format support - let providerSupportsMkv = false; - try { - const availableScrapers = await localScraperService.getAvailableScrapers(); - const provider = availableScrapers.find(scraper => scraper.id === streamProvider); - if (provider && provider.formats) { - providerSupportsMkv = provider.formats.includes('mkv'); - logger.log(`[StreamsScreen] Provider ${streamProvider} formats:`, provider.formats, 'supports MKV:', providerSupportsMkv); + // Special case: moviebox should always use AndroidVideoPlayer + if (streamProvider === 'moviebox') { + forceVlc = false; + logger.log(`[StreamsScreen] Provider ${streamProvider} -> always using AndroidVideoPlayer`); + } else { + // Also check if the provider declares MKV format support + let providerSupportsMkv = false; + try { + const availableScrapers = await localScraperService.getAvailableScrapers(); + const provider = availableScrapers.find(scraper => scraper.id === streamProvider); + if (provider && provider.formats) { + providerSupportsMkv = provider.formats.includes('mkv'); + logger.log(`[StreamsScreen] Provider ${streamProvider} formats:`, provider.formats, 'supports MKV:', providerSupportsMkv); + } + } catch (providerError) { + logger.warn('[StreamsScreen] Failed to check provider formats:', providerError); + } + + if (isMkvFile || providerSupportsMkv) { + forceVlc = true; + logger.log(`[StreamsScreen] Stream is MKV format (detected: ${isMkvFile}, provider supports: ${providerSupportsMkv}) -> forcing VLC`); + } else { + logger.log(`[StreamsScreen] Stream is NOT MKV format (detected: ${isMkvFile}, provider supports: ${providerSupportsMkv}) -> using AndroidVideoPlayer`); } - } catch (providerError) { - logger.warn('[StreamsScreen] Failed to check provider formats:', providerError); - } - - if (isMkvFile || providerSupportsMkv) { - forceVlc = true; - logger.log(`[StreamsScreen] Stream is MKV format (detected: ${isMkvFile}, provider supports: ${providerSupportsMkv}) -> forcing VLC`); } } } catch (e) {