Replace CurrentUserProvider by an extension on MatrixClient.
This commit is contained in:
committed by
Benoit Marty
parent
1ef5f5ab0a
commit
1f455238d6
@@ -28,8 +28,9 @@ import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import io.element.android.features.logout.api.LogoutPreferencePresenter
|
||||
import io.element.android.libraries.architecture.Presenter
|
||||
import io.element.android.libraries.core.meta.BuildType
|
||||
import io.element.android.libraries.matrix.api.user.CurrentUserProvider
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.matrix.api.user.getCurrentUser
|
||||
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
|
||||
import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@@ -38,7 +39,7 @@ import javax.inject.Inject
|
||||
|
||||
class PreferencesRootPresenter @Inject constructor(
|
||||
private val logoutPresenter: LogoutPreferencePresenter,
|
||||
private val currentUserProvider: CurrentUserProvider,
|
||||
private val matrixClient: MatrixClient,
|
||||
private val sessionVerificationService: SessionVerificationService,
|
||||
private val buildType: BuildType,
|
||||
private val versionFormatter: VersionFormatter,
|
||||
@@ -71,6 +72,6 @@ class PreferencesRootPresenter @Inject constructor(
|
||||
}
|
||||
|
||||
private fun CoroutineScope.initialLoad(matrixUser: MutableState<MatrixUser?>) = launch {
|
||||
matrixUser.value = currentUserProvider.provide()
|
||||
matrixUser.value = matrixClient.getCurrentUser()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,7 +23,6 @@ import com.google.common.truth.Truth.assertThat
|
||||
import io.element.android.features.logout.impl.DefaultLogoutPreferencePresenter
|
||||
import io.element.android.libraries.architecture.Async
|
||||
import io.element.android.libraries.core.meta.BuildType
|
||||
import io.element.android.libraries.matrix.api.user.CurrentUserProvider
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
||||
import io.element.android.libraries.matrix.test.A_USER_NAME
|
||||
@@ -39,7 +38,7 @@ class PreferencesRootPresenterTest {
|
||||
val logoutPresenter = DefaultLogoutPreferencePresenter(matrixClient)
|
||||
val presenter = PreferencesRootPresenter(
|
||||
logoutPresenter,
|
||||
CurrentUserProvider(matrixClient),
|
||||
matrixClient,
|
||||
FakeSessionVerificationService(),
|
||||
BuildType.DEBUG,
|
||||
FakeVersionFormatter()
|
||||
|
||||
@@ -44,8 +44,8 @@ import io.element.android.libraries.eventformatter.api.RoomLastMessageFormatter
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.room.RoomSummary
|
||||
import io.element.android.libraries.matrix.api.user.CurrentUserProvider
|
||||
import io.element.android.libraries.matrix.api.user.MatrixUser
|
||||
import io.element.android.libraries.matrix.api.user.getCurrentUser
|
||||
import io.element.android.libraries.matrix.api.verification.SessionVerificationService
|
||||
import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
@@ -60,7 +60,6 @@ private const val extendedRangeSize = 40
|
||||
|
||||
class RoomListPresenter @Inject constructor(
|
||||
private val client: MatrixClient,
|
||||
private val currentUserProvider: CurrentUserProvider,
|
||||
private val lastMessageTimestampFormatter: LastMessageTimestampFormatter,
|
||||
private val roomLastMessageFormatter: RoomLastMessageFormatter,
|
||||
private val sessionVerificationService: SessionVerificationService,
|
||||
@@ -163,7 +162,7 @@ class RoomListPresenter @Inject constructor(
|
||||
}
|
||||
|
||||
private fun CoroutineScope.initialLoad(matrixUser: MutableState<MatrixUser?>) = launch {
|
||||
matrixUser.value = currentUserProvider.provide()
|
||||
matrixUser.value = client.getCurrentUser()
|
||||
}
|
||||
|
||||
private fun updateVisibleRange(range: IntRange) {
|
||||
|
||||
@@ -31,7 +31,6 @@ import io.element.android.libraries.designsystem.components.avatar.AvatarData
|
||||
import io.element.android.libraries.designsystem.components.avatar.AvatarSize
|
||||
import io.element.android.libraries.designsystem.utils.SnackbarDispatcher
|
||||
import io.element.android.libraries.eventformatter.test.FakeRoomLastMessageFormatter
|
||||
import io.element.android.libraries.matrix.api.user.CurrentUserProvider
|
||||
import io.element.android.libraries.matrix.api.verification.SessionVerifiedStatus
|
||||
import io.element.android.libraries.matrix.test.AN_AVATAR_URL
|
||||
import io.element.android.libraries.matrix.test.AN_EXCEPTION
|
||||
@@ -54,7 +53,6 @@ class RoomListPresenterTests {
|
||||
val matrixClient = FakeMatrixClient()
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -84,7 +82,6 @@ class RoomListPresenterTests {
|
||||
)
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -108,7 +105,6 @@ class RoomListPresenterTests {
|
||||
val matrixClient = FakeMatrixClient()
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -139,7 +135,6 @@ class RoomListPresenterTests {
|
||||
)
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -173,7 +168,6 @@ class RoomListPresenterTests {
|
||||
)
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -213,7 +207,6 @@ class RoomListPresenterTests {
|
||||
)
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -263,7 +256,6 @@ class RoomListPresenterTests {
|
||||
)
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService().apply {
|
||||
@@ -292,7 +284,6 @@ class RoomListPresenterTests {
|
||||
val matrixClient = FakeMatrixClient()
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -324,7 +315,6 @@ class RoomListPresenterTests {
|
||||
val matrixClient = FakeMatrixClient()
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -353,7 +343,6 @@ class RoomListPresenterTests {
|
||||
val matrixClient = FakeMatrixClient()
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
@@ -387,7 +376,6 @@ class RoomListPresenterTests {
|
||||
val matrixClient = FakeMatrixClient()
|
||||
val presenter = RoomListPresenter(
|
||||
matrixClient,
|
||||
CurrentUserProvider(matrixClient),
|
||||
createDateFormatter(),
|
||||
FakeRoomLastMessageFormatter(),
|
||||
FakeSessionVerificationService(),
|
||||
|
||||
@@ -17,18 +17,17 @@
|
||||
package io.element.android.libraries.matrix.api.user
|
||||
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import javax.inject.Inject
|
||||
|
||||
class CurrentUserProvider @Inject constructor(
|
||||
private val matrixClient: MatrixClient,
|
||||
) {
|
||||
suspend fun provide(): MatrixUser {
|
||||
val userAvatarUrl = matrixClient.loadUserAvatarURLString().getOrNull()
|
||||
val userDisplayName = matrixClient.loadUserDisplayName().getOrNull()
|
||||
return MatrixUser(
|
||||
userId = matrixClient.sessionId,
|
||||
displayName = userDisplayName,
|
||||
avatarUrl = userAvatarUrl,
|
||||
)
|
||||
}
|
||||
/**
|
||||
* Get the current user, as [MatrixUser], using [MatrixClient.loadUserAvatarURLString]
|
||||
* and [MatrixClient.loadUserDisplayName].
|
||||
*/
|
||||
suspend fun MatrixClient.getCurrentUser(): MatrixUser {
|
||||
val userAvatarUrl = loadUserAvatarURLString().getOrNull()
|
||||
val userDisplayName = loadUserDisplayName().getOrNull()
|
||||
return MatrixUser(
|
||||
userId = sessionId,
|
||||
displayName = userDisplayName,
|
||||
avatarUrl = userAvatarUrl,
|
||||
)
|
||||
}
|
||||
@@ -38,7 +38,6 @@ import io.element.android.libraries.eventformatter.impl.StateContentFormatter
|
||||
import io.element.android.libraries.matrix.api.MatrixClient
|
||||
import io.element.android.libraries.matrix.api.core.RoomId
|
||||
import io.element.android.libraries.matrix.api.room.RoomMembershipObserver
|
||||
import io.element.android.libraries.matrix.api.user.CurrentUserProvider
|
||||
import io.element.android.services.toolbox.impl.strings.AndroidStringProvider
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -61,7 +60,6 @@ class RoomListScreen(
|
||||
private val stringProvider = AndroidStringProvider(context.resources)
|
||||
private val presenter = RoomListPresenter(
|
||||
client = matrixClient,
|
||||
currentUserProvider = CurrentUserProvider(matrixClient),
|
||||
lastMessageTimestampFormatter = DefaultLastMessageTimestampFormatter(dateTimeProvider, dateFormatters),
|
||||
roomLastMessageFormatter = DefaultRoomLastMessageFormatter(
|
||||
sp = stringProvider,
|
||||
|
||||
Reference in New Issue
Block a user