Files
streamyfin/plugins/withAndroidManifest.js

43 lines
1.3 KiB
JavaScript

const { withAndroidManifest } = require("expo/config-plugins");
const _withGoogleCastAndroidManifest = (config) =>
withAndroidManifest(config, async (mod) => {
const mainApplication = mod.modResults.manifest.application[0];
// Initialize activity array if it doesn't exist
if (!mainApplication.activity) {
mainApplication.activity = [];
}
const googleCastActivityExists = mainApplication.activity.some(
(activity) =>
activity.$?.["android:name"] ===
"com.reactnative.googlecast.RNGCExpandedControllerActivity",
);
// Only add the activity if it doesn't already exist
if (!googleCastActivityExists) {
mainApplication.activity.push({
$: {
"android:name":
"com.reactnative.googlecast.RNGCExpandedControllerActivity",
"android:theme": "@style/Theme.MaterialComponents.NoActionBar",
"android:launchMode": "singleTask",
"android:exported": "false",
},
});
}
const mainActivity = mainApplication.activity.find(
(activity) => activity.$?.["android:name"] === ".MainActivity",
);
if (mainActivity?.$) {
mainActivity.$["android:supportsPictureInPicture"] = "true";
}
return mod;
});
module.exports = _withGoogleCastAndroidManifest;