diff --git a/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java b/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java index 93a3dfe37..5f53a2f8e 100644 --- a/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java +++ b/lib/android/app/src/main/java/com/wix/reactnativenotifications/core/notification/PushNotification.java @@ -17,7 +17,6 @@ import androidx.core.text.HtmlCompat; import com.facebook.react.bridge.ReactContext; -import com.wix.reactnativenotifications.Defs; import com.wix.reactnativenotifications.R; import com.wix.reactnativenotifications.core.AppLaunchHelper; import com.wix.reactnativenotifications.core.AppLifecycleFacade; @@ -75,11 +74,15 @@ protected PushNotification(Context context, Bundle bundle, AppLifecycleFacade ap } @Override - public void onReceived() throws InvalidNotificationException { - if (!mAppLifecycleFacade.isAppVisible()) { + public void onReceived() { + ReactContext reactContext = mAppLifecycleFacade.getRunningReactContext(); + boolean hasActiveCatalystInstance = reactContext != null && reactContext.hasActiveCatalystInstance(); + if (!mAppLifecycleFacade.isAppVisible() || !hasActiveCatalystInstance) { postNotification(null); } - notifyReceivedToJS(); + if (hasActiveCatalystInstance) { + notifyReceivedToJS(); + } } @Override @@ -139,17 +142,13 @@ protected void dispatchImmediately() { } protected void dispatchUponVisibility() { - mAppLifecycleFacade.addVisibilityListener(getIntermediateAppVisibilityListener()); + mAppLifecycleFacade.addVisibilityListener(mAppVisibilityListener); // Make the app visible so that we'll dispatch the notification opening when visibility changes to 'true' (see // above listener registration). launchOrResumeApp(); } - protected AppVisibilityListener getIntermediateAppVisibilityListener() { - return mAppVisibilityListener; - } - protected PendingIntent getCTAPendingIntent(int notificationId) { final Intent cta = new Intent(mContext, ProxyService.class); mNotificationProps.setId(notificationId);