Browse Source

Do not show the RecoveryKeyConfirmation banner if the sync is not Running.

pull/2421/head
Benoit Marty 7 months ago committed by Benoit Marty
parent
commit
4990aa38d3
  1. 8
      features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt

8
features/roomlist/impl/src/main/kotlin/io/element/android/features/roomlist/impl/RoomListPresenter.kt

@ -51,6 +51,8 @@ import io.element.android.libraries.matrix.api.MatrixClient @@ -51,6 +51,8 @@ import io.element.android.libraries.matrix.api.MatrixClient
import io.element.android.libraries.matrix.api.core.RoomId
import io.element.android.libraries.matrix.api.encryption.EncryptionService
import io.element.android.libraries.matrix.api.encryption.RecoveryState
import io.element.android.libraries.matrix.api.sync.SyncService
import io.element.android.libraries.matrix.api.sync.SyncState
import io.element.android.libraries.matrix.api.timeline.ReceiptType
import io.element.android.libraries.matrix.api.user.MatrixUser
import io.element.android.libraries.matrix.api.user.getCurrentUser
@ -87,6 +89,7 @@ class RoomListPresenter @Inject constructor( @@ -87,6 +89,7 @@ class RoomListPresenter @Inject constructor(
) : Presenter<RoomListState> {
private val encryptionService: EncryptionService = client.encryptionService()
private val sessionVerificationService: SessionVerificationService = client.sessionVerificationService()
private val syncService: SyncService = client.syncService()
@Composable
override fun present(): RoomListState {
@ -115,6 +118,7 @@ class RoomListPresenter @Inject constructor( @@ -115,6 +118,7 @@ class RoomListPresenter @Inject constructor(
isLastDevice = encryptionService.isLastDevice().getOrNull() ?: false
}
val recoveryState by encryptionService.recoveryStateStateFlow.collectAsState()
val syncState by syncService.syncState.collectAsState()
val secureStorageFlag by featureFlagService.isFeatureEnabledFlow(FeatureFlags.SecureStorage).collectAsState(initial = null)
val securityBannerState by remember {
derivedStateOf {
@ -125,7 +129,9 @@ class RoomListPresenter @Inject constructor( @@ -125,7 +129,9 @@ class RoomListPresenter @Inject constructor(
} else {
SecurityBannerState.SessionVerification
}
secureStorageFlag == true && recoveryState == RecoveryState.INCOMPLETE -> SecurityBannerState.RecoveryKeyConfirmation
secureStorageFlag == true &&
recoveryState == RecoveryState.INCOMPLETE &&
syncState == SyncState.Running -> SecurityBannerState.RecoveryKeyConfirmation
else -> SecurityBannerState.None
}
}

Loading…
Cancel
Save