Add test on VectorFirebaseMessagingService
This commit is contained in:
parent
b2a3b9653e
commit
eafa713995
5 changed files with 156 additions and 3 deletions
|
|
@ -16,8 +16,10 @@
|
|||
|
||||
package io.element.android.libraries.pushproviders.firebase
|
||||
|
||||
import com.squareup.anvil.annotations.ContributesBinding
|
||||
import io.element.android.libraries.core.extensions.flatMap
|
||||
import io.element.android.libraries.core.log.logger.LoggerTag
|
||||
import io.element.android.libraries.di.AppScope
|
||||
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
|
||||
import io.element.android.libraries.matrix.api.core.SessionId
|
||||
import io.element.android.libraries.pushproviders.api.PusherSubscriber
|
||||
|
|
@ -32,14 +34,19 @@ private val loggerTag = LoggerTag("FirebaseNewTokenHandler", LoggerTag.PushLogge
|
|||
/**
|
||||
* Handle new token receive from Firebase. Will update all the sessions which are using Firebase as a push provider.
|
||||
*/
|
||||
class FirebaseNewTokenHandler @Inject constructor(
|
||||
interface FirebaseNewTokenHandler {
|
||||
suspend fun handle(firebaseToken: String)
|
||||
}
|
||||
|
||||
@ContributesBinding(AppScope::class)
|
||||
class DefaultFirebaseNewTokenHandler @Inject constructor(
|
||||
private val pusherSubscriber: PusherSubscriber,
|
||||
private val sessionStore: SessionStore,
|
||||
private val userPushStoreFactory: UserPushStoreFactory,
|
||||
private val matrixAuthenticationService: MatrixAuthenticationService,
|
||||
private val firebaseStore: FirebaseStore,
|
||||
) {
|
||||
suspend fun handle(firebaseToken: String) {
|
||||
) : FirebaseNewTokenHandler {
|
||||
override suspend fun handle(firebaseToken: String) {
|
||||
firebaseStore.storeFcmToken(firebaseToken)
|
||||
// Register the pusher for all the sessions
|
||||
sessionStore.getAllSessions().toUserList()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue