diff --git a/app/(auth)/items/[id].tsx b/app/(auth)/items/[id].tsx index 98bdfb89..161cd57b 100644 --- a/app/(auth)/items/[id].tsx +++ b/app/(auth)/items/[id].tsx @@ -35,11 +35,6 @@ import { useLocalSearchParams } from "expo-router"; import { useAtom } from "jotai"; import { useCallback, useMemo, useState } from "react"; import { View } from "react-native"; -import CastContext, { - PlayServicesState, - useCastDevice, - useRemoteMediaClient, -} from "react-native-google-cast"; import { ParallaxScrollView } from "../../../components/ParallaxPage"; const page: React.FC = () => { @@ -51,14 +46,10 @@ const page: React.FC = () => { const [settings] = useSettings(); - const castDevice = useCastDevice(); - const [, setCurrentlyPlying] = useAtom(currentlyPlayingItemAtom); const [, setPlaying] = useAtom(playingAtom); const [, setFullscreen] = useAtom(fullScreenAtom); - const client = useRemoteMediaClient(); - const chromecastReady = useMemo(() => !!castDevice?.deviceId, [castDevice]); const [selectedAudioStream, setSelectedAudioStream] = useState(-1); const [selectedSubtitleStream, setSelectedSubtitleStream] = useState(0); @@ -99,7 +90,6 @@ const page: React.FC = () => { "playbackUrl", item?.Id, maxBitrate, - castDevice, selectedAudioStream, selectedSubtitleStream, settings, @@ -109,9 +99,7 @@ const page: React.FC = () => { let deviceProfile: any = ios; - if (castDevice?.deviceId) { - deviceProfile = chromecastProfile; - } else if (settings?.deviceProfile === "Native") { + if (settings?.deviceProfile === "Native") { deviceProfile = native; } else if (settings?.deviceProfile === "Old") { deviceProfile = old; @@ -142,34 +130,13 @@ const page: React.FC = () => { async (type: "device" | "cast" = "device") => { if (!playbackUrl || !item) return; - if (type === "cast" && client) { - await CastContext.getPlayServicesState().then((state) => { - if (state && state !== PlayServicesState.SUCCESS) - CastContext.showPlayServicesErrorDialog(state); - else { - client.loadMedia({ - mediaInfo: { - contentUrl: playbackUrl, - contentType: "video/mp4", - metadata: { - type: item.Type === "Episode" ? "tvShow" : "movie", - title: item.Name || "", - subtitle: item.Overview || "", - }, - }, - startTime: 0, - }); - } - }); - } else { - setCurrentlyPlying({ - item, - playbackUrl, - }); - setPlaying(true); - if (settings?.openFullScreenVideoPlayerByDefault === true) { - setFullscreen(true); - } + setCurrentlyPlying({ + item, + playbackUrl, + }); + setPlaying(true); + if (settings?.openFullScreenVideoPlayerByDefault === true) { + setFullscreen(true); } }, [playbackUrl, item, settings] @@ -270,7 +237,7 @@ const page: React.FC = () => { diff --git a/package-lock.json b/package-lock.json index 5c284168..629178d4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -53,7 +53,6 @@ "react-native-gesture-handler": "~2.16.1", "react-native-get-random-values": "^1.11.0", "react-native-google-cast": "^4.8.2", - "react-native-ios-context-menu": "^2.5.1", "react-native-ios-utilities": "^4.4.5", "react-native-reanimated": "~3.10.1", "react-native-reanimated-carousel": "4.0.0-alpha.12", @@ -1528,11 +1527,6 @@ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, - "node_modules/@dominicstop/ts-event-emitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@dominicstop/ts-event-emitter/-/ts-event-emitter-1.1.0.tgz", - "integrity": "sha512-CcxmJIvUb1vsFheuGGVSQf4KdPZC44XolpUT34+vlal+LyQoBUOn31pjFET5M9ctOxEpt8xa0M3/2M7uUiAoJw==" - }, "node_modules/@egjs/hammerjs": { "version": "2.0.17", "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", @@ -16847,20 +16841,6 @@ "react": "^16.6.0 || ^17.0.0 || ^18.0.0" } }, - "node_modules/react-native-ios-context-menu": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/react-native-ios-context-menu/-/react-native-ios-context-menu-2.5.1.tgz", - "integrity": "sha512-Qt+0qeW/2x2Dc6aNUwsUR6BV0EozT5n2VNYIDKjdEQMF0xrN/o37p2+Oz6xhvWcA+15gAXqCbGq6omjPHLowRw==", - "dependencies": { - "@dominicstop/ts-event-emitter": "^1.1.0" - }, - "peerDependencies": { - "expo": "*", - "react": "*", - "react-native": "*", - "react-native-ios-utilities": "4.4.x" - } - }, "node_modules/react-native-ios-utilities": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/react-native-ios-utilities/-/react-native-ios-utilities-4.5.0.tgz", diff --git a/package.json b/package.json index 93fb1a7f..c5d14833 100644 --- a/package.json +++ b/package.json @@ -60,7 +60,6 @@ "react-native-gesture-handler": "~2.16.1", "react-native-get-random-values": "^1.11.0", "react-native-google-cast": "^4.8.2", - "react-native-ios-context-menu": "^2.5.1", "react-native-ios-utilities": "^4.4.5", "react-native-reanimated": "~3.10.1", "react-native-reanimated-carousel": "4.0.0-alpha.12", diff --git a/providers/JobQueueProvider.tsx b/providers/JobQueueProvider.tsx deleted file mode 100644 index 00358e48..00000000 --- a/providers/JobQueueProvider.tsx +++ /dev/null @@ -1,14 +0,0 @@ -import React, { createContext } from "react"; -import { useJobProcessor } from "@/utils/atoms/queue"; - -const JobQueueContext = createContext(null); - -export const JobQueueProvider: React.FC<{ children: React.ReactNode }> = ({ - children, -}) => { - useJobProcessor(); - - return ( - {children} - ); -};