diff --git a/node_modules/react-native-push-notification/android/build.gradle b/node_modules/react-native-push-notification/android/build.gradle
index d6019f6..1f7e5d1 100644
--- a/node_modules/react-native-push-notification/android/build.gradle
+++ b/node_modules/react-native-push-notification/android/build.gradle
@@ -60,5 +60,4 @@ dependencies {
     implementation "$appCompatLibName:$supportLibVersion"
     implementation 'com.facebook.react:react-native:+'
     implementation 'me.leolin:ShortcutBadger:1.1.22@aar'
-    implementation "com.google.firebase:firebase-messaging:${safeExtGet('firebaseMessagingVersion', '21.1.0')}"
 }
diff --git a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotification.java b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotification.java
index d162680..56c5a76 100644
--- a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotification.java
+++ b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotification.java
@@ -2,14 +2,11 @@ package com.dieam.reactnativepushnotification.modules;
 
 import android.app.Activity;
 import android.app.Application;
-import android.app.NotificationManager;
-import android.content.BroadcastReceiver;
-import android.content.Context;
 import android.content.Intent;
-import android.content.IntentFilter;
+import android.os.Build;
 import android.os.Bundle;
-import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
+import androidx.annotation.RequiresApi;
 import androidx.core.app.NotificationManagerCompat;
 
 import com.dieam.reactnativepushnotification.helpers.ApplicationBadgeHelper;
@@ -26,7 +23,6 @@ import com.facebook.react.bridge.WritableArray;
 import com.facebook.react.bridge.ReadableMap;
 import com.facebook.react.bridge.WritableMap;
 
-import java.io.IOException;
 import java.security.SecureRandom;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -34,9 +30,6 @@ import java.util.Map;
 
 import android.util.Log;
 
-import com.google.android.gms.tasks.OnCompleteListener;
-import com.google.android.gms.tasks.Task;
-import com.google.firebase.messaging.FirebaseMessaging;
 
 public class RNPushNotification extends ReactContextBaseJavaModule implements ActivityEventListener {
     public static final String LOG_TAG = "RNPushNotification";// all logging should use this tag
@@ -137,30 +130,6 @@ public class RNPushNotification extends ReactContextBaseJavaModule implements Ac
     public void requestPermissions() {
       final RNPushNotificationJsDelivery fMjsDelivery = mJsDelivery;
 
-      FirebaseMessaging.getInstance().getToken()
-              .addOnCompleteListener(new OnCompleteListener<String>() {
-                  @Override
-                  public void onComplete(@NonNull Task<String> task) {
-                      if (!task.isSuccessful()) {
-                          Log.e(LOG_TAG, "exception", task.getException());
-                          return;
-                      }
-
-                      WritableMap params = Arguments.createMap();
-                      params.putString("deviceToken", task.getResult());
-                      fMjsDelivery.sendEvent("remoteNotificationsRegistered", params);
-                  }
-              });
-    }
-
-    @ReactMethod
-    public void subscribeToTopic(String topic) {
-        FirebaseMessaging.getInstance().subscribeToTopic(topic);
-    }
-    
-    @ReactMethod
-    public void unsubscribeFromTopic(String topic) {
-        FirebaseMessaging.getInstance().unsubscribeFromTopic(topic);
     }
 
     @ReactMethod
@@ -280,7 +249,6 @@ public class RNPushNotification extends ReactContextBaseJavaModule implements Ac
      * Unregister for all remote notifications received
      */
     public void abandonPermissions() {
-      FirebaseMessaging.getInstance().deleteToken();
       Log.i(LOG_TAG, "InstanceID deleted");
     }
 
diff --git a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationHelper.java b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationHelper.java
index 248ff08..ff198d5 100644
--- a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationHelper.java
+++ b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationHelper.java
@@ -56,11 +56,12 @@ public class RNPushNotificationHelper {
     private Context context;
     private RNPushNotificationConfig config;
     private final SharedPreferences scheduledNotificationsPersistence;
-
+    private int FLAG_MUTABLE = 1<<25;
     public RNPushNotificationHelper(Application context) {
         this.context = context;
         this.config = new RNPushNotificationConfig(context);
         this.scheduledNotificationsPersistence = context.getSharedPreferences(RNPushNotificationHelper.PREFERENCES_KEY, Context.MODE_PRIVATE);
+
     }
 
     public Class getMainActivityClass() {
@@ -455,6 +456,7 @@ public class RNPushNotificationHelper {
 
             int notificationID = Integer.parseInt(notificationIdString);
 
+
             PendingIntent pendingIntent = PendingIntent.getActivity(context, notificationID, intent,
                     Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE : PendingIntent.FLAG_UPDATE_CURRENT);
 
@@ -533,7 +535,18 @@ public class RNPushNotificationHelper {
                         intent.putExtra("message_id", messageId);
                     }
 
-                    int flags = Build.VERSION.SDK_INT >= Build.VERSION_CODES.M ? PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE : PendingIntent.FLAG_UPDATE_CURRENT;
+                    int flags = PendingIntent.FLAG_UPDATE_CURRENT;
+
+                    if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
+                        if(action.equals("ReplyInput") ) {
+                            if (Build.VERSION.SDK_INT == 31) {
+                                flags = PendingIntent.FLAG_UPDATE_CURRENT | FLAG_MUTABLE;
+                            }
+                        }
+                        else {
+                            flags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE;
+                        }
+                    }
 
                     PendingIntent pendingActionIntent = PendingIntent.getBroadcast(context, notificationID, actionIntent, flags);
 
diff --git a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationListenerService.java b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationListenerService.java
index ca78c03..9ee3650 100644
--- a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationListenerService.java
+++ b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNPushNotificationListenerService.java
@@ -1,79 +1,5 @@
 package com.dieam.reactnativepushnotification.modules;
 
-import com.google.firebase.messaging.FirebaseMessagingService;
-import com.google.firebase.messaging.RemoteMessage;
+public class RNPushNotificationListenerService {
 
-import android.os.Handler;
-import android.os.Looper;
-import android.util.Log;
-
-import com.facebook.react.ReactApplication;
-import com.facebook.react.ReactInstanceManager;
-import com.facebook.react.bridge.Arguments;
-import com.facebook.react.bridge.ReactApplicationContext;
-import com.facebook.react.bridge.ReactContext;
-import com.facebook.react.bridge.WritableMap;
-
-import static com.dieam.reactnativepushnotification.modules.RNPushNotification.LOG_TAG;
-
-public class RNPushNotificationListenerService extends FirebaseMessagingService {
-
-    private RNReceivedMessageHandler mMessageReceivedHandler;
-    private FirebaseMessagingService mFirebaseServiceDelegate;
-
-    public RNPushNotificationListenerService() {
-        super();
-        this.mMessageReceivedHandler = new RNReceivedMessageHandler(this);
-    }
-
-    public RNPushNotificationListenerService(FirebaseMessagingService delegate) {
-        super();
-        this.mFirebaseServiceDelegate = delegate;
-        this.mMessageReceivedHandler = new RNReceivedMessageHandler(delegate);
-    }
-
-    @Override
-    public void onNewToken(String token) {
-        final String deviceToken = token;
-        final FirebaseMessagingService serviceRef = (this.mFirebaseServiceDelegate == null) ? this : this.mFirebaseServiceDelegate;
-        Log.d(LOG_TAG, "Refreshed token: " + deviceToken);
-
-        Handler handler = new Handler(Looper.getMainLooper());
-        handler.post(new Runnable() {
-            public void run() {
-                // Construct and load our normal React JS code bundle
-                final ReactInstanceManager mReactInstanceManager = ((ReactApplication)serviceRef.getApplication()).getReactNativeHost().getReactInstanceManager();
-                ReactContext context = mReactInstanceManager.getCurrentReactContext();
-                // If it's constructed, send a notification
-                if (context != null) {
-                    handleNewToken((ReactApplicationContext) context, deviceToken);
-                } else {
-                    // Otherwise wait for construction, then send the notification
-                    mReactInstanceManager.addReactInstanceEventListener(new ReactInstanceManager.ReactInstanceEventListener() {
-                        public void onReactContextInitialized(ReactContext context) {
-                            handleNewToken((ReactApplicationContext) context, deviceToken);
-                            mReactInstanceManager.removeReactInstanceEventListener(this);
-                        }
-                    });
-                    if (!mReactInstanceManager.hasStartedCreatingInitialContext()) {
-                        // Construct it in the background
-                        mReactInstanceManager.createReactContextInBackground();
-                    }
-                }
-            }
-        });
-    }
-
-    private void handleNewToken(ReactApplicationContext context, String token) {
-        RNPushNotificationJsDelivery jsDelivery = new RNPushNotificationJsDelivery(context);
-
-        WritableMap params = Arguments.createMap();
-        params.putString("deviceToken", token);
-        jsDelivery.sendEvent("remoteNotificationsRegistered", params);
-    }
-
-    @Override
-    public void onMessageReceived(RemoteMessage message) {
-        mMessageReceivedHandler.handleReceivedMessage(message);
-    }
 }
diff --git a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java
index 721ca40..b7bff2f 100644
--- a/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java
+++ b/node_modules/react-native-push-notification/android/src/main/java/com/dieam/reactnativepushnotification/modules/RNReceivedMessageHandler.java
@@ -1,215 +1,6 @@
 package com.dieam.reactnativepushnotification.modules;
 
-import com.google.firebase.messaging.FirebaseMessagingService;
-import com.google.firebase.messaging.RemoteMessage;
-
-import android.app.ActivityManager;
-import android.app.ActivityManager.RunningAppProcessInfo;
-import android.app.Application;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.Looper;
-import android.content.Context;
-import android.util.Log;
-import android.net.Uri;
-import androidx.annotation.NonNull;
-import androidx.core.app.NotificationCompat;
-
-import com.dieam.reactnativepushnotification.helpers.ApplicationBadgeHelper;
-import com.facebook.react.ReactApplication;
-import com.facebook.react.ReactInstanceManager;
-import com.facebook.react.bridge.ReactApplicationContext;
-import com.facebook.react.bridge.ReactContext;
-
-import org.json.JSONObject;
-
-import java.util.Map;
-import java.util.List;
-import java.security.SecureRandom;
-
-import static android.content.Context.ACTIVITY_SERVICE;
-import static com.dieam.reactnativepushnotification.modules.RNPushNotification.LOG_TAG;
-
 public class RNReceivedMessageHandler {
-    private FirebaseMessagingService mFirebaseMessagingService;
-
-    public RNReceivedMessageHandler(@NonNull FirebaseMessagingService service) {
-        this.mFirebaseMessagingService = service;
-    }
-
-    public void handleReceivedMessage(RemoteMessage message) {
-        String from = message.getFrom();
-        RemoteMessage.Notification remoteNotification = message.getNotification();
-        final Bundle bundle = new Bundle();
-        // Putting it from remoteNotification first so it can be overriden if message
-        // data has it
-        if (remoteNotification != null) {
-            // ^ It's null when message is from GCM
-            RNPushNotificationConfig config = new RNPushNotificationConfig(mFirebaseMessagingService.getApplication());  
-
-            String title = getLocalizedString(remoteNotification.getTitle(), remoteNotification.getTitleLocalizationKey(), remoteNotification.getTitleLocalizationArgs());
-            String body = getLocalizedString(remoteNotification.getBody(), remoteNotification.getBodyLocalizationKey(), remoteNotification.getBodyLocalizationArgs());
-
-            bundle.putString("title", title);
-            bundle.putString("message", body);
-            bundle.putString("sound", remoteNotification.getSound());
-            bundle.putString("color", remoteNotification.getColor());
-            bundle.putString("tag", remoteNotification.getTag());
-            
-            if(remoteNotification.getIcon() != null) {
-              bundle.putString("smallIcon", remoteNotification.getIcon());
-            } else {
-              bundle.putString("smallIcon", "ic_notification");
-            }
-            
-            if(remoteNotification.getChannelId() != null) {
-              bundle.putString("channelId", remoteNotification.getChannelId());
-            }
-            else {
-              bundle.putString("channelId", config.getNotificationDefaultChannelId());
-            }
-
-            Integer visibilty = remoteNotification.getVisibility();
-            String visibilityString = "private";
-
-            if (visibilty != null) {
-                switch (visibilty) {
-                    case NotificationCompat.VISIBILITY_PUBLIC:
-                        visibilityString = "public";
-                        break;
-                    case NotificationCompat.VISIBILITY_SECRET:
-                        visibilityString = "secret";
-                        break;
-                }
-            }
-          
-            bundle.putString("visibility", visibilityString);
-
-            Integer priority = remoteNotification.getNotificationPriority();
-            String priorityString = "high";
-            
-            if (priority != null) {
-              switch (priority) {
-                  case NotificationCompat.PRIORITY_MAX:
-                      priorityString = "max";
-                      break;
-                  case NotificationCompat.PRIORITY_LOW:
-                      priorityString = "low";
-                      break;
-                  case NotificationCompat.PRIORITY_MIN:
-                      priorityString = "min";
-                      break;
-                  case NotificationCompat.PRIORITY_DEFAULT:
-                      priorityString = "default";
-                      break;
-              }
-            }
-
-            bundle.putString("priority", priorityString);
-
-            Uri uri = remoteNotification.getImageUrl();
-
-            if(uri != null) {
-                String imageUrl = uri.toString();
 
-                bundle.putString("bigPictureUrl", imageUrl);
-                bundle.putString("largeIconUrl", imageUrl);
-            }
-        }
-
-        Bundle dataBundle = new Bundle();
-        Map<String, String> notificationData = message.getData();
-        
-        for(Map.Entry<String, String> entry : notificationData.entrySet()) {
-            dataBundle.putString(entry.getKey(), entry.getValue());
-        }
-
-        bundle.putParcelable("data", dataBundle);
-
-        Log.v(LOG_TAG, "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()"
-        Handler handler = new Handler(Looper.getMainLooper());
-        handler.post(new Runnable() {
-            public void run() {
-                // Construct and load our normal React JS code bundle
-                final ReactInstanceManager mReactInstanceManager = ((ReactApplication) mFirebaseMessagingService.getApplication()).getReactNativeHost().getReactInstanceManager();
-                ReactContext context = mReactInstanceManager.getCurrentReactContext();
-                // If it's constructed, send a notificationre
-                if (context != null) {
-                    handleRemotePushNotification((ReactApplicationContext) context, bundle);
-                } else {
-                    // Otherwise wait for construction, then send the notification
-                    mReactInstanceManager.addReactInstanceEventListener(new ReactInstanceManager.ReactInstanceEventListener() {
-                        public void onReactContextInitialized(ReactContext context) {
-                            handleRemotePushNotification((ReactApplicationContext) context, bundle);
-                            mReactInstanceManager.removeReactInstanceEventListener(this);
-                        }
-                    });
-                    if (!mReactInstanceManager.hasStartedCreatingInitialContext()) {
-                        // Construct it in the background
-                        mReactInstanceManager.createReactContextInBackground();
-                    }
-                }
-            }
-        });
-    }
-
-    private void handleRemotePushNotification(ReactApplicationContext context, Bundle bundle) {
-
-        // If notification ID is not provided by the user for push notification, generate one at random
-        if (bundle.getString("id") == null) {
-            SecureRandom randomNumberGenerator = new SecureRandom();
-            bundle.putString("id", String.valueOf(randomNumberGenerator.nextInt()));
-        }
-
-        Application applicationContext = (Application) context.getApplicationContext();
-
-        RNPushNotificationConfig config = new RNPushNotificationConfig(mFirebaseMessagingService.getApplication());  
-        RNPushNotificationHelper pushNotificationHelper = new RNPushNotificationHelper(applicationContext);
-
-        boolean isForeground = pushNotificationHelper.isApplicationInForeground();
-
-        RNPushNotificationJsDelivery jsDelivery = new RNPushNotificationJsDelivery(context);
-        bundle.putBoolean("foreground", isForeground);
-        bundle.putBoolean("userInteraction", false);
-        jsDelivery.notifyNotification(bundle);
-
-        // If contentAvailable is set to true, then send out a remote fetch event
-        if (bundle.getString("contentAvailable", "false").equalsIgnoreCase("true")) {
-            jsDelivery.notifyRemoteFetch(bundle);
-        }
-
-        if (config.getNotificationForeground() || !isForeground) {
-            Log.v(LOG_TAG, "sendNotification: " + bundle);
-
-            pushNotificationHelper.sendToNotificationCentre(bundle);
-        }
-    }
-
-    private String getLocalizedString(String text, String locKey, String[] locArgs) {
-        if(text != null) {
-          return text;
-        }
-
-        Context context = mFirebaseMessagingService.getApplicationContext();
-        String packageName = context.getPackageName();
-
-        String result = null;
-
-        if (locKey != null) {
-            int id = context.getResources().getIdentifier(locKey, "string", packageName);
-            if (id != 0) {
-                if (locArgs != null) {
-                    result = context.getResources().getString(id, (Object[]) locArgs);
-                } else {
-                    result = context.getResources().getString(id);
-                }
-            }
-        }
-
-        return result;
-    }
 }
+
