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
+4 -4
View File
@@ -60,7 +60,7 @@
187E18F21EF4DA244E436E58 /* BugReportViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28959C7DB36C7688A01D4045 /* BugReportViewModelProtocol.swift */; }; 187E18F21EF4DA244E436E58 /* BugReportViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 28959C7DB36C7688A01D4045 /* BugReportViewModelProtocol.swift */; };
18E674DB2977DBD60055EA9F /* StateRoomTimelineItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E674DA2977DBD60055EA9F /* StateRoomTimelineItem.swift */; }; 18E674DB2977DBD60055EA9F /* StateRoomTimelineItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E674DA2977DBD60055EA9F /* StateRoomTimelineItem.swift */; };
18E674DD2977DC2B0055EA9F /* StateRoomTimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E674DC2977DC2B0055EA9F /* StateRoomTimelineView.swift */; }; 18E674DD2977DC2B0055EA9F /* StateRoomTimelineView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E674DC2977DC2B0055EA9F /* StateRoomTimelineView.swift */; };
18E674DF2977DD9B0055EA9F /* RoomStateStringBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E674DE2977DD9B0055EA9F /* RoomStateStringBuilder.swift */; }; 18E674DF2977DD9B0055EA9F /* RoomStateEventStringBuilder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18E674DE2977DD9B0055EA9F /* RoomStateEventStringBuilder.swift */; };
191161FE9E0DA89704301F37 /* Untranslated.strings in Resources */ = {isa = PBXBuildFile; fileRef = D2F7194F440375338F8E2487 /* Untranslated.strings */; }; 191161FE9E0DA89704301F37 /* Untranslated.strings in Resources */ = {isa = PBXBuildFile; fileRef = D2F7194F440375338F8E2487 /* Untranslated.strings */; };
1950A80CD198BED283DFC2CE /* ClientProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18F2958E6D247AE2516BEEE8 /* ClientProxy.swift */; }; 1950A80CD198BED283DFC2CE /* ClientProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18F2958E6D247AE2516BEEE8 /* ClientProxy.swift */; };
19839F3526CE8C35AAF241AD /* ServerSelectionViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F52BF30D12BA3BD3D3DBB8F /* ServerSelectionViewModelProtocol.swift */; }; 19839F3526CE8C35AAF241AD /* ServerSelectionViewModelProtocol.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0F52BF30D12BA3BD3D3DBB8F /* ServerSelectionViewModelProtocol.swift */; };
@@ -586,7 +586,7 @@
184CF8C196BE143AE226628D /* DecorationTimelineItemProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecorationTimelineItemProtocol.swift; sourceTree = "<group>"; }; 184CF8C196BE143AE226628D /* DecorationTimelineItemProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DecorationTimelineItemProtocol.swift; sourceTree = "<group>"; };
18E674DA2977DBD60055EA9F /* StateRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineItem.swift; sourceTree = "<group>"; }; 18E674DA2977DBD60055EA9F /* StateRoomTimelineItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineItem.swift; sourceTree = "<group>"; };
18E674DC2977DC2B0055EA9F /* StateRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineView.swift; sourceTree = "<group>"; }; 18E674DC2977DC2B0055EA9F /* StateRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StateRoomTimelineView.swift; sourceTree = "<group>"; };
18E674DE2977DD9B0055EA9F /* RoomStateStringBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStateStringBuilder.swift; sourceTree = "<group>"; }; 18E674DE2977DD9B0055EA9F /* RoomStateEventStringBuilder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomStateEventStringBuilder.swift; sourceTree = "<group>"; };
18F2958E6D247AE2516BEEE8 /* ClientProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientProxy.swift; sourceTree = "<group>"; }; 18F2958E6D247AE2516BEEE8 /* ClientProxy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClientProxy.swift; sourceTree = "<group>"; };
18FE0CDF1FFA92EA7EE17B0B /* RoomTimelineControllerFactoryProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineControllerFactoryProtocol.swift; sourceTree = "<group>"; }; 18FE0CDF1FFA92EA7EE17B0B /* RoomTimelineControllerFactoryProtocol.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RoomTimelineControllerFactoryProtocol.swift; sourceTree = "<group>"; };
1941C8817E6B6971BA4415F5 /* VideoRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineView.swift; sourceTree = "<group>"; }; 1941C8817E6B6971BA4415F5 /* VideoRoomTimelineView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VideoRoomTimelineView.swift; sourceTree = "<group>"; };
@@ -1992,7 +1992,7 @@
EEE384418EB1FEDFA62C9CD0 /* RoomTimelineViewFactoryProtocol.swift */, EEE384418EB1FEDFA62C9CD0 /* RoomTimelineViewFactoryProtocol.swift */,
ACB6C5E4950B6C9842F35A38 /* RoomTimelineViewProvider.swift */, ACB6C5E4950B6C9842F35A38 /* RoomTimelineViewProvider.swift */,
75D1D02F7F3AC1122FCFB4F3 /* Items */, 75D1D02F7F3AC1122FCFB4F3 /* Items */,
18E674DE2977DD9B0055EA9F /* RoomStateStringBuilder.swift */, 18E674DE2977DD9B0055EA9F /* RoomStateEventStringBuilder.swift */,
); );
path = TimelineItems; path = TimelineItems;
sourceTree = "<group>"; sourceTree = "<group>";
@@ -2977,7 +2977,7 @@
64FF5CB4E35971255872E1BB /* AuthenticationServiceProxyProtocol.swift in Sources */, 64FF5CB4E35971255872E1BB /* AuthenticationServiceProxyProtocol.swift in Sources */,
D876EC0FED3B6D46C806912A /* AvatarSize.swift in Sources */, D876EC0FED3B6D46C806912A /* AvatarSize.swift in Sources */,
E0A4DCA633D174EB43AD599F /* BackgroundTaskProtocol.swift in Sources */, E0A4DCA633D174EB43AD599F /* BackgroundTaskProtocol.swift in Sources */,
18E674DF2977DD9B0055EA9F /* RoomStateStringBuilder.swift in Sources */, 18E674DF2977DD9B0055EA9F /* RoomStateEventStringBuilder.swift in Sources */,
6D046D653DA28ADF1E6E59A4 /* BackgroundTaskServiceProtocol.swift in Sources */, 6D046D653DA28ADF1E6E59A4 /* BackgroundTaskServiceProtocol.swift in Sources */,
38546A6010A2CF240EC9AF73 /* BindableState.swift in Sources */, 38546A6010A2CF240EC9AF73 /* BindableState.swift in Sources */,
B6DF6B6FA8734B70F9BF261E /* BlurHashDecode.swift in Sources */, B6DF6B6FA8734B70F9BF261E /* BlurHashDecode.swift in Sources */,
@@ -292,8 +292,7 @@ class ClientProxy: ClientProxyProtocol {
let visibleRoomsViewProxy = SlidingSyncViewProxy(slidingSync: slidingSync, slidingSyncView: visibleRoomsView) let visibleRoomsViewProxy = SlidingSyncViewProxy(slidingSync: slidingSync, slidingSyncView: visibleRoomsView)
visibleRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: visibleRoomsViewProxy, visibleRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: visibleRoomsViewProxy,
eventStringBuilder: RoomEventStringBuilder(userID: userID, eventStringBuilder: RoomEventStringBuilder(stateEventStringBuilder: RoomStateEventStringBuilder(userID: userID)))
roomStateStringBuilder: RoomStateStringBuilder(userID: userID)))
visibleRoomsSlidingSyncView = visibleRoomsView visibleRoomsSlidingSyncView = visibleRoomsView
@@ -330,8 +329,7 @@ class ClientProxy: ClientProxyProtocol {
let allRoomsViewProxy = SlidingSyncViewProxy(slidingSync: slidingSync, slidingSyncView: allRoomsView) let allRoomsViewProxy = SlidingSyncViewProxy(slidingSync: slidingSync, slidingSyncView: allRoomsView)
allRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: allRoomsViewProxy, allRoomsSummaryProvider = RoomSummaryProvider(slidingSyncViewProxy: allRoomsViewProxy,
eventStringBuilder: RoomEventStringBuilder(userID: userID, eventStringBuilder: RoomEventStringBuilder(stateEventStringBuilder: RoomStateEventStringBuilder(userID: userID)))
roomStateStringBuilder: RoomStateStringBuilder(userID: userID)))
allRoomsSlidingSyncView = allRoomsView allRoomsSlidingSyncView = allRoomsView
@@ -17,14 +17,10 @@
import Foundation import Foundation
struct RoomEventStringBuilder { struct RoomEventStringBuilder {
private let roomStateStringBuilder: RoomStateStringBuilder private let stateEventStringBuilder: RoomStateEventStringBuilder
/// The Matrix ID of the current user. init(stateEventStringBuilder: RoomStateEventStringBuilder) {
private let userID: String self.stateEventStringBuilder = stateEventStringBuilder
init(userID: String, roomStateStringBuilder: RoomStateStringBuilder) {
self.userID = userID
self.roomStateStringBuilder = roomStateStringBuilder
} }
// swiftlint:disable:next cyclomatic_complexity // swiftlint:disable:next cyclomatic_complexity
@@ -62,11 +58,11 @@ struct RoomEventStringBuilder {
} }
return prefix(message, with: sender) return prefix(message, with: sender)
case .state(let stateKey, let state): case .state(let stateKey, let state):
return roomStateStringBuilder return stateEventStringBuilder
.buildString(for: state, stateKey: stateKey, sender: sender, isOutgoing: isOutgoing) .buildString(for: state, stateKey: stateKey, sender: sender, isOutgoing: isOutgoing)
.map(AttributedString.init) .map(AttributedString.init)
case .roomMembership(userId: let userID, change: let change): case .roomMembership(userId: let userID, change: let change):
return roomStateStringBuilder return stateEventStringBuilder
.buildString(for: change, member: userID, sender: sender, isOutgoing: isOutgoing) .buildString(for: change, member: userID, sender: sender, isOutgoing: isOutgoing)
.map(AttributedString.init) .map(AttributedString.init)
} }
@@ -17,7 +17,7 @@
import MatrixRustSDK import MatrixRustSDK
import UIKit import UIKit
struct RoomStateStringBuilder { struct RoomStateEventStringBuilder {
let userID: String let userID: String
// swiftlint:disable:next cyclomatic_complexity function_body_length // swiftlint:disable:next cyclomatic_complexity function_body_length
@@ -20,7 +20,7 @@ import UIKit
struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol { struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
private let mediaProvider: MediaProviderProtocol private let mediaProvider: MediaProviderProtocol
private let attributedStringBuilder: AttributedStringBuilderProtocol private let attributedStringBuilder: AttributedStringBuilderProtocol
private let roomStateStringBuilder: RoomStateStringBuilder private let stateEventStringBuilder: RoomStateEventStringBuilder
/// The Matrix ID of the current user. /// The Matrix ID of the current user.
private let userID: String private let userID: String
@@ -28,11 +28,11 @@ struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
init(userID: String, init(userID: String,
mediaProvider: MediaProviderProtocol, mediaProvider: MediaProviderProtocol,
attributedStringBuilder: AttributedStringBuilderProtocol, attributedStringBuilder: AttributedStringBuilderProtocol,
roomStateStringBuilder: RoomStateStringBuilder) { stateEventStringBuilder: RoomStateEventStringBuilder) {
self.userID = userID self.userID = userID
self.mediaProvider = mediaProvider self.mediaProvider = mediaProvider
self.attributedStringBuilder = attributedStringBuilder self.attributedStringBuilder = attributedStringBuilder
self.roomStateStringBuilder = roomStateStringBuilder self.stateEventStringBuilder = stateEventStringBuilder
} }
// swiftlint:disable:next cyclomatic_complexity // swiftlint:disable:next cyclomatic_complexity
@@ -370,7 +370,7 @@ struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
stateKey: String, stateKey: String,
sender: TimelineItemSender, sender: TimelineItemSender,
isOutgoing: Bool) -> RoomTimelineItemProtocol? { 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) return buildStateTimelineItem(eventItemProxy: eventItemProxy, text: text, sender: sender, isOutgoing: isOutgoing)
} }
@@ -379,7 +379,7 @@ struct RoomTimelineItemFactory: RoomTimelineItemFactoryProtocol {
membershipChange: MembershipChange, membershipChange: MembershipChange,
sender: TimelineItemSender, sender: TimelineItemSender,
isOutgoing: Bool) -> RoomTimelineItemProtocol? { 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) return buildStateTimelineItem(eventItemProxy: eventItemProxy, text: text, sender: sender, isOutgoing: isOutgoing)
} }
@@ -154,7 +154,7 @@ class UserSessionFlowCoordinator: CoordinatorProtocol {
let timelineItemFactory = RoomTimelineItemFactory(userID: userId, let timelineItemFactory = RoomTimelineItemFactory(userID: userId,
mediaProvider: userSession.mediaProvider, mediaProvider: userSession.mediaProvider,
attributedStringBuilder: AttributedStringBuilder(), attributedStringBuilder: AttributedStringBuilder(),
roomStateStringBuilder: RoomStateStringBuilder(userID: userId)) stateEventStringBuilder: RoomStateEventStringBuilder(userID: userId))
let timelineController = roomTimelineControllerFactory.buildRoomTimelineController(userId: userId, let timelineController = roomTimelineControllerFactory.buildRoomTimelineController(userId: userId,
roomProxy: roomProxy, roomProxy: roomProxy,