From 89702d14f5f92aea16f0bb32d00f82b927dcc34e Mon Sep 17 00:00:00 2001 From: tapframe Date: Tue, 10 Jun 2025 02:46:54 +0530 Subject: [PATCH] Enhance VideoPlayer and PlayerControls components with streamName support This update adds the streamName prop to the VideoPlayer and PlayerControls components, allowing for better display of stream information. The AppNavigator has been modified to include streamName in the navigation parameters, and the StreamsScreen now determines the streamName based on the selected stream, improving the overall user experience by providing clearer context during playback. --- src/components/player/VideoPlayer.tsx | 4 +++- src/components/player/controls/PlayerControls.tsx | 4 +++- src/navigation/AppNavigator.tsx | 1 + src/screens/StreamsScreen.tsx | 5 +++++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/components/player/VideoPlayer.tsx b/src/components/player/VideoPlayer.tsx index 1ad89c0..d35fca0 100644 --- a/src/components/player/VideoPlayer.tsx +++ b/src/components/player/VideoPlayer.tsx @@ -44,6 +44,7 @@ const VideoPlayer: React.FC = () => { quality, year, streamProvider, + streamName, id, type, episodeId, @@ -121,7 +122,7 @@ const VideoPlayer: React.FC = () => { const [pendingSeek, setPendingSeek] = useState<{ position: number; shouldPlay: boolean } | null>(null); const [currentQuality, setCurrentQuality] = useState(quality); const [currentStreamProvider, setCurrentStreamProvider] = useState(streamProvider); - const [currentStreamName, setCurrentStreamName] = useState(undefined); + const [currentStreamName, setCurrentStreamName] = useState(streamName); const isMounted = useRef(true); const calculateVideoStyles = (videoWidth: number, videoHeight: number, screenWidth: number, screenHeight: number) => { @@ -1000,6 +1001,7 @@ const VideoPlayer: React.FC = () => { quality={currentQuality || quality} year={year} streamProvider={currentStreamProvider || streamProvider} + streamName={currentStreamName} currentTime={currentTime} duration={duration} playbackSpeed={playbackSpeed} diff --git a/src/components/player/controls/PlayerControls.tsx b/src/components/player/controls/PlayerControls.tsx index 47fe022..4700eaa 100644 --- a/src/components/player/controls/PlayerControls.tsx +++ b/src/components/player/controls/PlayerControls.tsx @@ -16,6 +16,7 @@ interface PlayerControlsProps { quality?: string; year?: number; streamProvider?: string; + streamName?: string; currentTime: number; duration: number; playbackSpeed: number; @@ -51,6 +52,7 @@ export const PlayerControls: React.FC = ({ quality, year, streamProvider, + streamName, currentTime, duration, playbackSpeed, @@ -142,7 +144,7 @@ export const PlayerControls: React.FC = ({ {year && {year}} {quality && {quality}} - {streamProvider && via {streamProvider}} + {streamName && via {streamName}} diff --git a/src/navigation/AppNavigator.tsx b/src/navigation/AppNavigator.tsx index dab0094..0892a54 100644 --- a/src/navigation/AppNavigator.tsx +++ b/src/navigation/AppNavigator.tsx @@ -74,6 +74,7 @@ export type RootStackParamList = { quality?: string; year?: number; streamProvider?: string; + streamName?: string; id?: string; type?: string; episodeId?: string; diff --git a/src/screens/StreamsScreen.tsx b/src/screens/StreamsScreen.tsx index ea726d4..7399055 100644 --- a/src/screens/StreamsScreen.tsx +++ b/src/screens/StreamsScreen.tsx @@ -522,6 +522,10 @@ export const StreamsScreen = () => { // Prepare available streams for the change source feature const streamsToPass = type === 'series' ? episodeStreams : groupedStreams; + // Determine the stream name using the same logic as StreamCard + const isHDRezka = stream.name === 'HDRezka'; + const streamName = isHDRezka ? `HDRezka ${stream.title}` : (stream.name || stream.title || 'Unnamed Stream'); + navigation.navigate('Player', { uri: stream.url, title: metadata?.name || '', @@ -531,6 +535,7 @@ export const StreamsScreen = () => { quality: stream.title?.match(/(\d+)p/)?.[1] || undefined, year: metadata?.year, streamProvider: stream.name, + streamName: streamName, id, type, episodeId: type === 'series' && selectedEpisode ? selectedEpisode : undefined,