refactor: migrate app.config and Expo config plugins to TypeScript (#1718)

This commit is contained in:
Gauvain
2026-06-30 09:03:47 +02:00
committed by GitHub
parent 97b6a912e0
commit 286a3cad47
19 changed files with 216 additions and 89 deletions

View File

@@ -0,0 +1,46 @@
import { type ConfigPlugin, withAndroidManifest } from "expo/config-plugins";
const withGoogleCastAndroidManifest: ConfigPlugin = (config) =>
withAndroidManifest(config, async (mod) => {
const mainApplication = mod.modResults.manifest.application?.[0];
if (!mainApplication) {
return mod;
}
// 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;
});
export default withGoogleCastAndroidManifest;