I am trying to change the notification Icon used according to the payloads in a react-native project on the android side. Here's the payload:
{"GCM": "{\"notification\": { \"text\": \"text\", \"title\": \"Title\", \"icon\":\"ic_stat_logo\", \"color\":\"#FA8072\"}}"}
What I am getting, however, is that when the app is in the background or closed the notification icon displayed is the one I provided, but in the foreground, it displays the app icon instead.
I tried to look at the documentation but nothing has been found after searching for a long time. Is this an android restriction if so any way to bypass it?
Also here's the manifest:
<application
android:name=".MainApplication"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme"
android:usesCleartextTraffic="true"
android:requestLegacyExternalStorage="true"
android:largeHeap="true">
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel_id"
android:value="@string/channel_id" />
<meta-data android:name="com.google.firebase.messaging.default_notification_icon" android:resource="@mipmap/ic_notification" />
<meta-data android:name="com.dieam.reactnativepushnotification.notification_channel_name"
android:value="@string/channel_name"/>
<meta-data android:name="com.dieam.reactnativepushnotification.notification_channel_description" android:value="@string/channel_description"/>
<!-- Change the value to true to enable pop-up for in foreground (remote-only, for local use ignoreInForeground) -->
<meta-data android:name="com.dieam.reactnativepushnotification.notification_foreground"
android:value="true"/>
<!-- Change the resource name to your App's accent color - or any other color you want -->
<meta-data android:name="com.dieam.reactnativepushnotification.notification_color"
android:resource="@color/white"/> <!-- or @android:color/{name} to use a standard color -->
<receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationPublisher" />
<receiver android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationBootEventReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
<service
android:name="com.dieam.reactnativepushnotification.modules.RNPushNotificationListenerService"
android:exported="false" >
<intent-filter>
<action android:name="com.google.firebase.MESSAGING_EVENT" />
</intent-filter>
</service>
<activity
android:name=".MainActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize|uiMode"
android:launchMode="singleTask"
android:fitsSystemWindows="true"
android:label="@string/app_name"
android:windowSoftInputMode="adjustPan"
android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
The issue didn't come from the configuration, but rather from the library react-native-push-notification
which didn't take smallIcon
attribute into account.