diff --git a/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/InAppMessagesManager.kt b/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/InAppMessagesManager.kt index 4c3f1e5d8..78dcdc679 100644 --- a/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/InAppMessagesManager.kt +++ b/OneSignalSDK/onesignal/in-app-messages/src/main/java/com/onesignal/inAppMessages/internal/InAppMessagesManager.kt @@ -45,6 +45,9 @@ import com.onesignal.user.internal.subscriptions.ISubscriptionManager import com.onesignal.user.internal.subscriptions.SubscriptionModel import com.onesignal.user.subscriptions.IPushSubscription import com.onesignal.user.subscriptions.ISubscription +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock @@ -112,6 +115,13 @@ internal class InAppMessagesManager( Logging.debug("InAppMessagesManager.setPaused(value: $value)") _state.paused = value + // If paused is true and an In-App Message is showing, dismiss it + if (value && _state.inAppMessageIdShowing != null) { + GlobalScope.launch(Dispatchers.Main) { + _displayer.dismissCurrentInAppMessage() + } + } + if (!value) { suspendifyOnThread { evaluateInAppMessages()