Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -57,11 +57,16 @@ const createNativeFileService = ({
mediaLibraryModule: typeof CameraRoll;
fsModule: typeof FileAccess;
}): FileServiceInterface => {
const cameraPermissions: Permission[] = Platform.select({
ios: [permissionModule.PERMISSIONS.IOS.CAMERA, permissionModule.PERMISSIONS.IOS.MICROPHONE],
const requiredPermissions: Permission[] = Platform.select({
ios: [permissionModule.PERMISSIONS.IOS.CAMERA],
android: [permissionModule.PERMISSIONS.ANDROID.CAMERA],
default: [],
});
const optionalPermissions: Permission[] = Platform.select({
ios: [permissionModule.PERMISSIONS.IOS.MICROPHONE],
android: [],
default: [],
});
const mediaLibraryPermissions: Permission[] = Platform.select({
ios: [permissionModule.PERMISSIONS.IOS.PHOTO_LIBRARY, permissionModule.PERMISSIONS.IOS.PHOTO_LIBRARY_ADD_ONLY],
android: getAndroidStoragePermissionsByAPILevel(permissionModule),
Expand All @@ -70,12 +75,15 @@ const createNativeFileService = ({

class NativeFileService implements FileServiceInterface {
async hasCameraPermission(): Promise<boolean> {
const status = await permissionModule.checkMultiple(cameraPermissions);
const status = await permissionModule.checkMultiple(requiredPermissions);
return nativePermissionGranted(status);
}
async requestCameraPermission(): Promise<boolean> {
const status = await permissionModule.requestMultiple(cameraPermissions);
return nativePermissionGranted(status);
const requiredPermissionsStatus = await permissionModule.requestMultiple(requiredPermissions);
if (!nativePermissionGranted(requiredPermissionsStatus)) return false;

await permissionModule.requestMultiple(optionalPermissions);
return true;
}
async hasMediaLibraryPermission(): Promise<boolean> {
const status = await permissionModule.checkMultiple(mediaLibraryPermissions);
Expand Down
4 changes: 2 additions & 2 deletions sample/ios/Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -1763,7 +1763,7 @@ SPEC CHECKSUMS:
Permission-PhotoLibrary: 03c52ed95dadfb0f2ba4c7663786cce0c4e0c978
Permission-PhotoLibraryAddOnly: c4fbf91806bbdc3ed877049bc09fbe58ad9a7c97
PromisesObjC: f5707f49cb48b9636751c5b2e7d227e43fba9f47
RCT-Folly: 02617c592a293bd6d418e0a88ff4ee1f88329b47
RCT-Folly: 5dc73daec3476616d19e8a53f0156176f7b55461
RCTDeprecation: 4c7eeb42be0b2e95195563c49be08d0b839d22b4
RCTRequired: d530a0f489699c8500e944fde963102c42dcd0c2
RCTTypeSafety: b20878506b094fa3d9007d7b9e4be0faa3562499
Expand Down Expand Up @@ -1836,7 +1836,7 @@ SPEC CHECKSUMS:
SDWebImage: a7f831e1a65eb5e285e3fb046a23fcfbf08e696d
SDWebImageWebPCoder: 908b83b6adda48effe7667cd2b7f78c897e5111d
SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d
Yoga: 88480008ccacea6301ff7bf58726e27a72931c8d
Yoga: 04f1db30bb810187397fa4c37dd1868a27af229c
ZIPFoundation: b8c29ea7ae353b309bc810586181fd073cb3312c

PODFILE CHECKSUM: 854e85b2bbfd7d0e442b6dea393d8c15cb83909e
Expand Down