const { withAndroidManifest: NativeAndroidManifest, } = require("@expo/config-plugins"); const withAndroidManifest = (config) => NativeAndroidManifest(config, async (config) => { const mainApplication = config.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", }, }); } const mainActivity = mainApplication.activity.find( (activity) => activity.$?.["android:name"] === ".MainActivity", ); if (mainActivity) { mainActivity.$["android:supportsPictureInPicture"] = "true"; } return config; }); module.exports = withAndroidManifest;