Skip to content

Commit 5cd78c0

Browse files
committed
Ensure the keys are updated as soon as possible. Else it seems that we had to wait for the next sync response.
1 parent c0da558 commit 5cd78c0

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

vector/src/main/java/im/vector/app/features/settings/crosssigning/CrossSigningSettingsViewModel.kt

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ import im.vector.app.core.resources.StringProvider
2727
import im.vector.app.features.auth.PendingAuthHandler
2828
import im.vector.app.features.login.ReAuthHelper
2929
import kotlinx.coroutines.Dispatchers
30+
import kotlinx.coroutines.Job
3031
import kotlinx.coroutines.flow.launchIn
3132
import kotlinx.coroutines.flow.onEach
3233
import kotlinx.coroutines.launch
@@ -52,6 +53,8 @@ class CrossSigningSettingsViewModel @AssistedInject constructor(
5253
private val pendingAuthHandler: PendingAuthHandler,
5354
) : VectorViewModel<CrossSigningSettingsViewState, CrossSigningSettingsAction, CrossSigningSettingsViewEvents>(initialState) {
5455

56+
private var observeCrossSigningJob: Job? = null
57+
5558
init {
5659
observeCrossSigning()
5760
}
@@ -90,6 +93,8 @@ class CrossSigningSettingsViewModel @AssistedInject constructor(
9093
}
9194
}
9295
})
96+
// Force a fast refresh of the data
97+
observeCrossSigning()
9398
} catch (failure: Throwable) {
9499
handleInitializeXSigningError(failure)
95100
} finally {
@@ -114,7 +119,8 @@ class CrossSigningSettingsViewModel @AssistedInject constructor(
114119
// ) { myDevicesInfo, mxCrossSigningInfo ->
115120
// myDevicesInfo to mxCrossSigningInfo
116121
// }
117-
session.flow().liveCrossSigningInfo(session.myUserId)
122+
observeCrossSigningJob?.cancel()
123+
observeCrossSigningJob = session.flow().liveCrossSigningInfo(session.myUserId)
118124
.onEach { data ->
119125
val crossSigningKeys = data.getOrNull()
120126
val xSigningIsEnableInAccount = crossSigningKeys != null
@@ -128,7 +134,8 @@ class CrossSigningSettingsViewModel @AssistedInject constructor(
128134
xSigningKeyCanSign = xSigningKeyCanSign
129135
)
130136
}
131-
}.launchIn(viewModelScope)
137+
}
138+
.launchIn(viewModelScope)
132139
}
133140

134141
private fun handleInitializeXSigningError(failure: Throwable) {

0 commit comments

Comments
 (0)