chore: Move everything into package/
(#1745)
* Move everything into package * Remove .DS_Store * Move scripts and eslintrc to package * Create CODE_OF_CONDUCT.md * fix some links * Update all links (I think) * Update generated docs * Update notice-yarn-changes.yml * Update validate-android.yml * Update validate-cpp.yml * Delete notice-yarn-changes.yml * Update validate-cpp.yml * Update validate-cpp.yml * Update validate-js.yml * Update validate-cpp.yml * Update validate-cpp.yml * wrong c++ style * Revert "wrong c++ style" This reverts commit 55a3575589c6f13f8b05134d83384f55e0601ab2.
This commit is contained in:
23
package/src/expo-plugin/withDisableFrameProcessorsAndroid.ts
Normal file
23
package/src/expo-plugin/withDisableFrameProcessorsAndroid.ts
Normal file
@@ -0,0 +1,23 @@
|
||||
import { ConfigPlugin, withGradleProperties } from '@expo/config-plugins';
|
||||
|
||||
/**
|
||||
* Set the `VisionCamera_disableFrameProcessors` value in the static `gradle.properties` file.
|
||||
* This is used to disable frame processors if you don't need it for android.
|
||||
*/
|
||||
export const withDisableFrameProcessorsAndroid: ConfigPlugin = (c) => {
|
||||
const disableFrameProcessorsKey = 'VisionCamera_disableFrameProcessors';
|
||||
return withGradleProperties(c, (config) => {
|
||||
config.modResults = config.modResults.filter((item) => {
|
||||
if (item.type === 'property' && item.key === disableFrameProcessorsKey) return false;
|
||||
return true;
|
||||
});
|
||||
|
||||
config.modResults.push({
|
||||
type: 'property',
|
||||
key: disableFrameProcessorsKey,
|
||||
value: 'true',
|
||||
});
|
||||
|
||||
return config;
|
||||
});
|
||||
};
|
13
package/src/expo-plugin/withDisableFrameProcessorsIOS.ts
Normal file
13
package/src/expo-plugin/withDisableFrameProcessorsIOS.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { ConfigPlugin, withPodfileProperties } from '@expo/config-plugins';
|
||||
|
||||
/**
|
||||
* Set the `disableFrameProcessors` inside of the XcodeProject.
|
||||
* This is used to disable frame processors if you don't need it on iOS. (will save CPU and Memory)
|
||||
*/
|
||||
export const withDisableFrameProcessorsIOS: ConfigPlugin = (c) => {
|
||||
return withPodfileProperties(c, (config) => {
|
||||
// TODO: Implement Podfile writing
|
||||
config.ios = config.ios;
|
||||
return config;
|
||||
});
|
||||
};
|
37
package/src/expo-plugin/withVisionCamera.ts
Normal file
37
package/src/expo-plugin/withVisionCamera.ts
Normal file
@@ -0,0 +1,37 @@
|
||||
import { withPlugins, AndroidConfig, ConfigPlugin, createRunOncePlugin } from '@expo/config-plugins';
|
||||
import { withDisableFrameProcessorsAndroid } from './withDisableFrameProcessorsAndroid';
|
||||
import { withDisableFrameProcessorsIOS } from './withDisableFrameProcessorsIOS';
|
||||
// eslint-disable-next-line @typescript-eslint/no-var-requires, @typescript-eslint/no-unsafe-assignment
|
||||
const pkg = require('../../../package.json');
|
||||
|
||||
const CAMERA_USAGE = 'Allow $(PRODUCT_NAME) to access your camera';
|
||||
const MICROPHONE_USAGE = 'Allow $(PRODUCT_NAME) to access your microphone';
|
||||
|
||||
type Props = {
|
||||
cameraPermissionText?: string;
|
||||
enableMicrophonePermission?: boolean;
|
||||
microphonePermissionText?: string;
|
||||
disableFrameProcessors?: boolean;
|
||||
};
|
||||
|
||||
const withCamera: ConfigPlugin<Props> = (config, props = {}) => {
|
||||
if (config.ios == null) config.ios = {};
|
||||
if (config.ios.infoPlist == null) config.ios.infoPlist = {};
|
||||
config.ios.infoPlist.NSCameraUsageDescription =
|
||||
props.cameraPermissionText ?? (config.ios.infoPlist.NSCameraUsageDescription as string | undefined) ?? CAMERA_USAGE;
|
||||
if (props.enableMicrophonePermission) {
|
||||
config.ios.infoPlist.NSMicrophoneUsageDescription =
|
||||
props.microphonePermissionText ?? (config.ios.infoPlist.NSMicrophoneUsageDescription as string | undefined) ?? MICROPHONE_USAGE;
|
||||
}
|
||||
const androidPermissions = ['android.permission.CAMERA'];
|
||||
if (props.enableMicrophonePermission) androidPermissions.push('android.permission.RECORD_AUDIO');
|
||||
|
||||
if (props.disableFrameProcessors) {
|
||||
config = withDisableFrameProcessorsAndroid(config);
|
||||
config = withDisableFrameProcessorsIOS(config);
|
||||
}
|
||||
|
||||
return withPlugins(config, [[AndroidConfig.Permissions.withPermissions, androidPermissions]]);
|
||||
};
|
||||
|
||||
export default createRunOncePlugin(withCamera, pkg.name, pkg.version);
|
Reference in New Issue
Block a user