about summary refs log tree commit diff
path: root/plugins/withAndroidManifestFCMIconPlugin.js
diff options
context:
space:
mode:
authorJan-Olof Eriksson <jan-olof.eriksson@iki.fi>2024-03-11 14:52:33 +0200
committerGitHub <noreply@github.com>2024-03-11 14:52:33 +0200
commit4a2251f48bd51d8bd427d21f0dd697c8d43d7856 (patch)
tree17b7d68f0a19f54313607257de79accc7b6daf4c /plugins/withAndroidManifestFCMIconPlugin.js
parentcbc65247ae57502356165a5d51270bd8d19fd9a5 (diff)
parent596e744d4177d3be6defeef68f202a70baaf6e37 (diff)
downloadvoidsky-4a2251f48bd51d8bd427d21f0dd697c8d43d7856.tar.zst
Merge branch 'bluesky-social:main' into main
Diffstat (limited to 'plugins/withAndroidManifestFCMIconPlugin.js')
-rw-r--r--plugins/withAndroidManifestFCMIconPlugin.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/plugins/withAndroidManifestFCMIconPlugin.js b/plugins/withAndroidManifestFCMIconPlugin.js
new file mode 100644
index 000000000..066a975d8
--- /dev/null
+++ b/plugins/withAndroidManifestFCMIconPlugin.js
@@ -0,0 +1,37 @@
+const {withAndroidManifest} = require('expo/config-plugins')
+
+module.exports = function withAndroidManifestFCMIconPlugin(appConfig) {
+  return withAndroidManifest(appConfig, function (decoratedAppConfig) {
+    try {
+      function addOrModifyMetaData(metaData, name, resource) {
+        const elem = metaData.find(elem => elem.$['android:name'] === name)
+        if (elem === undefined) {
+          metaData.push({
+            $: {
+              'android:name': name,
+              'android:resource': resource,
+            },
+          })
+        } else {
+          elem.$['android:resource'] = resource
+        }
+      }
+      const androidManifest = decoratedAppConfig.modResults.manifest
+      const metaData = androidManifest.application[0]['meta-data']
+      addOrModifyMetaData(
+        metaData,
+        'com.google.firebase.messaging.default_notification_color',
+        '@color/notification_icon_color',
+      )
+      addOrModifyMetaData(
+        metaData,
+        'com.google.firebase.messaging.default_notification_icon',
+        '@drawable/notification_icon',
+      )
+      return decoratedAppConfig
+    } catch (e) {
+      console.error(`withAndroidManifestFCMIconPlugin failed`, e)
+    }
+    return decoratedAppConfig
+  })
+}