diff --git a/native/media/file-utils.js b/native/media/file-utils.js --- a/native/media/file-utils.js +++ b/native/media/file-utils.js @@ -1,7 +1,6 @@ // @flow import base64 from 'base-64'; -import * as ExpoFileSystem from 'expo-file-system'; import * as MediaLibrary from 'expo-media-library'; import invariant from 'invariant'; import { Platform } from 'react-native'; @@ -34,7 +33,6 @@ export type FetchFileInfoResult = { +success: true, - +uri: string, +orientation: ?number, +fileSize: number, +mime: ?string, @@ -57,14 +55,13 @@ const { mediaNativeID } = optionalInputs; const steps: Array<MediaMissionStep> = []; - let assetInfoPromise, assetURI; + let assetInfoPromise; const inputPath = pathFromURI(inputURI); if (mediaNativeID && (!inputPath || optionalFields.orientation)) { assetInfoPromise = (async () => { const { steps: assetInfoSteps, result: assetInfoResult } = await fetchAssetInfo(mediaNativeID); steps.push(...assetInfoSteps); - assetURI = assetInfoResult.localURI; return assetInfoResult; })(); } @@ -154,27 +151,10 @@ }; } - let finalURI = uri; - // prefer asset URI, with one exception: - // if the target URI is a file in our app local cache dir, we shouldn't - // replace it because it was already preprocessed by either our media - // processing logic or cropped by expo-image-picker - const isFileInCacheDir = - uri.includes(temporaryDirectoryPath) || - uri.includes(ExpoFileSystem.cacheDirectory); - if (assetURI && assetURI !== uri && !isFileInCacheDir) { - finalURI = assetURI; - console.log( - 'fetchAssetInfo returned localURI ' + - `${assetURI} when we already had ${uri}`, - ); - } - return { steps, result: { success: true, - uri: finalURI, orientation, fileSize, mime: types.mime, diff --git a/native/media/media-utils.js b/native/media/media-utils.js --- a/native/media/media-utils.js +++ b/native/media/media-utils.js @@ -87,8 +87,7 @@ config: MediaProcessConfig, sendResult: (result: MediaMissionFailure | MediaResult) => void, ): Promise<$ReadOnlyArray<MediaMissionStep>> { - let initialURI = null, - uploadURI = null, + let uploadURI = null, uploadThumbnailURI = null, dimensions = selection.dimensions, mediaType = null, @@ -111,7 +110,7 @@ 'missing required fields in returnResult', ); const shouldDisposePath = - initialURI !== uploadURI ? pathFromURI(uploadURI) : null; + selection.uri !== uploadURI ? pathFromURI(uploadURI) : null; const filename = sanitizeFilename(selection.filename, mime); if (mediaType === 'video') { invariant(uploadThumbnailURI, 'video should have uploadThumbnailURI'); @@ -184,7 +183,7 @@ return await finish(fileInfoResult); } const { orientation, fileSize } = fileInfoResult; - ({ uri: initialURI, mime, mediaType } = fileInfoResult); + ({ mime, mediaType } = fileInfoResult); if (!mime || !mediaType) { return await finish({ success: false, @@ -196,7 +195,7 @@ if (mediaType === 'video') { const { steps: videoSteps, result: videoResult } = await processVideo( { - uri: initialURI, + uri: selection.uri, mime, filename: selection.filename, fileSize, @@ -221,7 +220,7 @@ } = videoResult); } else if (mediaType === 'photo') { const { steps: imageSteps, result: imageResult } = await processImage({ - uri: initialURI, + uri: selection.uri, dimensions, mime, fileSize, @@ -236,7 +235,7 @@ invariant(false, `unknown mediaType ${mediaType}`); } - if (uploadURI === initialURI) { + if (uploadURI === selection.uri) { return await finish(); } diff --git a/native/media/video-utils.js b/native/media/video-utils.js --- a/native/media/video-utils.js +++ b/native/media/video-utils.js @@ -1,9 +1,8 @@ // @flow -import invariant from 'invariant'; import filesystem from 'react-native-fs'; -import { mediaConfig, pathFromURI } from 'lib/media/file-utils.js'; +import { mediaConfig } from 'lib/media/file-utils.js'; import { getVideoProcessingPlan } from 'lib/media/video-utils.js'; import type { ProcessPlan } from 'lib/media/video-utils.js'; import type { @@ -63,9 +62,7 @@ result: MediaMissionFailure | ProcessVideoResponse, }> { const steps: Array<MediaMissionStep> = []; - - const path = pathFromURI(input.uri); - invariant(path, `could not extract path from ${input.uri}`); + const path = input.uri; const initialCheckStep = await checkVideoInfo(path); steps.push(initialCheckStep);