Make storeUserProfile main-safe instead of wrapping getUserProfile

This commit is contained in:
Benoit Marty
2026-10-13 09:26:55 +02:00
committed by Benoit Marty
parent 8912341439
commit d5780507c9
@@ -519,20 +519,18 @@ class RustMatrixClient(
}
}
override suspend fun getUserProfile(): Result<MatrixUser> = withContext(sessionDispatcher) {
getProfile(sessionId)
.onSuccess { matrixUser ->
// Also update our session storage
_userProfile.emit(matrixUser)
storeUserProfile(matrixUser)
}
}
override suspend fun getUserProfile(): Result<MatrixUser> = getProfile(sessionId)
.onSuccess { matrixUser ->
// Also update our session storage
_userProfile.emit(matrixUser)
storeUserProfile(matrixUser)
}
/**
* Store the user profile in the session storage, including a base64 encoded thumbnail of the avatar,
* so that the avatar can be rendered without having to use this client.
*/
private suspend fun storeUserProfile(matrixUser: MatrixUser) {
private suspend fun storeUserProfile(matrixUser: MatrixUser): Unit = withContext(sessionDispatcher) {
val avatarUrl = matrixUser.avatarUrl
val storedSession = sessionStore.getSession(sessionId.value)
val avatarData = when {