If your app has a login, you usually don't want logged-out users opening the Pulsate Feed from a push notification. Feed Authorization blocks the Feed until the user is authorized, and can replay the blocked action after login.
The simple way: userHasLoggedIn / userHasLoggedOut
userHasLoggedIn / userHasLoggedOutThese two convenience methods bundle everything most apps need:
val pulsateManager = PulsateFactory.getInstance()
// After a successful login:
pulsateManager.userHasLoggedIn()
// → enables in-app messages, shows the last bounced in-app,
// marks the user authorized, replays the last blocked inbox action
// When the user logs out (or your app locks itself):
pulsateManager.userHasLoggedOut()
// → disables in-app messages, marks the user unauthorized
See Example Integration for these in a full login flow. The rest of this page covers the fine-grained methods underneath.
Fine-grained control
Authorize / deauthorize
pulsateManager.setUserAuthorized(true) // user may open the Feed
pulsateManager.setUserAuthorized(false) // Feed blocked
Users are authorized by default. Unauthorized users cannot reach the Feed at all — not via showFeed, not from a push, not from an in-app message.
Check the current state:
pulsateManager.isUserAuthorized(object : IPulsateValueListener<Boolean> {
override fun onSuccess(value: Boolean) { /* ... */ }
override fun onError(e: Throwable) { }
})
React to blocked attempts
When an unauthorized user tries to open the Feed (from a push, an in-app, or showFeed), the SDK notifies your listener — typically you navigate to your login screen. Set it once in your Application class:
class MyApp : Application() {
override fun onCreate() {
super.onCreate()
PulsateFactory.getInstance().setUserUnauthorizedListener(
object : IPulsateUserUnauthorizedListener {
override fun onUnauthorizedAction() {
// e.g. bring up your login screen
}
},
)
}
}
Replay the blocked action after login
The SDK remembers the last blocked inbox destination. After authorizing the user, send them where they originally wanted to go:
loginSucceeded {
pulsateManager.setUserAuthorized(true)
pulsateManager.showLastUnauthorizedMessage()
}

