Open
Description
Hi,
I don´t understand this error... It only happens when I close session and call to
PushNotifications.close()
PushNotifications.clearAllState()
Then when go to my first Activity the app crash with the error
Pusher error Start method must be called before setUserId pusher.
But as you can see in my below code I call PushNotifications.start() first.
When the apps crash and open again, all works fine
My code
onCreate(savedInstanceState: Bundle?) {initPusher() }
initPusher is this code
GlobalScope.launch(dispatchers.main) {
PushNotifications.start(applicationContext, "xxxxxxx-xxx-xxxxx-xx-xxxxxx")
viewModel.loadInfoPusherSubscribe {
val userId = it.first
val token = it.second
val realToken = "Bearer "+ token
val realURL = "https://xxxxxxxxxxx?user_id=$userId"
val tokenProvider = BeamsTokenProvider(
realURL,
object : AuthDataGetter {
override fun getAuthData(): AuthData {
return AuthData(
// Headers and URL query params your auth endpoint needs to
// request a Beams Token for a given user
headers = hashMapOf( Pair("Authorization", realToken),
Pair("accept", "text/plain"),
Pair("Content-Type", "application/json-patch+json")),
queryParams = hashMapOf()
)
}
}
)
PushNotifications.setUserId(userId, tokenProvider,
object : BeamsCallback<Void, PusherCallbackError> {
override fun onFailure(error: PusherCallbackError) {
Log.e("BeamsAuth", "Could not login to Beams: ${error.message}");
}
override fun onSuccess(vararg values: Void) {
Log.i("BeamsAuth", "Beams login success");
}
}
)
}
}
My viewModel
suspend fun loadInfoPusherSubscribe(listener: InfoPusherListener)=
viewModelScope.launch(dispatchers.io) {
val profileId = async { profileDao.getProfileUser().id }
val token = async { session.getSessionUser().accessToken }
withContext(dispatchers.main){
listener.invoke(Pair(profileId.await(),token.await()))
}
}
What is the problem?
PushNotifications.start() is asynchronous method???
Metadata
Metadata
Assignees
Labels
No labels