In-app notifications (IANs) are enabled by default. All controls below are per-alias — different users on the same device can have different settings.
Enabling / disabling
The classic use case: block IANs until the user has logged in, so a full-screen popup never covers your login form.
val pulsateManager = PulsateFactory.getInstance()
// Before login:
pulsateManager.setInAppNotificationEnabled(false)
// After login:
pulsateManager.setInAppNotificationEnabled(true)
pulsateManager.showLastInAppNotification() // deliver what was blocked (see below)
If you use
userHasLoggedIn()/userHasLoggedOut(), this enable/disable + re-show is handled for you.
Check the current state:
pulsateManager.isInAppNotificationEnabled(object : IPulsateValueListener<Boolean> {
override fun onSuccess(value: Boolean) { /* ... */ }
override fun onError(e: Throwable) { }
})
Re-showing a blocked or missed message
showLastInAppNotification() displays the most recent IAN that was blocked while IANs were disabled. It shows the message even if IANs are currently disabled — call it right after re-enabling:
pulsateManager.setInAppNotificationEnabled(true)
pulsateManager.showLastInAppNotification()
There is also reshowLastInApp(), which repeats the last in-app message that was already shown — useful for QA/debug screens.
Small in-app duration
Small (banner) IANs display for 12 seconds by default. To change it:
val pulsateManager = PulsateFactory.getInstance()
pulsateManager.setSmallInAppNotificationDuration(8) // seconds
Read it back:
pulsateManager.getSmallInAppNotificationDuration(object : IPulsateValueListener<Int> {
override fun onSuccess(value: Int) { /* seconds */ }
override fun onError(e: Throwable) { }
})

