Controlling In-App Notifications

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) { }
})