Bluesky app fork with some witchin' additions 💫

Apply notification icon settings of FCM on Android (#3113)

Co-authored-by: Hailey <me@haileyok.com>

authored by Eiichi Yoshikawa Hailey and committed by GitHub f61d1e1f 5b8d116e

+2 -1
app.config.js
··· 153 153 'expo-notifications', 154 154 { 155 155 icon: './assets/icon-android-notification.png', 156 - color: '#ffffff', 156 + color: '#1185fe', 157 157 }, 158 158 ], 159 159 './plugins/withAndroidManifestPlugin.js', 160 + './plugins/withAndroidManifestFCMIconPlugin.js', 160 161 './plugins/withAndroidStylesWindowBackgroundPlugin.js', 161 162 './plugins/shareExtension/withShareExtensions.js', 162 163 ].filter(Boolean),
+37
plugins/withAndroidManifestFCMIconPlugin.js
··· 1 + const {withAndroidManifest} = require('expo/config-plugins') 2 + 3 + module.exports = function withAndroidManifestFCMIconPlugin(appConfig) { 4 + return withAndroidManifest(appConfig, function (decoratedAppConfig) { 5 + try { 6 + function addOrModifyMetaData(metaData, name, resource) { 7 + const elem = metaData.find(elem => elem.$['android:name'] === name) 8 + if (elem === undefined) { 9 + metaData.push({ 10 + $: { 11 + 'android:name': name, 12 + 'android:resource': resource, 13 + }, 14 + }) 15 + } else { 16 + elem.$['android:resource'] = resource 17 + } 18 + } 19 + const androidManifest = decoratedAppConfig.modResults.manifest 20 + const metaData = androidManifest.application[0]['meta-data'] 21 + addOrModifyMetaData( 22 + metaData, 23 + 'com.google.firebase.messaging.default_notification_color', 24 + '@color/notification_icon_color', 25 + ) 26 + addOrModifyMetaData( 27 + metaData, 28 + 'com.google.firebase.messaging.default_notification_icon', 29 + '@drawable/notification_icon', 30 + ) 31 + return decoratedAppConfig 32 + } catch (e) { 33 + console.error(`withAndroidManifestFCMIconPlugin failed`, e) 34 + } 35 + return decoratedAppConfig 36 + }) 37 + }