From 9458d113def51fde02d1b964f85c87e0be29e768 Mon Sep 17 00:00:00 2001 From: Fredrik Burmester Date: Sun, 29 Sep 2024 22:56:22 +0200 Subject: [PATCH] wip --- app.json | 2 +- app/(auth)/(tabs)/(home)/settings.tsx | 12 ++++- app/_layout.tsx | 15 +++--- bun.lockb | Bin 588670 -> 589905 bytes components/settings/SettingToggles.tsx | 61 ----------------------- package.json | 2 + providers/DownloadProvider.tsx | 66 ++++++++++++++++++++++++- utils/atoms/settings.ts | 2 - 8 files changed, 86 insertions(+), 74 deletions(-) diff --git a/app.json b/app.json index f173d0d3..3fef0c7c 100644 --- a/app.json +++ b/app.json @@ -19,7 +19,7 @@ "infoPlist": { "NSCameraUsageDescription": "The app needs access to your camera to scan barcodes.", "NSMicrophoneUsageDescription": "The app needs access to your microphone.", - "UIBackgroundModes": ["audio"], + "UIBackgroundModes": ["audio", "fetch"], "NSLocalNetworkUsageDescription": "The app needs access to your local network to connect to your Jellyfin server.", "NSAppTransportSecurity": { "NSAllowsArbitraryLoads": true diff --git a/app/(auth)/(tabs)/(home)/settings.tsx b/app/(auth)/(tabs)/(home)/settings.tsx index 86fb08b5..a75ca44c 100644 --- a/app/(auth)/(tabs)/(home)/settings.tsx +++ b/app/(auth)/(tabs)/(home)/settings.tsx @@ -2,7 +2,10 @@ import { Button } from "@/components/Button"; import { Text } from "@/components/common/Text"; import { ListItem } from "@/components/ListItem"; import { SettingToggles } from "@/components/settings/SettingToggles"; -import { useDownload } from "@/providers/DownloadProvider"; +import { + registerBackgroundFetchAsync, + useDownload, +} from "@/providers/DownloadProvider"; import { apiAtom, useJellyfin, userAtom } from "@/providers/JellyfinProvider"; import { clearLogs, readFromLog } from "@/utils/log"; import { getQuickConnectApi } from "@jellyfin/sdk/lib/utils/api"; @@ -66,6 +69,13 @@ export default function settings() { }} > + {/* */} Information diff --git a/app/_layout.tsx b/app/_layout.tsx index 1ed76bf2..abbfbd9c 100644 --- a/app/_layout.tsx +++ b/app/_layout.tsx @@ -1,28 +1,27 @@ -import { FullScreenVideoPlayer } from "@/components/FullScreenVideoPlayer"; +import { DownloadProvider } from "@/providers/DownloadProvider"; import { JellyfinProvider } from "@/providers/JellyfinProvider"; import { JobQueueProvider } from "@/providers/JobQueueProvider"; import { PlaybackProvider } from "@/providers/PlaybackProvider"; +import { orientationAtom } from "@/utils/atoms/orientation"; import { useSettings } from "@/utils/atoms/settings"; import { ActionSheetProvider } from "@expo/react-native-action-sheet"; import { BottomSheetModalProvider } from "@gorhom/bottom-sheet"; +import { checkForExistingDownloads } from "@kesha-antonov/react-native-background-downloader"; import { DarkTheme, ThemeProvider } from "@react-navigation/native"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { useFonts } from "expo-font"; import { useKeepAwake } from "expo-keep-awake"; -import { Stack, useRouter } from "expo-router"; +import * as Linking from "expo-linking"; +import { Stack } from "expo-router"; import * as ScreenOrientation from "expo-screen-orientation"; import * as SplashScreen from "expo-splash-screen"; import { StatusBar } from "expo-status-bar"; import { Provider as JotaiProvider, useAtom } from "jotai"; -import { useEffect, useRef, useState } from "react"; +import { useEffect, useRef } from "react"; +import { AppState } from "react-native"; import { GestureHandlerRootView } from "react-native-gesture-handler"; import "react-native-reanimated"; -import * as Linking from "expo-linking"; -import { orientationAtom } from "@/utils/atoms/orientation"; import { Toaster } from "sonner-native"; -import { checkForExistingDownloads } from "@kesha-antonov/react-native-background-downloader"; -import { AppState } from "react-native"; -import { DownloadProvider } from "@/providers/DownloadProvider"; SplashScreen.preventAutoHideAsync(); diff --git a/bun.lockb b/bun.lockb index 1f870f83d46cce0a898063b85259ef4b1ee594fe..0438c6be42d7dfaf77d574e18bd2866dfcf68598 100755 GIT binary patch delta 95979 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 SWs8;la!Jbe`YveBS^fq}aN<+| delta 95099 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 = ({ ...props }) => { const [marlinUrl, setMarlinUrl] = useState(""); const [optimizedVersionsServerUrl, setOptimizedVersionsServerUrl] = useState(""); - const [optimizedVersionsAuthHeader, setOptimizedVersionsAuthHeader] = - useState(""); const queryClient = useQueryClient(); @@ -571,65 +569,6 @@ export const SettingToggles: React.FC = ({ ...props }) => { )} - - - - - Optimized versions auth header - - - The auth header for the optimized versions server. - - - - setOptimizedVersionsAuthHeader(text)} - className="w-full" - /> - - - - {settings.optimizedVersionsAuthHeader && ( - - - {settings.optimizedVersionsAuthHeader} - - - )} - - diff --git a/package.json b/package.json index 8a7f82da..3d1a93f9 100644 --- a/package.json +++ b/package.json @@ -31,6 +31,7 @@ "@types/uuid": "^10.0.0", "axios": "^1.7.7", "expo": "~51.0.34", + "expo-background-fetch": "~12.0.1", "expo-blur": "~13.0.2", "expo-build-properties": "~0.12.5", "expo-constants": "~16.0.2", @@ -50,6 +51,7 @@ "expo-splash-screen": "~0.27.6", "expo-status-bar": "~1.12.1", "expo-system-ui": "~3.0.7", + "expo-task-manager": "~11.8.2", "expo-updates": "~0.25.25", "expo-web-browser": "~13.0.3", "ffmpeg-kit-react-native": "^6.0.2", diff --git a/providers/DownloadProvider.tsx b/providers/DownloadProvider.tsx index 67ca0aa8..10d94da3 100644 --- a/providers/DownloadProvider.tsx +++ b/providers/DownloadProvider.tsx @@ -26,6 +26,8 @@ import React, { } from "react"; import { toast } from "sonner-native"; import { apiAtom } from "./JellyfinProvider"; +import * as BackgroundFetch from "expo-background-fetch"; +import * as TaskManager from "expo-task-manager"; export type ProcessItem = { id: string; @@ -42,8 +44,33 @@ export type ProcessItem = { | "queued"; }; +export const BACKGROUND_FETCH_TASK = "background-fetch"; + +TaskManager.defineTask(BACKGROUND_FETCH_TASK, async () => { + const now = Date.now(); + + console.log( + `Got background fetch call at date: ${new Date(now).toISOString()}` + ); + + // Be sure to return the successful result type! + return BackgroundFetch.BackgroundFetchResult.NewData; +}); + const STORAGE_KEY = "runningProcesses"; +export async function registerBackgroundFetchAsync() { + return BackgroundFetch.registerTaskAsync(BACKGROUND_FETCH_TASK, { + minimumInterval: 60 * 15, // 1 minutes + stopOnTerminate: false, // android only, + startOnBoot: true, // android only + }); +} + +export async function unregisterBackgroundFetchAsync() { + return BackgroundFetch.unregisterTaskAsync(BACKGROUND_FETCH_TASK); +} + const DownloadContext = createContext | null>(null); @@ -66,6 +93,9 @@ function useDownloadProvider() { }); useEffect(() => { + // Check background task status + checkStatusAsync(); + // Load initial processes state from AsyncStorage const loadInitialProcesses = async () => { const storedProcesses = await readProcesses(); @@ -74,6 +104,40 @@ function useDownloadProvider() { loadInitialProcesses(); }, []); + /******************** + * Background task + *******************/ + const [isRegistered, setIsRegistered] = useState(false); + const [status, setStatus] = + useState(null); + + const checkStatusAsync = async () => { + const status = await BackgroundFetch.getStatusAsync(); + const isRegistered = await TaskManager.isTaskRegisteredAsync( + BACKGROUND_FETCH_TASK + ); + setStatus(status); + setIsRegistered(isRegistered); + + console.log("Background fetch status:", status); + console.log("Background fetch task registered:", isRegistered); + }; + + const toggleFetchTask = async () => { + if (isRegistered) { + console.log("Unregistering background fetch task"); + await unregisterBackgroundFetchAsync(); + } else { + console.log("Registering background fetch task"); + await registerBackgroundFetchAsync(); + } + + checkStatusAsync(); + }; + /********************** + ********************** + *********************/ + const clearProcesses = useCallback(async () => { await AsyncStorage.removeItem(STORAGE_KEY); setProcesses([]); @@ -129,7 +193,7 @@ function useDownloadProvider() { }) .begin(() => { toast.info(`Download started for ${process.item.Name}`); - updateProcess(process.id, { state: "downloading" }); + updateProcess(process.id, { state: "downloading", progress: 0 }); }) .progress((data) => { const percent = (data.bytesDownloaded / data.bytesTotal) * 100; diff --git a/utils/atoms/settings.ts b/utils/atoms/settings.ts index b5e687a1..bf03502d 100644 --- a/utils/atoms/settings.ts +++ b/utils/atoms/settings.ts @@ -73,7 +73,6 @@ export type Settings = { forwardSkipTime: number; rewindSkipTime: number; optimizedVersionsServerUrl?: string | null; - optimizedVersionsAuthHeader?: string | null; downloadMethod?: "optimized" | "remux"; }; /** @@ -110,7 +109,6 @@ const loadSettings = async (): Promise => { forwardSkipTime: 30, rewindSkipTime: 10, optimizedVersionsServerUrl: null, - optimizedVersionsAuthHeader: null, downloadMethod: "remux", };