mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
63769518e0
Summary: In iOS 13, Apple made a change that results in video URLs returned by UIImagePickerController becoming invalidated as soon as the info object from the delegate callback is released. This commit works around this issue by retaining these info objects by default and giving the application a way to release them once it is done processing the video. See also https://stackoverflow.com/questions/57798968/didfinishpickingmediawithinfo-returns-different-url-in-ios-13 Reviewed By: olegbl, mmmulani Differential Revision: D17845889 fbshipit-source-id: 12d0e496508dafa2581ef12730f7537ef98c60e2
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
/**
|
|
* Copyright (c) Facebook, Inc. and its affiliates.
|
|
*
|
|
* This source code is licensed under the MIT license found in the
|
|
* LICENSE file in the root directory of this source tree.
|
|
*
|
|
* @flow
|
|
* @format
|
|
*/
|
|
|
|
'use strict';
|
|
|
|
import type {TurboModule} from '../TurboModule/RCTExport';
|
|
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
|
|
export interface Spec extends TurboModule {
|
|
+getConstants: () => {||};
|
|
+canRecordVideos: (callback: (result: boolean) => void) => void;
|
|
+canUseCamera: (callback: (result: boolean) => void) => void;
|
|
+openCameraDialog: (
|
|
config: {|
|
|
unmirrorFrontFacingCamera: boolean,
|
|
videoMode: boolean,
|
|
|},
|
|
successCallback: (imageURL: string, height: number, width: number) => void,
|
|
cancelCallback: () => void,
|
|
) => void;
|
|
+openSelectDialog: (
|
|
config: {|
|
|
showImages: boolean,
|
|
showVideos: boolean,
|
|
|},
|
|
successCallback: (imageURL: string, height: number, width: number) => void,
|
|
cancelCallback: () => void,
|
|
) => void;
|
|
+clearAllPendingVideos: () => void;
|
|
+removePendingVideo: (url: string) => void;
|
|
}
|
|
|
|
export default (TurboModuleRegistry.get<Spec>('ImagePickerIOS'): ?Spec);
|