This commit is contained in:
Doug
2023-01-20 14:09:59 +00:00
parent f05fa630c1
commit 70920550e7
6 changed files with 18 additions and 24 deletions
@@ -292,8 +292,7 @@ class ClientProxy: ClientProxyProtocol {
let visibleRoomsViewProxy = SlidingSyncViewProxy(slidingSync: slidingSync, slidingSyncView: visibleRoomsView)
visibleRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: visibleRoomsViewProxy,
eventStringBuilder: RoomEventStringBuilder(userID: userID,
roomStateStringBuilder: RoomStateStringBuilder(userID: userID)))
eventStringBuilder: RoomEventStringBuilder(stateEventStringBuilder: RoomStateEventStringBuilder(userID: userID)))
visibleRoomsSlidingSyncView = visibleRoomsView
@@ -330,8 +329,7 @@ class ClientProxy: ClientProxyProtocol {
let allRoomsViewProxy = SlidingSyncViewProxy(slidingSync: slidingSync, slidingSyncView: allRoomsView)
allRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: allRoomsViewProxy,
eventStringBuilder: RoomEventStringBuilder(userID: userID,
roomStateStringBuilder: RoomStateStringBuilder(userID: userID)))
eventStringBuilder: RoomEventStringBuilder(stateEventStringBuilder: RoomStateEventStringBuilder(userID: userID)))
allRoomsSlidingSyncView = allRoomsView
@@ -17,14 +17,10 @@
import Foundation
struct RoomEventStringBuilder {
private let roomStateStringBuilder: RoomStateStringBuilder
private let stateEventStringBuilder: RoomStateEventStringBuilder
/// The Matrix ID of the current user.
private let userID: String
init(userID: String, roomStateStringBuilder: RoomStateStringBuilder) {
self.userID = userID
self.roomStateStringBuilder = roomStateStringBuilder
init(stateEventStringBuilder: RoomStateEventStringBuilder) {
self.stateEventStringBuilder = stateEventStringBuilder
}
// swiftlint:disable:next cyclomatic_complexity
@@ -62,11 +58,11 @@ struct RoomEventStringBuilder {
}
return prefix(message, with: sender)
case .state(let stateKey, let state):
return roomStateStringBuilder
return stateEventStringBuilder
.buildString(for: state, stateKey: stateKey, sender: sender, isOutgoing: isOutgoing)
.map(AttributedString.init)
case .roomMembership(userId: let userID, change: let change):
return roomStateStringBuilder
return stateEventStringBuilder
.buildString(for: change, member: userID, sender: sender, isOutgoing: isOutgoing)
.map(AttributedString.init)
}
@@ -17,7 +17,7 @@
import MatrixRustSDK
import UIKit
struct RoomStateStringBuilder {
struct RoomStateEventStringBuilder {
let userID: String
// swiftlint:disable:next cyclomatic_complexity function_body_length
@@ -20,7 +20,7 @@ import UIKit
struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
private let mediaProvider: MediaProviderProtocol
private let attributedStringBuilder: AttributedStringBuilderProtocol
private let roomStateStringBuilder: RoomStateStringBuilder
private let stateEventStringBuilder: RoomStateEventStringBuilder
/// The Matrix ID of the current user.
private let userID: String
@@ -28,11 +28,11 @@ struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
init(userID: String,
mediaProvider: MediaProviderProtocol,
attributedStringBuilder: AttributedStringBuilderProtocol,
roomStateStringBuilder: RoomStateStringBuilder) {
stateEventStringBuilder: RoomStateEventStringBuilder) {
self.userID = userID
self.mediaProvider = mediaProvider
self.attributedStringBuilder = attributedStringBuilder
self.roomStateStringBuilder = roomStateStringBuilder
self.stateEventStringBuilder = stateEventStringBuilder
}
// swiftlint:disable:next cyclomatic_complexity
@@ -370,7 +370,7 @@ struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
stateKey: String,
sender: TimelineItemSender,
isOutgoing: Bool) -> RoomTimelineItemProtocol? {
guard let text = roomStateStringBuilder.buildString(for: state, stateKey: stateKey, sender: sender, isOutgoing: isOutgoing) else { return nil }
guard let text = stateEventStringBuilder.buildString(for: state, stateKey: stateKey, sender: sender, isOutgoing: isOutgoing) else { return nil }
return buildStateTimelineItem(eventItemProxy: eventItemProxy, text: text, sender: sender, isOutgoing: isOutgoing)
}
@@ -379,7 +379,7 @@ struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
membershipChange: MembershipChange,
sender: TimelineItemSender,
isOutgoing: Bool) -> RoomTimelineItemProtocol? {
guard let text = roomStateStringBuilder.buildString(for: membershipChange, member: member, sender: eventItemProxy.sender, isOutgoing: isOutgoing) else { return nil }
guard let text = stateEventStringBuilder.buildString(for: membershipChange, member: member, sender: eventItemProxy.sender, isOutgoing: isOutgoing) else { return nil }
return buildStateTimelineItem(eventItemProxy: eventItemProxy, text: text, sender: sender, isOutgoing: isOutgoing)
}
@@ -154,7 +154,7 @@ class UserSessionFlowCoordinator: CoordinatorProtocol {
let timelineItemFactory = RoomTimelineItemFactory(userID: userId,
mediaProvider: userSession.mediaProvider,
attributedStringBuilder: AttributedStringBuilder(),
roomStateStringBuilder: RoomStateStringBuilder(userID: userId))
stateEventStringBuilder: RoomStateEventStringBuilder(userID: userId))
let timelineController = roomTimelineControllerFactory.buildRoomTimelineController(userId: userId,
roomProxy: roomProxy,