Adopt the new latest event API. (#4779)

This commit is contained in:
Doug
2025-11-25 11:52:48 +00:00
committed by GitHub
parent 08514917fe
commit f2607affd2
23 changed files with 321 additions and 139 deletions
@@ -329,14 +329,14 @@ class RoomDetailsScreenViewModel: RoomDetailsScreenViewModelType, RoomDetailsScr
if roomProxy.isDirectOneToOneRoom {
if var dmRecipientInfo = state.dmRecipientInfo {
if case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: dmRecipientInfo.member.id) {
if case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: dmRecipientInfo.member.id, fallBackToServer: true) {
dmRecipientInfo.verificationState = userIdentity?.verificationState
state.dmRecipientInfo = dmRecipientInfo
}
}
} else {
for member in roomProxy.membersPublisher.value {
if case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: member.userID) {
if case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: member.userID, fallBackToServer: false) {
if userIdentity?.verificationState == .verificationViolation {
state.hasMemberIdentityVerificationStateViolations = true
return
@@ -446,7 +446,7 @@ struct RoomDetailsScreen_Previews: PreviewProvider, TestablePreview {
let clientProxyMock = ClientProxyMock(.init())
clientProxyMock.userIdentityForClosure = { userID in
clientProxyMock.userIdentityForFallBackToServerClosure = { userID, _ in
let identity = switch userID {
case RoomMemberProxyMock.mockDan.userID:
UserIdentityProxyMock(configuration: .init(verificationState: verificationState))
@@ -112,7 +112,7 @@ class RoomMemberDetailsScreenViewModel: RoomMemberDetailsScreenViewModelType, Ro
actionsSubject.send(.openUserProfile)
}
if case let .success(.some(identity)) = await userSession.clientProxy.userIdentity(for: state.userID) {
if case let .success(.some(identity)) = await userSession.clientProxy.userIdentity(for: state.userID, fallBackToServer: true) {
state.verificationState = identity.verificationState
} else {
MXLog.error("Failed to find the member's identity.")
@@ -209,7 +209,7 @@ struct RoomMemberDetailsScreen_Previews: PreviewProvider, TestablePreview {
let clientProxyMock = ClientProxyMock(.init())
clientProxyMock.userIdentityForClosure = { userID in
clientProxyMock.userIdentityForFallBackToServerClosure = { userID, _ in
let identity = switch userID {
case RoomMemberProxyMock.mockDan.userID:
UserIdentityProxyMock(configuration: .init(verificationState: .verified))
@@ -132,7 +132,7 @@ class RoomMembersListScreenViewModel: RoomMembersListScreenViewModelType, RoomMe
for member in members {
var verificationState: UserIdentityVerificationState = .notVerified
if roomProxy.infoPublisher.value.isEncrypted, // We don't care about identity statuses on non-encrypted rooms
case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: member.userID),
case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: member.userID, fallBackToServer: false),
let userIdentity {
verificationState = userIdentity.verificationState
}
@@ -240,7 +240,7 @@ struct RoomMembersListScreen_Previews: PreviewProvider, TestablePreview {
}
let clientProxyMock = ClientProxyMock(.init())
clientProxyMock.userIdentityForClosure = { userID in
clientProxyMock.userIdentityForFallBackToServerClosure = { userID, _ in
let identity = switch userID {
case RoomMemberProxyMock.mockAlice.userID:
UserIdentityProxyMock(configuration: .init(verificationState: .verified))
@@ -257,7 +257,7 @@ class RoomScreenViewModel: RoomScreenViewModelType, RoomScreenViewModelProtocol
private func updateVerificationBadge() async {
guard roomProxy.isDirectOneToOneRoom,
let dmRecipient = roomProxy.membersPublisher.value.first(where: { $0.userID != roomProxy.ownUserID }),
case let .success(userIdentity) = await clientProxy.userIdentity(for: dmRecipient.userID) else {
case let .success(userIdentity) = await clientProxy.userIdentity(for: dmRecipient.userID, fallBackToServer: true) else {
state.dmRecipientVerificationState = .notVerified
return
}
@@ -86,7 +86,7 @@ class ThreadTimelineScreenViewModel: ThreadTimelineScreenViewModelType, ThreadTi
private func updateVerificationBadge() async {
guard roomProxy.isDirectOneToOneRoom,
let dmRecipient = roomProxy.membersPublisher.value.first(where: { $0.userID != roomProxy.ownUserID }),
case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: dmRecipient.userID) else {
case let .success(userIdentity) = await userSession.clientProxy.userIdentity(for: dmRecipient.userID, fallBackToServer: true) else {
state.dmRecipientVerificationState = .notVerified
return
}
@@ -73,7 +73,7 @@ class UserProfileScreenViewModel: UserProfileScreenViewModelType, UserProfileScr
private func loadProfile() async {
async let profileResult = userSession.clientProxy.profile(for: state.userID)
async let identityResult = userSession.clientProxy.userIdentity(for: state.userID)
async let identityResult = userSession.clientProxy.userIdentity(for: state.userID, fallBackToServer: true)
switch await profileResult {
case .success(let userProfile):
@@ -119,7 +119,7 @@ struct UserProfileScreen_Previews: PreviewProvider, TestablePreview {
static func makeViewModel(userID: String) -> UserProfileScreenViewModel {
let clientProxyMock = ClientProxyMock(.init())
clientProxyMock.userIdentityForClosure = { userID in
clientProxyMock.userIdentityForFallBackToServerClosure = { userID, _ in
let identity = switch userID {
case RoomMemberProxyMock.mockDan.userID:
UserIdentityProxyMock(configuration: .init(verificationState: .verified))