mirror of
https://github.com/SrIzan10/helium.git
synced 2026-06-06 00:56:58 +00:00
59 lines
1.7 KiB
JavaScript
59 lines
1.7 KiB
JavaScript
const {
|
|
AndroidConfig,
|
|
createRunOncePlugin,
|
|
withMainActivity,
|
|
} = require("expo/config-plugins");
|
|
|
|
const PERMISSIONS = [
|
|
"android.permission.FOREGROUND_SERVICE",
|
|
"android.permission.FOREGROUND_SERVICE_MEDIA_PROJECTION",
|
|
];
|
|
|
|
function withMediaProjectionPermissions(config) {
|
|
return AndroidConfig.Permissions.withPermissions(config, PERMISSIONS);
|
|
}
|
|
|
|
function withMediaProjectionMainActivity(config) {
|
|
return withMainActivity(config, (configWithActivity) => {
|
|
const { modResults } = configWithActivity;
|
|
const importLine =
|
|
modResults.language === "kt"
|
|
? "import com.oney.WebRTCModule.WebRTCModuleOptions"
|
|
: "import com.oney.WebRTCModule.WebRTCModuleOptions;";
|
|
|
|
const enableLine =
|
|
modResults.language === "kt"
|
|
? " WebRTCModuleOptions.getInstance().enableMediaProjectionService = true"
|
|
: " WebRTCModuleOptions.getInstance().enableMediaProjectionService = true;";
|
|
|
|
if (!modResults.contents.includes(importLine)) {
|
|
modResults.contents = modResults.contents.replace(
|
|
/import android\.os\.Bundle\n/,
|
|
`import android.os.Bundle\n${importLine}\n`,
|
|
);
|
|
}
|
|
|
|
if (!modResults.contents.includes("enableMediaProjectionService = true")) {
|
|
modResults.contents = modResults.contents.replace(
|
|
/\s*super\.onCreate\(null\)/,
|
|
`\n${enableLine}\n super.onCreate(null)`,
|
|
);
|
|
}
|
|
|
|
configWithActivity.modResults = modResults;
|
|
return configWithActivity;
|
|
});
|
|
}
|
|
|
|
function withWebRTCMediaProjection(config) {
|
|
config = withMediaProjectionPermissions(config);
|
|
config = withMediaProjectionMainActivity(config);
|
|
return config;
|
|
}
|
|
|
|
module.exports = createRunOncePlugin(
|
|
withWebRTCMediaProjection,
|
|
"with-webrtc-media-projection",
|
|
"1.0.0",
|
|
);
|