react-native-vad
Version:
VAD / Voice activation detection library for React Native
51 lines (37 loc) • 1.35 kB
JavaScript
// app.plugin.js
const { withAndroidManifest, withProjectBuildGradle } = require('@expo/config-plugins');
function withReactNativeVad(config) {
// Modify AndroidManifest.xml
config = withAndroidManifest(config, (config) => {
const androidManifest = config.modResults;
if (!androidManifest.manifest['uses-permission']) {
androidManifest.manifest['uses-permission'] = [];
}
const permissions = androidManifest.manifest['uses-permission'];
const hasPermission = permissions.some(
(permission) => permission.$['android:name'] === 'android.permission.RECORD_AUDIO'
);
if (!hasPermission) {
permissions.push({ $: { 'android:name': 'android.permission.RECORD_AUDIO' } });
}
return config;
});
// Modify android/build.gradle
config = withProjectBuildGradle(config, (config) => {
const buildGradle = config.modResults.contents;
const vadMaven = `
// react-native-vad added
maven { url("$rootDir/../node_modules/react-native-vad/libs") }
// End react-native-vad added
`;
if (!buildGradle.includes('react-native-vad added')) {
config.modResults.contents = buildGradle.replace(
/repositories\s*{/,
`repositories {\n${vadMaven}`
);
}
return config;
});
return config;
}
module.exports = withReactNativeVad;