diff --git a/apps/expo/src/hooks/DownloadManagerContext.tsx b/apps/expo/src/hooks/DownloadManagerContext.tsx index 67a0b76..68ac580 100644 --- a/apps/expo/src/hooks/DownloadManagerContext.tsx +++ b/apps/expo/src/hooks/DownloadManagerContext.tsx @@ -138,6 +138,16 @@ export const DownloadManagerProvider: React.FC<{ children: ReactNode }> = ({ media: ScrapeMedia, headers?: Record, ): Promise => { + const { status } = await MediaLibrary.requestPermissionsAsync(); + if (status !== MediaLibrary.PermissionStatus.GRANTED) { + toastController.show("Permission denied", { + burntOptions: { preset: "error" }, + native: true, + duration: 500, + }); + return; + } + toastController.show("Download started", { burntOptions: { preset: "none" }, native: true, @@ -367,11 +377,6 @@ export const DownloadManagerProvider: React.FC<{ children: ReactNode }> = ({ try { updateDownloadItem(downloadId, { statusText: "Importing" }); - const { status } = await MediaLibrary.requestPermissionsAsync(); - if (status !== MediaLibrary.PermissionStatus.GRANTED) { - throw new Error("MediaLibrary permission not granted"); - } - const asset = await MediaLibrary.createAssetAsync(fileUri); await FileSystem.deleteAsync(fileUri);