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