diff --git a/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageCustomHandler.java b/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageCustomHandler.java new file mode 100644 index 000000000..930dba7d8 --- /dev/null +++ b/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageCustomHandler.java @@ -0,0 +1,7 @@ +package com.dieam.reactnativepushnotification.modules; + +import android.os.Bundle; + +public interface RNReceivedMessageCustomHandler { + void onMessageReceived(Bundle bundle); +} diff --git a/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java b/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java index 721ca40cc..c170a9bab 100644 --- a/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java +++ b/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java @@ -23,6 +23,7 @@ import org.json.JSONObject; +import java.util.ArrayList; import java.util.Map; import java.util.List; import java.security.SecureRandom; @@ -33,6 +34,8 @@ public class RNReceivedMessageHandler { private FirebaseMessagingService mFirebaseMessagingService; + public static List CustomHandlers = new ArrayList(); + public RNReceivedMessageHandler(@NonNull FirebaseMessagingService service) { this.mFirebaseMessagingService = service; } @@ -128,6 +131,10 @@ public void handleReceivedMessage(RemoteMessage message) { Log.v(LOG_TAG, "onMessageReceived: " + bundle); + for (RNReceivedMessageCustomHandler handler : CustomHandlers) { + handler.onMessageReceived(bundle); + } + // We need to run this on the main thread, as the React code assumes that is true. // Namely, DevServerHelper constructs a Handler() without a Looper, which triggers: // "Can't create handler inside thread that has not called Looper.prepare()"