react-native-scanbot-barcode-scanner-sdk
Version:
Scanbot Barcode Scanner SDK React Native Plugin for Android and iOS
34 lines (28 loc) • 933 B
text/typescript
import { ConfigPlugin, withAndroidManifest } from '@expo/config-plugins';
import { ScanbotConfigPlugin } from './pluginTypes';
export const withAndroidCameraPermission: ConfigPlugin<
Pick<ScanbotConfigPlugin, 'androidCameraPermission'>
> = (config, { androidCameraPermission }) => {
if (androidCameraPermission) {
config = withAndroidManifest(config, (manifestProps) => {
const { manifest } = manifestProps.modResults;
const permissionKey = 'uses-permission';
if (!Array.isArray(manifest[permissionKey])) {
manifest[permissionKey] = [];
}
if (
!manifest[permissionKey].find(
(item) => item.$['android:name'] === 'android.permission.CAMERA'
)
) {
manifest[permissionKey].push({
$: {
'android:name': 'android.permission.CAMERA',
},
});
}
return manifestProps;
});
}
return config;
};