diff --git a/components/video-player/controls/Controls.tsx b/components/video-player/controls/Controls.tsx index 7ba3426b..894d07c4 100644 --- a/components/video-player/controls/Controls.tsx +++ b/components/video-player/controls/Controls.tsx @@ -1,8 +1,8 @@ -import React, { useCallback, useEffect, useRef, useState } from "react"; import { Text } from "@/components/common/Text"; import { Loader } from "@/components/Loader"; import { useAdjacentItems } from "@/hooks/useAdjacentEpisodes"; import { useCreditSkipper } from "@/hooks/useCreditSkipper"; +import { useHaptic } from "@/hooks/useHaptic"; import { useIntroSkipper } from "@/hooks/useIntroSkipper"; import { useTrickplay } from "@/hooks/useTrickplay"; import { @@ -29,12 +29,19 @@ import { BaseItemDto, MediaSourceInfo, } from "@jellyfin/sdk/lib/generated-client"; -import { useHaptic } from "@/hooks/useHaptic"; import { Image } from "expo-image"; import { useLocalSearchParams, useRouter } from "expo-router"; +import * as ScreenOrientation from "expo-screen-orientation"; import { useAtom } from "jotai"; import { debounce } from "lodash"; -import { Dimensions, Pressable, TouchableOpacity, View } from "react-native"; +import React, { useCallback, useEffect, useRef, useState } from "react"; +import { + Dimensions, + Pressable, + TouchableOpacity, + useWindowDimensions, + View, +} from "react-native"; import { Slider } from "react-native-awesome-slider"; import { runOnJS, @@ -42,10 +49,7 @@ import { useAnimatedReaction, useSharedValue, } from "react-native-reanimated"; -import { - SafeAreaView, - useSafeAreaInsets, -} from "react-native-safe-area-context"; +import { useSafeAreaInsets } from "react-native-safe-area-context"; import { VideoRef } from "react-native-video"; import AudioSlider from "./AudioSlider"; import BrightnessSlider from "./BrightnessSlider"; @@ -56,7 +60,7 @@ import DropdownViewTranscoding from "./dropdown/DropdownViewTranscoding"; import { EpisodeList } from "./EpisodeList"; import NextEpisodeCountDownButton from "./NextEpisodeCountDownButton"; import SkipButton from "./SkipButton"; -import * as ScreenOrientation from "expo-screen-orientation"; +import { useOrientation } from "@/hooks/useOrientation"; interface Props { item: BaseItemDto; @@ -119,6 +123,7 @@ export const Controls: React.FC = ({ const insets = useSafeAreaInsets(); const [api] = useAtom(apiAtom); + const { height: screenHeight, width: screenWidth } = useWindowDimensions(); const { previousItem, nextItem } = useAdjacentItems({ item }); const { trickPlayUrl, @@ -506,9 +511,13 @@ export const Controls: React.FC = ({ }} style={{ position: "absolute", - width: Dimensions.get("window").width, - height: Dimensions.get("window").height, + width: screenWidth, + height: screenHeight, backgroundColor: "black", + left: 0, + right: 0, + top: 0, + bottom: 0, opacity: showControls ? 0.5 : 0, }} > @@ -520,8 +529,8 @@ export const Controls: React.FC = ({ top: settings?.safeAreaInControlsEnabled ? insets.top : 0, right: settings?.safeAreaInControlsEnabled ? insets.right : 0, width: settings?.safeAreaInControlsEnabled - ? Dimensions.get("window").width - insets.left - insets.right - : Dimensions.get("window").width, + ? screenWidth - insets.left - insets.right + : screenWidth, opacity: showControls ? 1 : 0, }, ]}