Create a LoggedInNode, used as a PermanentNode in LoggedInFlowNode

This commit is contained in:
Benoit Marty
2023-03-31 10:15:51 +02:00
committed by Benoit Marty
parent c1f80cda80
commit eaff43de3a
7 changed files with 85 additions and 46 deletions

View File

@@ -18,7 +18,7 @@ package io.element.android.libraries.push.impl
import com.squareup.anvil.annotations.ContributesBinding
import io.element.android.libraries.di.AppScope
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.push.api.PushService
import io.element.android.libraries.push.impl.notifications.NotificationDrawerManager
import javax.inject.Inject
@@ -40,8 +40,8 @@ class DefaultPushService @Inject constructor(
notificationDrawerManager.notificationStyleChanged()
}
override suspend fun registerPusher(userId: UserId) {
pusherManager.registerPusher(userId)
override suspend fun registerPusher(matrixClient: MatrixClient) {
pusherManager.registerPusher(matrixClient)
}
override suspend fun testPush() {

View File

@@ -16,9 +16,9 @@
package io.element.android.libraries.push.impl
import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.auth.MatrixAuthenticationService
import io.element.android.libraries.matrix.api.core.SessionId
import io.element.android.libraries.matrix.api.core.UserId
import io.element.android.libraries.matrix.api.pusher.SetHttpPusherData
import io.element.android.libraries.push.impl.clientsecret.PushClientSecret
import io.element.android.libraries.push.impl.config.PushConfig
@@ -71,12 +71,12 @@ class PushersManager @Inject constructor(
}
}
suspend fun registerPusher(userId: UserId) {
suspend fun registerPusher(matrixClient: MatrixClient) {
val pushKey = fcmHelper.getFcmToken() ?: return
// Register the pusher for the session
val client = matrixAuthenticationService.restoreSession(userId).getOrNull() ?: return
client.pushersService().setHttpPusher(createHttpPusher(pushKey, PushConfig.pusher_http_url, userId.value))
// TODO EAx Close sessions
matrixClient.pushersService().setHttpPusher(
createHttpPusher(pushKey, PushConfig.pusher_http_url, matrixClient.sessionId.value)
)
}
private suspend fun createHttpPusher(